码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 15 验证差分时钟输入转单端


    供给FPGA的时钟有单端时钟,也有差分时钟,当输入是差分时钟时,需要将差分时钟转换为单端时钟输出来作为FPGA的系统工作时钟。

    本次使用锁相环来实现差分到单端时钟的转换。

    FPGA代码实现如下:

    TOP层

    1. `timescale 1ns / 1ps
    2. //
    3. // Company:
    4. // Engineer:
    5. //
    6. // Create Date: 2023/08/31 09:09:58
    7. // Design Name:
    8. // Module Name: led_top
    9. // Project Name:
    10. // Target Devices:
    11. // Tool Versions:
    12. // Description:
    13. //
    14. // Dependencies:
    15. //
    16. // Revision:
    17. // Revision 0.01 - File Created
    18. // Additional Comments:
    19. //
    20. //
    21. module led_top(
    22. input sys_clk_i_clk_n,
    23. input sys_clk_i_clk_p,
    24. output [1:0] led
    25. );
    26. //单端系统时钟
    27. wire sys_clk;
    28. wire locked;
    29. wire sys_rst;
    30. //差分时钟输入转单端
    31. clk_wiz_0 clk_wiz_0_u0
    32. (
    33. // Clock out ports
    34. .clk_out1(sys_clk), // output clk_out1
    35. // Status and control signals
    36. .locked(locked), // output locked
    37. // Clock in ports
    38. .clk_in1_p(sys_clk_i_clk_p), // input clk_in1_p
    39. .clk_in1_n(sys_clk_i_clk_n)); // input clk_in1_n
    40. //VIO给出复位信号
    41. vio_0 vio_0_u0 (
    42. .clk(sys_clk), // input wire clk
    43. .probe_out0(sys_rst) // output wire [0 : 0] probe_out0
    44. );
    45. //计数器,实现led灯1秒翻转一次
    46. //100M时钟,计数10^8次,需27位计数器
    47. reg [27:0] cnt;
    48. always@(posedge sys_clk)
    49. if(sys_rst)
    50. cnt <= 28'd0;
    51. else if(cnt<28'd100_000_000)
    52. cnt <= cnt + 28'd1;
    53. else
    54. cnt <= 28'd0;
    55. //signal
    56. reg signal;
    57. always@(posedge sys_clk)
    58. if(sys_rst)
    59. signal <= 'd0;
    60. else if(cnt==28'd100)
    61. signal <= ~signal ;
    62. else
    63. signal <= signal;
    64. ila_0 ila_0_u0 (
    65. .clk(sys_clk), // input wire clk
    66. .probe0(led[0]), // input wire [0:0] probe0
    67. .probe1(led[1]) // input wire [0:0] probe1
    68. );
    69. assign led[0] = signal;
    70. assign led[1] = ~signal;
    71. endmodule

    XDC引脚约束

    1. #系统时钟管脚约束
    2. set_property -dict {PACKAGE_PIN E16 IOSTANDARD LVDS} [get_ports sys_clk_i_clk_p]
    3. set_property -dict {PACKAGE_PIN E15 IOSTANDARD LVDS} [get_ports sys_clk_i_clk_n]
    4. #led引脚约束
    5. set_property PACKAGE_PIN E12 [get_ports {led[0]}]
    6. set_property PACKAGE_PIN F13 [get_ports {led[1]}]
    7. set_property IOSTANDARD LVCMOS18 [get_ports {led[*]}]

    本次验证差分时钟转单端采用的开发板为米联客M7Z100FA,核心板型号为xc7z100ffg900-2。

  • 相关阅读:
    LIO-SAM论文与代码阅读笔记(一)论文阅读
    JDBC(Java Database Connectivity)
    Linux操作-4之stat, find, xargs命令
    二重积分一般计算步骤
    计算机毕业设计Python+django的基于协同过滤算法的电影推荐系统(源码+系统+mysql数据库+Lw文档)
    业内人士真心话:只会测试没有前途的,我慌了......
    基于Google大型分布式系统的网格化实战
    DeckGL MVTLayer+Mapbox注入shader实现简单效果
    搭建属于自己的家庭私有云盘
    True Global Ventures新成立的1.46亿美元后续基金关账,其中普通合伙人认缴6,200万美元以对后期阶段的Web3赢家进行投资
  • 原文地址:https://blog.csdn.net/m0_52197400/article/details/132599581
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号