华为FPGA设计高级技巧xilnx篇-阅读笔记2

本文介绍了华为FPGA设计中的高级技巧,包括如何合理选择加法电路,理解IF语句和Case语句的速度与面积权衡,减少关键路径的逻辑级数,以及高效利用IOB资源。通过这些方法,可以在保证设计速度的同时,优化FPGA的面积利用率。

设计技巧

设计技巧主要从处理速度和面积着手,其中处理速度与面积的一个原则是:向关键路径(部分)要时间,向非关键部分(部分)要面积
为了获得更高的速度,应当尽量减少关键路径上的LUT级数,尽量压缩线延时;为了获得更小的面积,在非关键路径(部分)上尽量优化电路结构,压缩面积

合理选择加法电路

串行进位与超前进位

串行进位加法结构如图
串行进位加法
超前进位加法器结构
超前进位加法
由上图可以知道串行进位加法结构的面积较小,但速度较慢,超前进位加法结构虽然速度较快,但是面积相较来说较大。另外FPGA底层结构可知,进位链是FPGA专有的资源,因此通过FPGA专有的资源设计,比用逻辑设计得到的串行进位加法速度要快很多。

使用圆括号处理多个加法器

控制设计结构的另一种方法是使用圆括号来定义逻辑分组。
例如 z<=A+B+C+D;
电路 结构如图:
电路结构1
用圆括号重构后的加法如下:
Z<=(A+B)+(C+D);
电路结构如图:
电路
上面两种方法在速度和面积上都有差别
第一种方法:面积小,但速度较慢。但是,如果信号D是关键路径,其他信号是非关键路径;或者,设计中关键路径与A,B,C,D无关,应当采用这种方法。
第二种:面积较大,但是速度较快。如果对A,B,C,D的时序都要求比较苛刻,应当采用这种方法。

IF语句和Case语句:速度与面积的关系。

if语句指定了一个优先级编码逻辑,而case语句生成的逻辑是==并行的,不具有优先级,==因此case语句速度较if语句速度较快。但是面积较if语句较高。另外if-else可以实现嵌套,但是不正确的使用嵌套会导致使用的设计需要更大的延时。在用IF语句实现对延时要求苛刻的路径时,应将最高优先级给最迟到达的关键信号(critical signal)。有时为了兼顾面积和速度,可以将IF和Case语句结合来用。

减少

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值