在FPGA开发中尽量避免全局复位的使用?(5)

 复位操作消耗的资源远比你想象的要多

在FPGA设计中,我们往往习惯在HDL文件的端口声明中加入一个reset信号,却忽略了它所带来的资源消耗。仔细分析一下,竟会有如此之多的影响:
复位网络需要占用布线资源
导致其余信号的布线信号受到影响,降低了它们布线的自由度。
增加的布线网络往往需要使用更高速率的芯片。
复位网络占用大量布线资源,使得Place&Route的时间大大增加,如果电脑是老爷机则让人十分痛苦。
复位信号需要占用大量的逻辑资源
复位信号需要使用触发器的专用复位管脚。
可操作的复位信号往往导致D触发器的输入前增加额外的门操作或专用的复位信号输入。
增大整个设计 的尺寸。
额外的逻辑消耗降低了系统的性能。
阻止了使用高效特征,如Xilinx FPGA特有的SRL16E 移位寄存器。
SRL16E可以在一个LUT中实现多达16个触发器。
SRL16E 实现的虚拟触发器不支持复位操作,这使得HDL设计中带有复位操作时,综合工具无法有效利用SRL16E 资源。有可能增加多达16倍的资源消耗。
在Xilinx网站的白皮书 WP275 .pdf:《Get your Priori  TI es Right - Make your Design Up to 50% Smaller》中提到了复位信号是如何影响FPGA资源利用率的,有兴趣的朋友可以去读一下。

总结一下,Xilinx FPGA设计中一般不需要插入全局复位网络,这样我们在写程序的时候就不必每个模块都加入reset端口了,既方便了程序书写,又减小了编译时间,还减少了资源占用。绝大多数情况下,重配置或者上电过程中,所有的触发器和RAM等都可以被预设初始状态,所以全局复位是完全没有必要的,因为所有的信号都已经具有明确的初值!Xilinx FPGA都已经经过充分验证,所以扫描逻辑和运行测试向量都不再是必须的操作,全局复位作为这些操作的一部分自然也不再需要。
复位操作还会影响到器件的资源占用、布局布线和实现效果,所以及时非得使用复位操作,也可以在局部仔细地设计复位网络。FPGA的设计真是博大精深,好多感觉上是约定俗成的东西,在实际实现中竟然有时候是完全不合理的。欢迎大家一起讨论。

在FPGA开发中尽量避免全局复位的使用?(5)_设计制作_EDA/IC设计
92
10
0
39

相关资讯

  1. 1、“2020厦门·俄罗斯电影周”启幕展映6部俄语佳片794
  2. 2、预售开启!《金蝉脱壳2》预告海报双发,史泰龙率群雄震撼来袭4495
  3. 3、《私人订制》首日8000多万创华语片历史纪录601
  4. 4、从安陵容到沈晓燕,时隔10年,陶昕然出演《陪你一起长大》大变样4514
  5. 5、徐峥不拍印囧改拍俄囧,王宝强黄渤铁三角或再度合作!350
  6. 6、《正者无敌》九月开播陈宝国与儿子同台演军人528
  7. 7、她曾出演尺度港片闻名,生活中却为人低调,更是人如其名既淑又贞3775
  8. 8、《如懿传》李纯演技爆发,一个细节比周迅的“哑巴式哭戏”更精彩1197
  9. 9、侯京健《觉醒年代》再度饰演“毛教员”恰同学少年热血爱国2730
  10. 10、《正青春》首播获好评多平台热度领先反响不断4969
全部评论(0)
我也有话说
0
收藏
点赞
顶部