This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
使用 TI204c-IP_Xilinx.SVP 进行仿真能否在 Vivado 上实现?
我尝试了 TI204c-IP 仿真、但无法获得预期的结果。
我创建了一个测试台、如 TI204c-IP-Users-Guide.pdf (5/17/2021)的"8.1.2参考设计环回测试环境"图示。
*它不使用 SYSREF。
* sys_clk_p 和 n 将频率设置为78.125MHz。
* REFCLK_p &n 将频率设置为156.25MHz。
*它显示 MASTER_RESET_n 的低电平
* qpll0_locked、qpll1_locked 和 cpll_locked 为低电平。
*我模拟了大约20us。
使用 IP
TI204C-IP-Release-v1.10-latest
Zc706_8b10b
我在 Vivado 2019.1的网页包中试用了它。
我将器件从 xc7z045更改为 xc7k160、因为 Web Pack 无法编译 xc7z045。
Haginoya、您好!
我正在与我们的团队谈论这一点、并将向您回复他们的回复。
此致、
David Chaparro
尊敬的 David:
感谢您的回答。
我将等待您的下一次答复。
此致、
Naoki Haginoya
您好!
TI204c JESD IP 支持 Vivado 中的仿真。 更改目标器件时、请确保为新收发器重新生成与原始器件参数相同的 xci。 IP 用户指南的第8.7节对此进行了说明。
如果已经正确完成、 您可以在环回中连接 Tx 和 Rx、并遵循 第8.6节中描述的复位机制。
对于环回、将所有 Tx 通道连接到 Rx 通道、将 TX_SYNC_n 连接到 RX_SYNC_n
1>从 MASTER_RESET_n 设置为"0"开始、RX_SYNC_RESET 和 TX_SYNC_RESET 设置为"1"。
2>将 MASTER_RESET_n 设置为"1"。 在这一步完成之前、收发器将不会从复位中释放。 运行约5us。 之后、QPLL0锁定信号应设置为"11"、表示两个四路 PLL 都已锁定。 请注意、只有 当基准时钟正确路由到每个四通道中的 PLL 时、才会发生这种情况。
3>一旦 PLL 锁定值为"11"、将 TX_SYNC_RESET 和 RX_SYNC_RESET 设置为"0"。 运行约100us (时间取决于收发器型号)、您应该会看到 Tx 和 Rx IP 正在导入和导出数据。
此致、
阿迈德
您好、Ameet、
感谢您的回答。 但我无法获得希望的结果。
我检查了已更改设备的 GTX_8b10b_rxtx.xci。
我发现器件名称、速度等级、架构和封装都有所不同。
此外、我将列出的单通道器件从"TI_204C_IP_Ref.SV"的内部信号更改为端口信号、因为我不了解 IP 内部的工作情况、而 IP 中的名称是"VIO"。
信号为 MASTER_RESET_n、Rx_SYNC_RESET 和 TX_SYNC_RESET。
我从我的测试台发出了他们的信号、他们正在工作、你教过我。
我想、如果 TI IP 需要 Vivado 的某个选项、请告诉我。
此致、
Naoki Haginoya
您好、Ameet、
你有函馆吗?
谢谢
穆克
您好、Mukuno、
请将以下文件发送给我:
收发器的 XCI 文件(在您将设计重新映射到 xc7k FPGA 之后)
执行时钟和数据回送连接的顶级 testBench 文件。
我将查看上述内容、看看是否可以发现一些问题。 Vivado 不应要求对仿真进行任何特殊设置、因为相同的文件用于合成和 P&R
VIO 模块用于在运行时控制 FPGA 中的信号。 这使得设计人员能够通过 Vivado HW 管理器将信号设置为1/0。
此致、
阿迈德
您好!
我还注意到您在第一封邮件中的更多内容。 该参考设计的 sys_clk 输入也应为156.25MHz (如8.1.2节中的图所示)、但您的消息显示为78.125MHz。 该时钟由参考设计中的 PLL 用于生成 Rx_SYS_CLOCK 信号、该信号应为78.125MHz。 在您的情况下、它将创建所需速率的一半(39.0625MHz)。 即使在这种情况下、IP 仍将初始化并释放通道、但是、您将看到缓冲区溢出错误(Rx_lane 缓冲区溢出输出将不为零)。 这是因为您提供的 Rx 时钟与链路发送数据的速率相比太慢。
我已经能够为 xc7z 和 xc7k 器件运行仿真、并且在这两种情况下链路都正确启动。 我已经为它附加了一个波形。
1>4US:QPLL0首先从0x0变为0x3 (表示两个四路 PLL 都已锁定)
2>5us:RX_SYNC_RESET 和 TX_SYNC_RESET 从"1"更改为"0"
3>34us:收发器完成初始化、您可以在 TxP/TXN 和 RXP/RxN 端口上看到活动
4>~52us:TX_DATA_READY 信号从"0"更改为"1"。 此时、Tx IP 已准备好接受来自用户端的数据。
4>54us:Rx 锁定到 Tx、SYNC_n 信号从"0"变为"1"。 这允许链路从 CGS 模式(控制字符)更改为数据
5>55us:Rx 数据通道在用户端发布、Tx 数据反映在 Rx 上。 由于 RX_SYS_CLOCK (由 PLL 生成)为78.125MHz、因此 RX_LAY_Buffer_overflow 信号保持为"0"。
请注意、即使 sys_clk 设置为78.125MHz (使 RX_SYS_CLOCK 为39.0625MHz)、仿真也会工作。 但是、 在这种情况下、一旦 Rx 数据通道释放、您还将看到 RX_lanebrate_overflow 信号从"0"更改为"1"。
此致、
阿迈德
您好、Ameet、
感谢您的响应、您的波形、您发现了我的错误。
此外、我可能会找到原因、它是时间刻度句子的设置。
"1ns/1PS"设置用于锁定 PLL、但"1PS/1PS"设置似乎无法锁定 PLL。
我将继续使用 TI IP 进行仿真。
此致、
Naoki
您好、Ameet、
仿真结果还不正确。
Rx 数据与 Tx 数据不匹配、如所连接的波形。
mgt_lane rx (p/n)与正确的一样、但 rx_lane 数据[7:0]是相同的值。
我仅在 ADC_lane (p/n)中连接了零号通道、RX_lane 数据[7:0]的值相同。
为什么 Rx_lane 数据[7:1]与'Z'不匹配?
您认为我有什么错误吗?
此致、
Naoki
您好、Ameet、
我找到了解决上部问题的方法。
Xilinx 的仿真器不能在 JESD_LINK_params.vh 中使用以下设置。
`define lane ADC_TO_GT_MAP{7、6、5、4、3、2、1、0}
如果我更改为下面、则可以正常工作。
`define lane ADC_TO_GT_MAP{3'b111、3'b110、3'b101、3'b100、3'b011、3'b010、3'b00、3'b000}
此致、
Naoki
您好、Naoki、
您的观察结果正确。 Vivado 仿真器未正确解释这些值。 有趣的是、Vivado 合成流程没有此错误。
此致、
阿迈德
您好、Ameet、
感谢您的信息。
此致、
Naoki