1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,
起初,对不起我的英语...... 我和VIVADO合作。 对于一个新项目,我必须进行FPGA RX / TX 3G SDI输入。 首先,我必须构建一个tranceiver包装器。 我已经配置了“7系列FPGA收发器”(在IP目录中找到),将CPLL用于Tx SDI部分,将QPLL用于Rx SDI部分。 关于Xapp592的第53页,QPLL是在生成的tranceiver包装器内部构建的,但是如果我查看生成的VHDL,我可以看到以下几行: --____________________________共同港口_________________________________ GT0_QPLLLOCK_IN:在std_logic; GT0_QPLLREFCLKLOST_IN:在std_logic中; GT0_QPLLOUTCLK_IN:在std_logic中; GT0_QPLLOUTREFCLK_IN:在std_logic中 似乎QPLL必须在包装器之外构建。 是对的吗 ? 我是否必须在封装器的实例化中使用PLL来构建QPLL? 我的第二个问题是关于这些其他生成的线: SOFT_RESET_IN => SOFT_RESET_IN,DONT_RESET_ON_DATA_ERROR_IN => DONT_RESET_ON_DATA_ERROR_IN, GT0_DATA_VALID_IN => GT0_DATA_VALID_IN, 我在UG476,XAPP592中没有读到这些命令.... 验证这些命令的有效级别“0”或“1”是多少? 提前感谢您的回复,我将不胜感激...... 亚历克斯 |
|
相关推荐
7个回答
|
|
对于7系列,QPLL使用名为GTXE2_COMMON的单独原语进行实例化。
即使不使用QPLL,您也需要为所有设计实例化它。 请参考AR#43339.http://www.xilinx.com/support/answers/43339.htmSOFT_RESET_IN是启动FSM的复位输入。 帧检查检测到数据错误时,DONT_RESET_ON_DATA_ERROR_IN不会重启FSM .GT0_DATA_VALID_IN表示接收的数据有效。 这是RX_STARTUP_FSM的输入。 -------------------------------------------------- ----------------------------别忘了回复,给予kudo并接受为解决方案--------- -------------------------------------------------- ------------------- |
|
|
|
感谢您的回复 。
我找不到原始的GTXE2_COMMON。 我没有在IP目录“搜索”(附件)或“模板”模型中找到它。 我在哪里可以找到它? Doc2.docx 187 KB |
|
|
|
QPLL(GTXE2_COMMON)端口的必要连接应该存在于示例设计中。
您可以在示例设计中跟踪以下信号吗? --____________________________共同港口_________________________________ GT0_QPLLLOCK_IN:在std_logic; GT0_QPLLREFCLKLOST_IN:在std_logic中; GT0_QPLLOUTCLK_IN:在std_logic中; GT0_QPLLOUTREFCLK_IN:在std_logic中我认为你应该找到一个名为* _wrapper_common.v的文件 -------------------------------------------------- ----------------------------别忘了回复,给予kudo并接受为解决方案--------- -------------------------------------------------- ------------------- |
|
|
|
嗨,
在AR#43339(如上所述)中,我们可以读到“在ISE 14.2 / Vivado中使用7系列FPGA收发器向导v2.2或更高版本时,GTXE2_COMMON模块会自动实例化......” 我使用的tranceiver向导是版本V3.0,因此GTXE2_COMMON会自动在WRAPPER中实例化。 对 ? 我想构建一个4输入SD / HD / 3G_SDI,所有4个收发器REFCLK通过QPLL连接到MGTREFCLK0。 组件GTX_SDI_HDx4 港口 ( ---- Q0_CLK0_GTREFCLK_PAD_N_IN:在std_logic中; Q0_CLK0_GTREFCLK_PAD_P_IN:在std_logic中; ----- 我想Q0_CLK0_GTREFCLK_PAD_N_IN和Q0_CLK0_GTREFCLK_PAD_N_IN必须连接到输入MGTREFCLK0_n和MGTREFCLK0_p。 是对的吗 ? 在文中我们可以阅读: --------------------------频道 - 时钟端口-------------------- ---- gt1_gtgrefclk_in:在std_logic中; gt1_gtnorthrefclk0_in:在std_logic中; gt1_gtnorthrefclk1_in:在std_logic中; gt1_gtrefclk1_in:在std_logic中; gt1_gtsouthrefclk0_in:在std_logic中; gt1_gtsouthrefclk1_in:在std_logic中; ----------------------------频道 - DRP端口------------------ -------- 我没有什么可以连接到这些端口? 我必须连接一些东西吗? 在我的脑海里有点混乱。 在此先感谢您的回复。 亚历克斯 |
|
|
|
是的,您只需要并且需要一份GTXE2_COMMON副本,您可以在IP下的synth目录中看到它。
不,您不必在设计中连接这些端口。 如果您为收发器生成示例代码,您将看到如何(未)处理这些端口。 丹尼尔 |
|
|
|
谢谢,我的想法更清楚。
在综合之后,我有任何时间违规,我现在不能如何压制它们。 它位于GTx_RXUSRCLK时钟和SYSTEM_CLOCK之间,是两个独立的时钟源。 在我看来,GTx_RXUSRCLK时钟是QPLL的输出,当我禁用QPLL的输入时钟时,输出时钟也是禁令。 但是...... QPLL输入时钟端口和SYSTEM_CLOCK输入端口之间的错误路径约束并不能抑制这些时序违规。 我在网站上找到了一个“Vivado Migration”pdf文件,但没有例外。 我想我必须在FPGA内部的外部端口“SYSTEM_CLOCK”和网络GTx_RXUSRCLK之间写一条错误的路径。 是对的吗 ? 有人可以举个例子来说明如何在我的.xdc文件中写这个吗? 提前致谢 。 亚历克斯 |
|
|
|
如果运行10G PCS / PMA生成器,则在IP下的综合目录中,您将找到多个自动生成的XDC文件。
对于系统时钟,您会发现如下内容: 设置clk156name [get_clocks -of_objects [get_ports clk156]] set_false_path -from $ clk156name -through [get_ports configuration_vector [110]] set_false_path -through [get_ports configuration_vector [110]] -to $ clk156name set_false_path -from $ clk156name -to [get_cells -hierarchical -filter {NAME =〜* dp_ram_i * fd_i *&& PRIMITIVE_SUBGROUP = ~flmp}] 但您可能需要更改第一行以找到驱动GT收发器的时钟。 对于有点问题的RXUSRCLK(以及其他),他们有: create_clock -period 3.103 [get_pins -of_objects [get_cells * -hierarchical -filter {REF_NAME = ~GTHE2_CHANNEL}] -filter {NAME =〜* RXOUTCLK}] 设置RXOUTCLK_OUT [get_clocks -of [get_pins -of_objects [get_cells * -hierarchical -filter {REF_NAME = ~GTHE2_CHANNEL}] -filter {NAME =〜* RXOUTCLK}]] create_clock -period 3.103 [get_pins -of_objects [get_cells * -hierarchical -filter {REF_NAME = ~GTHE2_CHANNEL}] -filter {NAME =〜* TXOUTCLK}] 设置TXOUTCLK_OUT [get_clocks -of [get_pins -of_objects [get_cells * -hierarchical -filter {REF_NAME = ~GTHE2_CHANNEL}] -filter {NAME =〜* TXOUTCLK}]] set_multicycle_path 2 -from [get_cells * -hierarchical -filter {NAME =〜* mcp1_ *&& PRIMITIVE_SUBGROUP = ~flmp}] -to [get_cells * -hierarchical -filter {NAME =〜* mcp1_ *&& PRIMITIVE_SUBGROUP = ~flmp}] set_multicycle_path -hold 1 -from [get_cells * -hierarchical -filter {NAME =〜* mcp1_ *&& PRIMITIVE_SUBGROUP = ~flmp}] -to [get_cells * -hierarchical -filter {NAME =〜* mcp1_ *&& PRIMITIVE_SUBGROUP = ~flmp}] set_multicycle_path 2 -from [get_cells * -hierarchical -filter {NAME =〜* mcp1_ *&& PRIMITIVE_SUBGROUP = ~flmp}] -to [get_cells -of [filter [all_fanout -flat -endpoints_only -from [get_nets * -hierarchical -filter {NAME =〜* rxusrclk2_en156 *}]] {NAME =〜* WE *}]] set_multicycle_path -hold 1 -from [get_cells * -hierarchical -filter {NAME =〜* mcp1_ *&& PRIMITIVE_SUBGROUP = ~flmp}] -to [get_cells -of [filter [all_fanout -flat -endpoints_only -from [get_nets * -hierarchical -filter {NAME =〜* rxusrclk2_en156 *}]] {NAME =〜* WE *}]] #设置rx elastic bufferset_max_delay-from [get_cells -hierarchical -filter {NAME =〜* rd_truegray_reg *&& amp;]中的时钟域交叉数据路径regs之间的最大延迟。 PRIMITIVE_SUBGROUP = ~flmp}] -to [get_cells -hierarchical -filter {NAME =〜* rag_writesync0_reg *&& PRIMITIVE_SUBGROUP = ~flmp}] -datapath_only 6.400 set_max_delay -from [get_cells -hierarchical -filter {NAME =〜* wr_gray_reg *&& PRIMITIVE_SUBGROUP = ~flmp}] -to [get_cells -hierarchical -filter {NAME =〜* wr_gray_rdclk0_reg *&& PRIMITIVE_SUBGROUP = ~flmp}] -datapath_only 6.400 set_max_delay -from [get_cells -hierarchical -filter {NAME =〜* rd_lastgray_reg *&& PRIMITIVE_SUBGROUP = ~flmp}] -to [get_cells -hierarchical -filter {NAME =〜* rd_lastgray_wrclk0_reg *&& PRIMITIVE_SUBGROUP = ~flmp}] -datapath_only 6.400 #设置时钟域交叉复位regs之间的错误路径和最大延迟 set_false_path -to [get_pins -of_objects [get_cells -hierarchical -filter {NAME =〜* sync1_r_reg [0]}] -filter {NAME =〜* D}] set_false_path -from [get_cells -hierarchical -filter {PRIMITIVE_SUBGROUP = ~gt}] -to [get_pins -hierarchical -filter {NAME =〜* sync1_en_r_reg [0] / D}] #异步重置删除同步器的错误路径 set_false_path -to [get_pins -of_objects [get_cells -hierarchical -filter {NAME =〜* sync1_r_reg *}] -filter {NAME =〜* PRE}] set_false_path -to [get_pins -of_objects [get_cells -hierarchical -filter {NAME =〜* sync1_r_reg *}] -filter {NAME =〜* CLR}] #以下路径指的是rx弹性缓冲区中DP RAM前面的寄存器async fifo set_false_path -from $ RXOUTCLK_OUT -to [get_cells -hierarchical -filter {NAME =〜* dp_ram_i * fd_i *&& PRIMITIVE_SUBGROUP = ~flmp}] set_false_path -to [get_pins -hierarchical -filter {NAME =〜* can_insert_fdr3 / D}] set_false_path -to [get_cells -hierarchical -filter {NAME =〜* synch_ * d1_reg}] set_false_path -to [get_pins -hierarchical -filter {NAME =〜* psynch_ * newedge_reg_reg / D}] set_false_path -to [get_pins -hierarchical -filter {NAME =〜* cable_pull_reset_reg_reg / D}] set_false_path -to [get_pins -hierarchical -filter {NAME =〜* cable_unpull_reset_reg_reg / D}] 仔细查看这些内容,看看是否能够满足您的需求。 问候, 丹尼尔 |
|
|
|
只有小组成员才能发言,加入小组>>
2420 浏览 7 评论
2823 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2294 浏览 9 评论
3374 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2461 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1169浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
585浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
451浏览 1评论
2005浏览 0评论
729浏览 0评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 13:29 , Processed in 1.383286 second(s), Total 88, Slave 72 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号