当前位置:网站首页>vivado里那些看不懂的原语
vivado里那些看不懂的原语
2022-07-31 12:12:00 【IC学习者】
遇到一段代码
GLOBAL sw_clk(
.in (SWCLK),
.out (swck)
);
是Intel风格的,可以用xilinx的BUFG进行替代
// BUFG 分配时钟专用资源,指定信号走专门的时钟布线
修改为
BUFG sw_clk(
.I (SWCLK),
.O (swck)
);
布线时候报错
[Place 30-574] Poor placement for routing between an IO pin and BUFG. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule.
< set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets SWCLK_IBUF] >
SWCLK_IBUF_inst (IBUF.O) is locked to IOB_X0Y7
and SWCLK_IBUF_BUFG_inst (BUFG.I) is provisionally placed by clockplacer on BUFGCTRL_X0Y0
具体原因未知,只能先把功能打通,所以把相关的部分注释掉。
下面是收集的一些资料,来源都做了标注。
【FPGA】xilinx IOBUF的用法
inout类型的接口,主动添加IOBUF
IOBUF #(
.DRIVE(12), // Specify the output drive strength
.IBUF_LOW_PWR("TRUE"), // Low Power - "TRUE", High Performance = "FALSE"
.IOSTANDARD("DEFAULT"), // Specify the I/O standard
.SLEW("SLOW") // Specify the output slew rate
) IOBUF_inst (
.O(O), // Buffer output
.IO(IO), // Buffer inout port (connect directly to top-level port)
.I(I), // Buffer input
.T(T) // 3-state enable input, high=input, low=output
);
xilinx FPGA全局时钟资源的使用
1.什么是xilinx fpga全局时钟资源
时钟对于一个系统的作用不言而喻,就像人体的心脏一样,如果系统时钟的抖动、延迟、偏移过大,会导致系统的工作频率降低,严重时甚至会导致系统的时序错乱,实现不了预期的逻辑功能。xilinx fpga内的全局时钟资源可以很好的优化时钟的性能,因此在设计时要尽可能多的使用fpga内部的时钟资源。xilinx fpga内部的全局时钟采用全铜工艺实现,配合专用时钟缓冲和驱动结构,可以使进入全局时钟网络的时钟到达fpga内部各个逻辑单元的抖动和延迟最小。全局时钟资源是专用布线资源,存在于全铜布线层上,使用全局时钟资源不会影响芯片的其他布线资源。最好的全局时钟解决方案是:让时钟从全铜工艺的全局时钟输入管脚进入fpga,然后经内部的全局时钟缓冲单元去控制各个触发器。xilinx常用的全局时钟资源原语有:全局时钟缓冲IBUFG、差分全局时钟缓冲IBUFGDS、全局缓冲BUFG、数字时钟管理单元DCM、锁相环PLL。
2.全局时钟资源的使用方法
IBUFG是从全局时钟输入管脚输入的单端时钟的第一级缓冲,IBUFGDS是指的是差分时钟的缓冲。只要是从全局时钟管脚的输入的时钟必须要经过IBUFG,如果不经过,那么ise在布局布线时就会报错,反之如果使用了IBUFG,那么信号一定是从全局时钟输入管脚输入的,这是因为IBUFG和IBUFGDS的输入只和fpga的全局时钟输入引脚有物理上的连接,与普通的IO和内部逻辑块CLB没有物理上的连接。BUFG是全局缓冲,BUFG的输出到达fpga内部各个逻辑单元的时钟延迟与抖动都是最小的。BUFG不但可以驱动IBUFG和DCM的输出,还可以驱动其他普通的片内信号和普通io,当某个信号扇出很大时,而且要求的抖动延迟最小时,可以用BUFG驱动该信号,普通IO和普通的片内逻辑信号进入全局时钟布线层有一个固定的延迟,一般在10ns左右,即普通信号或普通IO从输入到BUFG的输出有一个约10ns左右的固有延迟,但BUFG的输出到片内所有的单元(IOB,CLB,选择性块RAM)的延时可以忽略不计。时钟资源原语的使用方法主要有以下四种:
Reference
Vivado使用心得(二)BUFG,IBUFG,BUFGP,IBUFGDS等含义以及使用
全局时钟资源的使用方法(五种)
IBUFG + BUFG的使用方法:
IBUFG后面连接BUFG的方法是最基本的全局时钟资源使用方法,由于IBUFG组合BUFG相当于BUFGP,所以在这种使用方法也称为BUFGP方法。IBUFGDS + BUFG的使用方法:
当输入时钟信号为差分信号时,需要使用IBUFGDS代替IBUFG。IBUFG + DCM + BUFG的使用方法:
这种使用方法最灵活,对全局时钟的控制更加有效。通过DCM模块不仅仅能对时钟进行同步、移相、分频和倍频等变换,而且可以使全局时钟的输出达到无抖动延迟。Logic + BUFG的使用方法:
BUFG不但可以驱动IBUFG的输出,还可以驱动其它普通信号的输出。当某个信号(时钟、使能、快速路径)的扇出非常大,并且要求抖动延迟最小时,可以使用BUFG驱动该信号,使该信号利用全局时钟资源。但需要注意的是,普通IO的输入或普通片内信号进入全局时钟布线层需要一个固有的延时,一般在10ns左右,即普通IO和普通片内信号从输入到BUFG输出有一个约10ns左右的固有延时,但是BUFG的输出到片内所有单元(IOB、CLB、选择性块RAM)的延时可以忽略不计为“0”ns。Logic + DCM + BUFG的使用方法:
DCM同样也可以控制并变换普通时钟信号,即DCM的输入也可以是普通片内信号。使用全局时钟资源的注意事项全局时钟资源必须满足的重要原则是:使用IBUFG或IBUFGDS的充分必要条件是信号从专用全局时钟管脚输入。换言之,当某个信号从全局时钟管脚输入,不论它是否为时钟信号,都必须使用IBUFG或IBUFGDS;如果对某个信号使用了IBUFG或IBUFGDS硬件原语,则这个信号必定是从全局时钟管脚输入的。如果违反了这条原则,那么在布局布线时会报错。这条规则的使用是由FPGA的内部结构决定的:IBUFG和IBUFGDS的输入端仅仅与芯片的专用全局时钟输入管脚有物理连接,与普通IO和其它内部CLB等没有物理连接。另外,由于BUFGP相当于IBUFG和BUFG的组合,所以BUFGP的使用也必须遵循上述的原则。
Xilinx FPGA输入输出缓冲 BUF 的使用
UltraScale Architecture Libraries Guide (UG974)
边栏推荐
- JVM 运行时数据区与JMM 内存模型详解
- The most complete phpmyadmin vulnerability summary
- How MySQL's allowMultiQueries flag relates to JDBC and jOOQ
- Docker build Mysql master-slave replication
- JVS轻应用的组成与配置
- WebGL给Unity传递参数问题1: Cannot read properties of undefined (reading ‘SendMessage‘)
- 连续变量离散化教程
- kernel syscore
- Character Functions and String Functions
- Wearing detection and action recognition of protective gear based on pose estimation
猜你喜欢
随机推荐
Docker搭建Mysql主从复制
立方体IV(暑假每日一题 10)
JVS设置不同应用的登录时效时间
[Shader] Shader official example [easy to understand]
Data Persistence Technology - MP
带有对称约束切换线性系统的结构可控性
MySQL模糊查询性能优化
jmeter性能测试步骤入门(性能测试工具jmeter)
数据湖(十九):SQL API 读取Kafka数据实时写入Iceberg表
SAP ABAP OData 服务如何支持 $filter (过滤)操作试读版
Use IN List Population in Your JDBC Application to Avoid Cursor Cache Contention Issues
Quickly learn database management
串的基本概念与操作
CWE4.8 -- 2022年危害最大的25种软件安全问题
DCM 中间件家族迎来新成员
订song餐系统
The 2nd activity of the TOGAF10 Standard Reading Club continues wonderfully, and the highlights will be reviewed!
Summary of several defragmentation schemes for MySQL (to solve the problem of not releasing space after deleting a large amount of data)
「R」使用ggpolar绘制生存关联网络图
Standard SQL/JSON - the sobering part









