完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
大家好,
第一次在这里发布消息,我对如何在约束文件中正确分配时钟输入感到困惑。 我正在尝试实现一个代码来切换我的LED,我想我可以使用约束文件中定义的默认系统时钟(200 MHz),我修改它如下: #CLOCKS#SYSCLKset_property PACKAGE_PIN AD11 [get_ports SystemClock] set_property IOSTANDARD LVDS [get_ports SystemClock] set_property PACKAGE_PIN AD12 [get_ports SystemClock] set_property IOSTANDARD LVDS [get_ports SystemClock] 我的实体定义为: SystemClock:在STD_Logic中; LED:输出STD_Logic; 当我在过去分配我的LED输出时,我刚刚修改了附录C中的约束文件(在手册中如下): set_property PACKAGE_PIN F16 [get_ports LED] set_property IOSTANDARD LVCMOS25 [get_ports LED] 它已经在过去工作了,但现在我正在尝试使用时钟而且它不起作用。 我得到的错误是当我要生成比特流时: 找不到I / O标准LVDS master = *,diffterm = *的编程ifromation。 输入错误的编程将不正确 命令失败:Bitgen失败 谢谢 |
|
相关推荐
10个回答
|
|
嗨@ rafaelcruz,
请尝试以下方法: 库IEEE;使用IEEE.STD_LOGIC_1164.ALL;使用IEEE.STD_LOGIC_unsigned.ALL; - 如果使用带有符号或无符号值的算术函数,则取消注释以下库声明 - 使用IEEE.NUMERIC_STD.ALL; - 如果在此code.library UNISIM中实例化 - 任何Xilinx叶子单元,则取消注释以下库声明;使用UNISIM.VComponents.all; 实体CLk_Toggle_LEDs是端口(SystemClock_p:在STD_LOGIC中; - 系统时钟在200 MHz @ 2.5 LVDS SystemClock_n:在STD_LOGIC中; LED:输出STD_LOGIC);结束CLk_Toggle_LEDs; 体系结构CLk_Toggle_LEDs的行为是 信号计数器:std_Logic_vector(31 downto 0); 信号NewCLK:std_logic; signal SystemClock:std_logic; 开始 IBUFDS_inst:IBUFDS通用映射(DIFF_TERM => FALSE, - 差分终端IBUF_LOW_PWR => TRUE, - 低功耗(TRUE)与性能(FALSE)设置,用于引用的I / O标准IOSTANDARD =>“DEFAULT”)端口映射( O => SystemClock, - 缓冲输出I => SystemClock_p, - Diff_p缓冲输入(直接连接到顶级端口)IB => SystemClock_n - Diff_n缓冲输入(直接连接到顶级端口)); 预分频器:进程(SystemClock)如果rising_edge(SystemClock)则开始,然后如果Counter |
|
|
|
你好@ rafaelcruz
您使用的是哪个版本的vivado? 我已经看到使用旧版Vivado错误报告此错误。 尝试使用Vivado 2016.2。 谢谢,迪皮卡.---------------------------------------------- ---------------------------------------------- Google之前的问题 张贴。 如果某人的帖子回答了您的问题,请将帖子标记为“接受为解决方案”。 如果你看到一个特别好的和信息丰富的帖子,考虑给它Kudos(左边的明星) |
|
|
|
@rafaelcruz改变实体并制作时钟差分。
#CLOCKS#SYSCLKset_property PACKAGE_PIN AD11 [get_ports SystemClock_n] set_property IOSTANDARD LVDS [get_ports SystemClock_n] set_property PACKAGE_PIN AD12 [get_ports SystemClock_p] set_property IOSTANDARD LVDS [get_ports SystemClock_p] 我的实体定义为: SystemClock_p:在STD_Logic中; SystemClock_n:在STD_Logic中; LED:输出STD_Logic; 这应该现在有效 -Pratham ------------------------------------------------ ----------------------------------------------请注意 - 请 如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用并回复导向的帖子。感谢K- -------------------------------------------------- ----------------------- |
|
|
|
是因为你只定义了差分信号的一半。
我相信LVDS需要在约束文件中定义时钟的P和N侧。 使用Vivado I / O规划指导您并打开开关以显示信号的P / N侧。 那应该对你有帮助。 |
|
|
|
您可以共享您的项目文件。
您可以在这里找到一些参考设计,您可以在最后尝试。 使用示例设计检查提供的ucf文件http://www.xilinx.com/support/documentation-navigation/design-hubs/dh0031-kc705-evaluation-kit-hub.htmlhttp://www.xilinx.com/products/ 板和-套件/ EK-K7-KC705-g.html#文档 谢谢和RegardsBalkrishan ----------------------------------------------- ---------------------------------------------请将帖子标记为 一个答案“接受为解决方案”,以防它有助于解决您的查询。如果一个帖子引导到解决方案,请给予赞誉。 |
|
|
|
我所拥有的XDC文件是附录C(来自手册)中的文件,我只是修改了我需要的部分并保留原样。
我的代码如下: 实体CLk_Toggle_LEDs是端口(SystemClock:在STD_LOGIC中; - 系统时钟在200 MHz @ 2.5 LVDS LED:输出STD_LOGIC);结束CLk_Toggle_LEDs; 体系结构CLk_Toggle_LEDs的行为是 信号计数器:std_Logic_vector(31 downto 0); 信号NewCLK:std_logic; 开始 预分频器:进程(SystemClock)如果rising_edge(SystemClock)则开始,然后如果Counter |
|
|
|
我有点困惑如何在我的情况下使用差分时钟,如果我创建SystemClock_p和SystemClock_n,我在我的代码中使用哪一个?
|
|
|
|
你好@ rafaelcruz,
在您的设计中,您可以实例化IBUFDS以将此差分时钟转换为单端,并使用此单端时钟驱动逻辑的其余部分。 IBUFDS#(。DIFF_TERM(“FALSE”),//差分终止.IBUF_LOW_PWR(“TRUE”),//低功率=“TRUE”,最高性能=“FALSE”.IOSTANDARD(“DEFAULT”)//指定输入 I / O标准)IBUFDS_inst(.O(O),//缓冲输出.I(I),// Diff_p缓冲输入(直接连接到顶级端口).IB(IB)// Diff_n缓冲输入(直接连接) 到顶级港口)); 问候,阿希什----------------------------------------------- - - - - - - - - - - - - - - - - - - - - - - - -请注意- 如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用且回复的帖子。感谢Kudos .-------------------- -------------------------------------------------- ------------------------ |
|
|
|
嗨@ rafaelcruz,
请尝试以下方法: 库IEEE;使用IEEE.STD_LOGIC_1164.ALL;使用IEEE.STD_LOGIC_unsigned.ALL; - 如果使用带有符号或无符号值的算术函数,则取消注释以下库声明 - 使用IEEE.NUMERIC_STD.ALL; - 如果在此code.library UNISIM中实例化 - 任何Xilinx叶子单元,则取消注释以下库声明;使用UNISIM.VComponents.all; 实体CLk_Toggle_LEDs是端口(SystemClock_p:在STD_LOGIC中; - 系统时钟在200 MHz @ 2.5 LVDS SystemClock_n:在STD_LOGIC中; LED:输出STD_LOGIC);结束CLk_Toggle_LEDs; 体系结构CLk_Toggle_LEDs的行为是 信号计数器:std_Logic_vector(31 downto 0); 信号NewCLK:std_logic; signal SystemClock:std_logic; 开始 IBUFDS_inst:IBUFDS通用映射(DIFF_TERM => FALSE, - 差分终端IBUF_LOW_PWR => TRUE, - 低功耗(TRUE)与性能(FALSE)设置,用于引用的I / O标准IOSTANDARD =>“DEFAULT”)端口映射( O => SystemClock, - 缓冲输出I => SystemClock_p, - Diff_p缓冲输入(直接连接到顶级端口)IB => SystemClock_n - Diff_n缓冲输入(直接连接到顶级端口)); 预分频器:进程(SystemClock)如果rising_edge(SystemClock)则开始,然后如果Counter |
|
|
|
谢谢你们,事情现在有效。
你能解释一下通用映射和端口映射部分,它允许我实例化这个差分时钟,我注意到我们终止了DIFF_TERM,我们将SystemClock端口映射到输出缓冲区,并将其他输入映射到I和IB。 这些都是通过UNISIM库组件支持的吗? 再次感谢您的帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
2380 浏览 7 评论
2797 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2262 浏览 9 评论
3335 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2428 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
756浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
545浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
366浏览 1评论
1963浏览 0评论
682浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 04:42 , Processed in 1.401782 second(s), Total 94, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号