TA的每日心情 | 开心 2019-11-19 15:19 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Verilog HDL语句 可综合经验
* a( `' M, R) c+ \3 R5 T3 H* q, y4 S0 X" v) u( _$ `
连续赋值语句的综合:从赋值语句右边提取出逻辑,用于驱动赋值语句左边的net
' a' A& S2 b: F6 h$ v+ W/ E, d! m! v* `! m6 o6 m7 ?1 ^# ?
过程赋值语句的综合:从赋值语句右边提取出的逻辑,用于驱动赋值语句左边的reg型变量。注意:initia语句仅用于仿真,不综合。只有在always中才能被综合。
# ~0 _ Q. T4 ~" J) [5 F3 C- Y6 P3 a/ t. C x& u: F* |
建议组合逻辑用阻塞语句,时序逻辑用非阻塞语句,任何延时控制(如#5)都被综合工具器忽略。一个模块中同一个变量不能既有阻塞赋值,又有非阻塞赋值。
# I- Y2 v3 q. H) t: l3 z4 Q
5 z5 v7 _0 t/ p8 ]always语句的综合
8 a9 Y! u% G9 v/ e3 q, O
) L0 ]8 ?- v9 T! M1对于组合逻辑,事件列表必须包括所有always语句中引用的变量,否则会造成综合的结果与设计功能不匹配。
8 _+ ]9 J' i5 c1 i2 |* L5 @# p6 }& U9 C' z
2临时变量可以不用在事件列表中列出。
3 ^8 v4 a& ]! h' a. z e5 D- t
8 Q7 v1 e7 l2 y4 S: Fif语句的综合
' C1 ?" `1 R% a% r3 \( k& [; u& f; X' A, |& @. U1 s9 M
特别要注意综合出锁存器。always中,某个变量没有在所有的条件分支中被赋值,就会综合出锁存器。
( Z8 ]/ D" R) D/ _/ d
( Z0 \* F, }" {# N) Hcase语句综合
% \# X/ C3 h. O! o! d
7 G/ C+ e" G6 j7 h和if语句一样,不完整的case分支语句也会导致锁存器的综合。 " x K/ D( \4 C( m' D$ A9 c0 b9 F5 @
' M# Z. |2 r( L) n
避免方法: 8 R! k6 f. l; ?/ d# U5 x' ~0 Z
7 e' O" {5 b7 G" s0 K7 }1)在case语句前,对要赋值的变量赋予初值 7 t7 j3 |8 V6 L7 |: d% o0 @2 |
4 |4 |2 d" A' z( V. Galways @ (state or a or b) begin
4 ?3 s- k. P3 }7 ?0 b6 X# e- e2 K$ O# N @6 k
q =0;
- L6 s9 l4 x2 G9 n- y+ T& o. s5 G! O# Y6 K3 m+ b
case(state)
! \6 d7 r4 R. r7 G9 a" b9 g' G" l! Q k1 h7 y& d
3‘b000: q = A & B;
, v; s& W5 R! F3 f, {( p* F; _* {- S' }7 J! r
……
, t7 ~8 Q% s8 n6 E. F: Q
0 j2 M5 l* t1 _' m0 W2)使用default分支语句 ( U6 j y, I0 Z& t6 q
$ b! _: x' ^( q/ p5 G+ i6 O
3)使用综合指令,具体用法在case关键字行的注释中插入”synthesis full_case“ : T* O: j! x% _0 @7 _
* n) N( b; R0 d. L6 U
并行CASE语句
8 V1 Y" f+ j; D; V) K* _) U2 [* |0 x/ y" D0 ?1 P6 W3 z3 j
通常情况下case语句和if语句一样会综合出代有优先权解码的硬件电路,从上大侠选项优先级逐渐降低。但如果设计者知道case语句中的所有项是互斥的,这时候就使用”parallel_case"综合指令。 / R1 R1 B* n0 R( ~
3 h1 e( s( ?( {( [' Oalways @(key) 7 G% M0 y. [1 e) Z2 e1 g; K5 ^
, [$ l' b+ O% b; k& K! n5 h* l( r, q9 z
case(key) //synthesis parallel_case 2 |5 z9 q& F3 j$ b
4 F* A; N' k/ Y" E& y% ~. d1 C* S5 ?4‘b0001: a = 0;
9 A ?$ h3 Q9 g- @/ @/ |' o) |
8 N7 Q+ r; M; n, U w) k7 `endcase . z8 o3 i& Z k$ s
|
|