VIVADO-IO/IOBUF时序问题-1

在处理Xilinx Artix-7 FPGA与EGO1系列外设接口时,遇到流水灯输出时序问题。解决方案包括添加时序约束和在输出端添加reg或IOBUF。方法二是直接在输出端添加reg,简化设计且有效提高输出能力。添加时序约束能优化物理设计,但其效果依赖于具体约束设置,理解并正确应用时序约束至关重要。

Vivado-IO与IOBUF

Q:我们学校FPGA的实验课用的是Xilinx的Artix-7系列FPGA,外设是EGO1系列。不算特别垃圾,不过也就几百块钱。根据EGO1公司给的LAB做还可以。这次想说的是对于LAB1流水灯的模式转换,小灯输出发生时序问题怎么办?

A:其实这个问题很容易解决。首先这个问题的症结在于流水灯作为IO外设,其驱动能力受到限制。在一个周期内(100MHz),从板上信号到IO需要绕过很长的线(这部分可以从综合报告中的DEVICE放大看)。这部分连线会来带很大的延时。虽然实际上,这个问题并不多见。

解决这个问题大致有两个途径:
第一种:添加时序约束(无代码,下面有一些分析)
第二种:给输出端加reg,提高输出能力(Code_1)

我更偏向于第二种,因为简单明了,在不太复杂的工程里使用很方便。
当然第一种也可以,这里稍作分析,但是我也没有太搞懂。

方法一:时序约束
出现时序约束的场合:

VIVADO会自动提醒你是否需要时序约束,尤其是在经过综合之后,如果打开时序约束助手,就会自动提示你那一部分需要约束。

做法:

直接根据VIVADO提示做就可以。其中一般CLK=100MHz。里面的参数设置与建立时间、保持时间、块间延时等四种延时(还有一种我忘了,可能没记清楚,建立时间和保持时间是最重要的)。
- 如果不理解这些延时都应该设置什么样的值,就设置为0就可以了。
- 对于IO管脚的时序约束也是默认。

效果:

我也不太了解时序约束。不过有了时序约束,我猜测应该对板上连线等有优化。就像管脚约束一样是一种物理约束。加了时序约束后可以发现,在DEVICE上IO管脚旁边的IOBUF(iobuffer输入/输出缓冲器)就启动了(通常单端输出,只会启动OBUF)。这个OBUF就对管脚有缓冲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值