RTL代码之面积与功耗
一、面积
在RTL编码中减少设计面积:
(1)估计设计使用资源的数量
(2)知道哪部分占用了较大面积。
1、资源:+、-、x、÷、<、> 都会产生比较大的面积。+:对应一个64位加法器。
触发器、加法器、乘法器的使用注意,触发器数量由功能决定,很难减少,由组合逻辑决定,对应的RTL代码是各种操作符。
2、多比特会成倍使用资源,在对信号操作前是否能只对需要的部分比特操作。
例如 if(A<32)可以换成if(A[5]=1'b1),A如果比32小,A[5]一定是0。用1bit的逻辑门代替了6bit的比较器。
例如:访问RAM,每隔32个地址写入一个值。
addr<=addr+32 改写为: addr[7:5]<=addr[7:5]+1; addr[4:0]<=addr[4:0]+0;
3、如果使用复杂的运算符,可以考虑使用资源共享编写RTL。
例如
if(a+b+c)y1;
if(a+b+d)y2;
改写为
sum<=a+b;
if(sum+c) y1;
if(sum+d) y2;
二、功耗
门控时钟:直接关闭整个时钟,效果更好。
增加使能控制:使得电路的信号不再翻转,而时钟还会翻转。
RTL的布线:布线过于集中产生热点