TA的每日心情 | 开心 2019-11-19 15:19 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
verilog模块优化 6 E$ w! s6 Q# g1 ~
; v/ Z. G8 ] F4 I8 J- l0 a1、资源共享: ; _ {+ k& V7 w5 Z
当进程涉及到共用ALU时,要考虑资源分配问题。可以共享的操作符主要有:关系操作符、加减乘除操作符。通常乘和加不共用ALU,乘除通常在其内部共用。 / a0 F7 Q+ N# t- ]& _8 {
2、共用表达式:
$ t% N4 h. v8 L( |" s7 T3 ^0 G如:C=A+B;
! Z) g4 d) n5 @! y# u nD=G+(A+B);
8 q( J- \; ?* d+ S) v1 N3 t* W两者虽然有共用的A+B,但是有些综合工具不能识别.可以将第二句改为:D=G+C;这样只需两个加法器.
$ T6 j( d% c) U* l% i8 I8 P3、转移代码:
& l6 l; l; q9 Z6 Q# ^9 P, T$ v, f如循环语句中没有发生变化的语句移出循环.
, C- w' n( ]' ?( U4、避免latch:
; A) H& B7 _5 k# w- ]9 b4 x3 `, q两种方法:1、在每一个IF分支中对变量赋值。2、在每一个IF语句中都对变量赋初值。
' C; K" r7 L) E! t* J& r% j. a5:模块:
1 }, ]' L- x1 R+ d+ G$ x* I4 |5 d" _$ G综合生成的存储器如ROM或RAM不是一种好方法,只是成堆的寄存器,很费资源。最好用库自带的存储器模块- `( a: ]8 |0 X8 p' G
|
|