RGMII时序约束

2023-11-10

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

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

TX:

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

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)。

 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

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RGMII时序约束 的相关文章

  • DDR3学习总结(一)

    简介 DDR3 SDRAM常 简称 DDR3 是当今较为常见的一种储存器 在计算机及嵌入式产品中得到广泛应用 特别是应用在涉及到大量数据交互的场合 比如电脑的内存条 对DDR3的读写操作大都借助IP核来完成 本次实验将采用 Xilinx公司
  • 各种FIFO硬件设计(FIFO概念、异步、同步、非2次幂深度FIFO)

    文章目录 一 FIFO概述 二 FIFO分类 三 FIFO重要信号与参数 3 1 信号 3 2 参数 3 2 1 data depth的确定 四 FIFO存储原理 五 同步FIFO 5 1 空满信号判断 5 2 同步FIFO源码 5 3 测
  • Vivido添加pynq-Z2开发板

    一 下载pynq z2开发板文件 下载地址 https www tulembedded com FPGA ProductsPYNQ Z2 html 二 将下载的文件解压到vivado安装的位置 如果boards目录下面没有boards fi
  • modelsim 关联 notepad++

    modelsim 控制窗口敲入 1 proc external editor filename linenumber exec I notepad notepad exe filename 2 set PrefSource altEdito
  • Verilog中forever、repeat、while、for四类循环语句(含Verilog实例)

    当搭建FPGA逻辑时 使用循环语句可以使语句更加简洁易懂 Verilog中存在四类循环语句 如标题 几种循环语句的具体介绍和用法如下 1 forever 连续的执行语句 语法格式 forever
  • 【FPGA入门】第八篇、FPGA驱动VGA实现动态图像移动

    目录 第一部分 实现效果 第二部分 动态VGA显示的原理 1 将动态显示的区域提前进行赋值 2 图像块的移动是每张图片叠加后的效果 3 如何实现图像块位置的改变 第三部分 系统结构和驱动波形 1 系统的Top down结构 2 图像块移动的
  • Matlab 高斯信道下QPSK通带通信系统的简单仿真

    1 原理 2 仿真 3 总结反思 4 参考资料 1 原理 QPSK的具体内容请参考百度 QPSK的调制jie框图大致如下 QPSK信号可以采用正交调制的方式产生 如第一张图片的左半部分 I路信号与cos 信号相乘 Q 路信号与sin信号相乘
  • 硬件基础知识

    SPI是串行外设接口 Serial Peripheral Interface 的缩写 是一种高速的 全双工 同步的通信总线 SCLK SCLK是一种有固定周期并与运行无关的信号量 CLK CLK是一种脉冲信号 TDNN 时延神经网络 它的两
  • DEBUG:Generate Bitstream失败

    问题 约束失败 解决 确保IO初始化引脚正确 和选择合适的电平
  • FPGA零基础学习之Vivado-UART驱动教程

    FPGA零基础学习之Vivado UART驱动教程 本系列将带来FPGA的系统性学习 从最基本的数字电路基础开始 最详细操作步骤 最直白的言语描述 手把手的 傻瓜式 讲解 让电子 信息 通信类专业学生 初入职场小白及打算进阶提升的职业开发者
  • 关于Keil中Memory中观察不到数据变化的问题以及启动文件栈的初始化

    关于Keil中Memory中观察不到数据变化的问题 在KEIL中观察Memory数据变化 一定要记得只能在RAM地址或ROM之内观察 如下图所示 RAM的地址设置在地址为0x20000000开始的地方 大小为0x20000 因此只有在这个范
  • MOS管的知识,看这一篇就可以了

    转载 21ic电子网 2020 11 15 18 19 以下文章来源于记得诚电子设计 作者记得诚 记得诚电子设计 分享电子硬件知识 永远相信美好的事情即将发生 今天的文章简单总结一下MOS管 如下是本文目录 场效应管分类 场效应管分为结型
  • FIFO读写控制

    如果在两个模块之间传输数据 两个模块之间的处理速率不同 会导致采集数据的遗漏或错误 在他们之间加一个数据缓存器 所有数据先经过缓存器缓存 再输入数据接送模块 创建两个模块 一个 作为发送模块 一个作为接受模块 发送模块检测到 fifo为空开
  • 八段数码管动态显示(输入数据为BCD编码)

    八段数码管动态显示 输入数据为BCD编码 一 数码管概述 图1 八段共阴数码管内部等效原理图 图2 八段共阳数码管内部等效原理图 上面两图分别是对应八段共阴 共阳的数码管内部等效图 共阴是将八个LED数码管的阴极连接在一起接低 阳极segm
  • 【Xilinx Vivado时序分析/约束系列4】FPGA开发时序分析/约束-实验工程上手实操

    目录 建立工程 添加顶层 模块1 模块2 添加约束文件 编辑时钟约束 打开布线设计 代码代表的含义 时序报告 进行时序分析 Summary 包含了汇总的信息量 Source Clock Path 这部分是表示Tclk1的延时细节 Data
  • PAJ7620U2手势识别——配置0x00寄存器(3)

    文章目录 前言 一 为啥要配置0x00寄存器 二 配置步骤 1 单个读操作步骤图 2 模块状态转移图绘制 3 模块波形图绘制 4 上板验证 5 参考代码 总结 前言 在前面的教程中 小编带领各位读者学习了如何通过I2C协议去唤醒PAJ762
  • 使用七牛云进行文件上传

    目录 一 七牛云入门测试 1 注册七牛云账号 完成后选择对象存储 2 在里面创建空间 一个空间相当于一个文件夹 就是将对象上传到的地方 3 查看个人秘钥 注册完成账号后 会有一个秘钥 上传文件的时候进行授权和认证 4 文件上传测试 二 封装
  • 基于FPGA的AHT10传感器温湿度读取

    文章目录 一 系统框架 二 i2c接口 三 i2c控制模块 状态机设计 状态转移图 START INIT CHECK INIT IDLE TRIGGER WAIT READ 代码 四 数据处理模块 串口 代码 五 仿真 testbench设
  • 串口通信知识点总结

    串口是串行接口 serial port 的简称 也称为串行通信接口或COM接口 串口通信是指采用串行通信协议 serial communication 在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式 串口按电气标准及协议来划分
  • MINI-UTDE 10 BASE-T 集成控制器

    MINI UTDE 10 BASE T 集成控制器 MINI UTDE 10 BASE T 拥有多达三个本地I O板和远程I OS总线通信 为用户提供了一系列生产单元功能的单一控制点 包括诸如夹头 反馈器和辅助机器等外围生产设备 支持所有主

随机推荐

  • STM32系列(HAL库)——单通道ADC转换

    本篇演示使用cubeMX配置STM32单通道ADC 话不多说 开始正文 一 前期准备 1 硬件 STM32C8T6最小系统板 USB TTL串口模块 ST Link下载器 2 软件 keil5 IDE cubeMX 二 cubeMX配置 1
  • 139. 单词拆分(DP)

    139 单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典 请你判断是否可以利用字典中出现的单词拼接出 s 注意 不要求字典中出现的单词全部都使用 并且字典中的单词可以重复使用 示例 1 输入 s leetcode
  • 折半查找(C语言)

    折半查找 设定查找范围的下限low 上限high 由此确定查找范围的中间位置mid 中间位置的值等于待查的值 查找成功 中间位置的值小于待查的值 low mid 1 中间位置的值大于待查的值 high mid 1 直到low gt high
  • java基本语法 上

    目录 关键字与保留字 关键字 keyword 的定义和特点 保留字 标识符 Java中的名称命名规范 变量 变量的定义 变量的分类 整数类型 byte short int long 浮点类型 float double 字符类型 char 布
  • 函数与对象关系

    函数是对象 通过下面代码就能验证 var fn function console log fn instanceof Object true 函数跟对象之间的关系比较复杂 首先 所有对象都是通过函数创建的 有些人可能反驳 不对因为 var
  • AntD 可编辑行表格

    本地数据代码模板自用 官网例子改改 编辑行的自定义表格 import React useState from react import Table Input InputNumber Popconfirm Form Typography D
  • Umijs组件的初次应用

    在Umijs组件中我们不像vue那样可以看到组件的路径 在umijs刚刚搭建完成我们看不到组件的路径 所以我们要手动进行一些小小的改动 就可以看到了 一 应用前的准备 1 在当前项目文件路径下的终端输入 npm umi g page log
  • C 求整数n的二进制有多少个1

    首先 整数 分为正整数和负数 那么解题的时候就要注意这个正 负 提供了3中解题方案 第一种 int getBinary1 unsigned int n int count 0 while n if n 2 1 count n 2 retur
  • 说了那么多,到底什么是「神经搜索」?

    从人脑神经网络到深度学习神经网络 来自 Jina AI 的 Jack 将带大家从 0 到 1 认识 搜索 及 神经搜索 什么是神经搜索 它与普通搜索有什么区别 它能解决哪些问题 又有哪些优势和劣势 观看本期 Jina AI 小科普 在 Ja
  • SQL Server 问题集

    问题一 执行drop database xxx 反馈结果 无法对 数据库 xxx 执行 删除 因为它正用于复制 解决方案 只需要执行 sp removedbreplication XXX 然后再执行drop database xxx 原因分
  • vs2022提示函数不安全等问题

    我们在使用VS编译器编写C C 代码源程序的时候 发现在里面用scanf函数会编译出错 如下图所示 这个提示我们有两种方案可以解决 一是可以把scanf函数替换为 scanf s 如下 此时编译就会通过 但是在其他编译器里没有这个函数 因此
  • 【Figma技巧】Figma中快速制作斜线阴影的三种方法

    想要实现的效果 方法一 安装Hero Patterns插件 安装地址 https www figma com community plugin 743134103711120154 Hero Patterns for Figma 缺点 生成
  • openldap介绍和使用

    openldap介绍和使用 为什么会有本文 早期 公司是没有统一认证这个东西的 所以各自玩各自的 于是 confluence一个用户体系 gitlab一个用户体系 Jenkins一个用户体系等等 开发中要用到的开源软件数不胜数 每个软件都要
  • 齐纳二极管

    齐纳二极管 zener diodes 的主要作用就是当作一种电压调整器 QLCO A146提供稳定的参考电压 可应用在电源供应器 电压表与其他的仪器中 在本节中 你将会学习到齐纳二极管在适当的工作条件下 如何维持一个接近定值的直流电压 你将
  • HCL网络实操之ftp登录

    路由器配置ip in g0 0 ip address 192 168 56 200 24 路由器开启ftp服务 ftp server enable 创建用户 设置用户密码 设置权限 创建用户 local user cmoc 设置用户密码 p
  • JCreator 配置与用法

    对于一个web项目 里面由几个比较来说相对的标准目录 CSS 用来存放web项目中所使用到的样式文件 images 用来存放web项目中所使用的装饰图片 WEB INF 用来表示是一个jsp类型的项目 并且符合J2EE标准 inc 或者 i
  • 2023通信工程专业毕设题目大全

    文章目录 1前言 2 如何选题 3 通信工程选题方向 3 1 移动通信方向 3 2 嵌入式开发方向 3 3 人工智能方向 3 4 物联网方向 3 5 算法研究方向 3 6 移动应用开发方向 3 7 网络通信方向 3 8 学长作品展示 4 最
  • redis后端启动及关闭

    本文笔记为传智教程视频截图整理 redis前端启动 无法部署集群
  • 浅谈 malloc 函数在单片机上的应用

    聊聊 malloc函数 在单片机程序设计中怎么使用 目录 前言 一 malloc 函数简介 二 malloc 之于单片机 2 1 malloc 函数申请的内存在哪里 2 2 用与不用malloc的区别 三 malloc可能遇到的问题 3 1
  • RGMII时序约束

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