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。里面的参数设置与建立时间、保持时间、块间延时等四种延时(还有一种我忘了,可能没记清楚,建立时间和保持时间是最重要的