第二章总结
上一篇 /
下一篇 2008-07-15 19:51:21
/ 个人分类:My Footprint
今天看完了第二章,做一下总结。
第二章主要讲了FPGA设计的面积问题,主要讨论基于正确拓扑结构下的面积节省。
首先是流水线的问题,其实这是上一章其中的一个逆问题,就是说复用其中可以复用的模块,收起流水线操作,从而节省了面积,但是降低了设计的吞吐能力。
2:还是复用问题,我不是很懂。说的是:当共享模块比控制逻辑大的时候,控制可以作为逻辑复用使用。
3:资源共享。主要讲的是一些公用资源的共享,比如计数器等,因为在每个模块都可能用到,但是也许位数和要求不同,但是可以通过共享计数器的某些位实现一个计数器为几个模块所用。
4:主要讲了reset设置问题,这是一个本章讲的重点,也是一些经验之谈。主要是几点
A:一些不适当的reset功能引入,会使综合工具的优化能力大大下降,因为考虑了reset的逻辑引入,从而使综合布线等工具无法实现很好的优化功能。
B:没有reset功能的资源问题。以移位寄存器为例,因为FPGA中存在着这些移位寄存器模块,但是没有reset功能,如果给移位寄存器加入了reset功能,会使FPGA放弃这些固定模块,从新使用新的逻辑模块搭建这些功能模块,从而导致面积的大量增长。
C:没有set功能的资源问题。与上面一个问题相似,以乘法器为例,因为固定模块的乘法器没有set功能,所以要避免给乘法器的输出赋初值。
D:没有异步复位的功能模块。以DSP模块为例,因为它只有同步复位,所以使用异步复位会使设计的面积大幅增加。
E:RAM问题。更新RAM的值往往对面积问题不利,特别是异步复位会使设计的逻辑极其复杂。
F:使用寄存器的SET和RESET功能会使某些组合逻辑得不到优化。许多使用一个LUT就能解决的问题,因为使用了寄存器的上面两个功能,使得逻辑电路变得复杂。举的例子是将一个寄存器赋值的ifelse语句拆开为一个ifelseifelse语句,从而使两段电路变成了一段由LUT组成的查找表电路。给出的忠告是:Avoid using set or reset whenever possible when area is the key consideration。
本章有一个小问题不是很懂,但是也有很大收获。往往事情不能两全,我们应该根据设计要求放弃一些该放弃的,启用一些哪怕很冗余但是很有效的办法去解决问题。本章花费4个小时,总结50分钟。
导入论坛
收藏
分享给好友
管理
举报
TAG: