找回密码
 注册
关于网站域名变更的通知
查看: 210|回复: 1
打印 上一主题 下一主题

Verilog HDL语句 可综合经验 

[复制链接]
  • TA的每日心情
    开心
    2019-11-19 15:19
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2019-6-4 09:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    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

    该用户从未签到

    2#
    发表于 2019-6-4 17:35 | 只看该作者
    还没有涉及到这种问题,不过当做经验以后没准用到
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-12 08:17 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表