RGMII时序约束

这篇具有很好参考价值的文章主要介绍了RGMII时序约束。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

RGMII是以太网MAC连接PHY的一种接口,可以实现10/100/1000M网络速度,在FPGA系统中比较常见。RGMII在1000M模式下是双沿采样,而且要求采样端是center-aligned,所以其时序约束是比较复杂的。

下面分TX和RX来描述其时序约束应该怎么写。

TX:

通常的做法是使用ODDR实现双沿采样时序,如下图示。时序约束的重点是搞清楚有效的时序分析关系。对setup来说,分析上升沿到上升沿(RR),以及下降沿到下降沿(FF);对hold来说,分析上升沿到下降沿(RF),以及下降沿到上升沿(FR)。

rgmii时序约束,IC设计,fpga开发

TX的时序约束脚本:

##---------------------- TX ----------------------##
## clk_0 and clk_90 are derived clocks from PLL, so no need to re-define them. 
## create a forward captrue clock
create_generated_clock -name rgmii_txc -source [get_pins ${rgmii_oddr_hier}u_ODDRE1_rgmii_txc/C] -multiply_by 1 [get_ports $src_rgmii_txc]

## TX: *_TXD and *_TX_CTL are synchronous to *_TXC, which is a dual-edge clock.
##     Desired serup launch and capture relationship: RR and FF.
##     Desired hold launch and capture relationship: RF and FR. 
set_output_delay  -clock rgmii_txc  -max  1.0 [get_ports PAD_RGMII_TX_CTL]
set_output_delay  -clock rgmii_txc  -min -0.8 [get_ports PAD_RGMII_TX_CTL]
set_output_delay  -clock rgmii_txc  -max  1.0 [get_ports PAD_RGMII_TX_CTL] -clock_fall -add_delay
set_output_delay  -clock rgmii_txc  -min -0.8 [get_ports PAD_RGMII_TX_CTL] -clock_fall -add_delay
set_output_delay  -clock rgmii_txc  -max  1.0 [get_ports PAD_RGMII_TXD*]
set_output_delay  -clock rgmii_txc  -min -0.8 [get_ports PAD_RGMII_TXD*]
set_output_delay  -clock rgmii_txc  -max  1.0 [get_ports PAD_RGMII_TXD*] -clock_fall -add_delay
set_output_delay  -clock rgmii_txc  -min -0.8 [get_ports PAD_RGMII_TXD*] -clock_fall -add_delay

 

RX:

使用IDDR+一级FF做双沿采样,如下图示。对setup来说,分析上升沿到上升沿(RR),以及下降沿到下降沿(FF);对hold来说,分析上升沿到下降沿(RF),以及下降沿到上升沿(FR)。

rgmii时序约束,IC设计,fpga开发

 RX的时序约束脚本:

##---------------------- RX ----------------------##
## create a virtual launch clock outside of FPGA
create_clock -name vir_rgmii_rxc    -period [expr $GMAC_RX_PERIOD]
## create capture clock on RXC PAD, which is +90 degrees shifted relative to launch clock
create_clock -name rgmii_rxc        -period [expr $GMAC_RX_PERIOD]   [get_ports $src_rgmii_rxc]  -waveform {2 6}

## RX: *_RXD and *_RX_CTL are synchronous to *_RXC, which is a dual-edge clock.
##     Desired setup launch and capture relationship: RR and FF.
##     Desired hold launch and capture relationship: RF and FR. 
set_input_delay   -clock vir_rgmii_rxc  -max  0.5 [get_ports PAD_RGMII_RX_CTL]
set_input_delay   -clock vir_rgmii_rxc  -min -0.5 [get_ports PAD_RGMII_RX_CTL]
set_input_delay   -clock vir_rgmii_rxc  -max  0.5 [get_ports PAD_RGMII_RX_CTL] -clock_fall -add_delay
set_input_delay   -clock vir_rgmii_rxc  -min -0.5 [get_ports PAD_RGMII_RX_CTL] -clock_fall -add_delay
set_input_delay   -clock vir_rgmii_rxc  -max  0.5 [get_ports PAD_RGMII_RXD*]
set_input_delay   -clock vir_rgmii_rxc  -min -0.5 [get_ports PAD_RGMII_RXD*]
set_input_delay   -clock vir_rgmii_rxc  -max  0.5 [get_ports PAD_RGMII_RXD*] -clock_fall -add_delay
set_input_delay   -clock vir_rgmii_rxc  -min -0.5 [get_ports PAD_RGMII_RXD*] -clock_fall -add_delay

set_false_path  -rise_from [get_clocks vir_rgmii_rxc] -fall_to [get_clocks rgmii_rxc] -setup
set_false_path  -fall_from [get_clocks vir_rgmii_rxc] -rise_to [get_clocks rgmii_rxc] -setup
set_false_path  -rise_from [get_clocks vir_rgmii_rxc] -rise_to [get_clocks rgmii_rxc] -hold
set_false_path  -fall_from [get_clocks vir_rgmii_rxc] -fall_to [get_clocks rgmii_rxc] -hold

 文章来源地址https://www.toymoban.com/news/detail-670212.html

到了这里,关于RGMII时序约束的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于FPGA 以太网gmii_to_rgmii模块编写 附源码

    笔者使用的开发板是米联客zynq UitraScale+ xczu4ev-sfvc784-2-i开发板进行测试 由于米联客协议族源码不开源,自己写了一个简易的以太网接口转换模块只支持1000M速率。 (1)接收时序(PHYFPGA) RXC 的上下边沿与 RXD 和 RX_CTL 信号对齐,相位相同。(非延时模式) RXC 的上下边沿与

    2024年02月06日
    浏览(41)
  • 千兆以太网芯片88E1111 RGMII模式的FPGA驱动实现

    千兆以太网芯片88E1111 RGMII模式的FPGA驱动实现 在网络应用领域,千兆以太网已经成为主流,而88E1111作为一款先进的千兆以太网芯片,其驱动实现对于网络设备的性能和稳定性有着至关重要的影响。本文将介绍在RGMII模式下,如何实现88E1111芯片在FPGA上的驱动。 一、准备工作

    2024年01月22日
    浏览(60)
  • FPGA-以太网基础知识-MII接口-RMII接口-GMII接口-RGMII接口-MAC协议-UDP协议

    记录学习FPGA以太网基础知识、包括MII接口-RMII接口-GMII接口-RGMII接口-MAC协议、UDP协议 由上图可得,以太网传输流程 : 1、一块fpga的pcb板子以太网部分,包括FPGA芯片、PHY以太网芯片、网口接口。 2、FPGA芯片包括UDP层、IP层、MAC层,即FPGA封装好了这些硬件模块也叫IP核(这里的

    2024年02月08日
    浏览(50)
  • FPGA设计时序约束二、输入延时与输出延时

    目录 一、背景 二、set_input_delay 2.1 set_input_delay含义 2.2 set_input_delay参数说明 2.3 使用样例 三、set_output_delay 3.1 set_output_delay含义 3.2 set_output_delay参数说明 3.3 使用样例 四、样例工程 4.1 工程代码 4.2 时序报告 五、参考资料     为了在设计中准确的模拟信号从FPGA传输到外部或

    2024年02月07日
    浏览(40)
  • FPGA设计时序约束一、主时钟与生成时钟

    一、主时钟create_clock 1.1 定义 1.2 约束设置格式 1.3 Add this clock to the existing clock 1.4 示例 1.5 差分信号 二、生成时钟generate_clock 2.1 定义 2.2 格式 2.2.1 by clock frequency 2.2.2 by clock edges 2.2.3 示例 2.2.4 自动生成时钟 2.2.5 重命名生成时钟     主时钟是来自FPGA芯片外部的时钟,通过时

    2024年01月20日
    浏览(44)
  • 【数字IC/FPFA】时序约束--时钟约束

    时钟周期约束,顾名思义,就是我们对时钟的周期进行约束,这个约束是我们用的最多的约束了,也是最重要的约束。 下面我们以vivado中的时钟约束为例,介绍时钟约束的相关内容。 在Vivado中我们通过使用create_clock来创建时钟周期约束。使用方法如下: 其中,参数name为创建

    2024年02月03日
    浏览(45)
  • FPGA设计时序约束十六、虚拟时钟Virtual Clock

    目录 一、序言 二、Virtual Clock 2.1 设置界面 三、工程示例 3.1 工程设计 3.2 工程代码 3.3 时序报告 3.4 答疑 四、参考资料     在时序约束中,存在一个特殊的时序约束,虚拟时钟Virtual Clock约束,根据名称可看出时钟不是实际存在的,主要是在STA分析时序时提供一个参考。  

    2024年01月17日
    浏览(45)
  • FPGA UDP协议栈:基于88E1111,支持RGMII、GMII、SGMII三种模式,提供3套工程源码和技术支持

    FPGA UDP协议栈:基于88E1111,支持RGMII、GMII、SGMII三种模式,提供3套工程源码和技术支持 目前网上的fpga实现udp基本生态如下: 1:verilog编写的udp收发器,但中间的FIFO或者RAM等调用了IP,或者不带ping功能,这样的代码功能正常也能用,但不带ping功能基本就是废物,在实际项目中

    2024年02月02日
    浏览(132)
  • 【FPGA】Verilog:时序电路设计 | 二进制计数器 | 计数器 | 分频器 | 时序约束

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:计数器与分频器   ​​ 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用

    2024年02月02日
    浏览(62)
  • FPGA设计时序约束三、设置时钟组set_clock_groups

    目录 一、背景 二、时钟间关系 2.1 时钟关系分类 2.2 时钟关系查看 三、异步时钟组 3.1 优先级 3.2 使用格式 3.3 asynchronous和exclusive 3.4 结果示例 四、参考资料     Vivado中时序分析工具默认会分析设计中所有时钟相关的时序路径,除非时序约束中设置了时钟组或false路径。使

    2024年02月02日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包