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

Verilog HDL语句 可综合经验 

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    Verilog HDL语句 可综合经验

    6 V: w) o+ r" F! Y* d( u; K8 s" j4 g1 s" ?$ E$ ?) X! X
    连续赋值语句的综合:从赋值语句右边提取出逻辑,用于驱动赋值语句左边的net 6 A& `  l3 P9 \. J& e0 l- B
    ) ^: _" C' [& u3 l
    过程赋值语句的综合:从赋值语句右边提取出的逻辑,用于驱动赋值语句左边的reg型变量。注意:initia语句仅用于仿真,不综合。只有在always中才能被综合。
    4 U' J/ x! v- U- F% z: Y. |4 L, a
    建议组合逻辑用阻塞语句,时序逻辑用非阻塞语句,任何延时控制(如#5)都被综合工具器忽略。一个模块中同一个变量不能既有阻塞赋值,又有非阻塞赋值。
    ) d  ?/ [: O0 |7 ^- R) ~/ g$ Q5 L
    always语句的综合 " {( h. I" h5 r. J! h

    ! O; E# Y5 d$ O  Q: y# b3 V3 m3 y1对于组合逻辑,事件列表必须包括所有always语句中引用的变量,否则会造成综合的结果与设计功能不匹配。 ( A5 B( S/ B, B' y. n: s7 J

    : F& c6 ?7 c- ~" ]2临时变量可以不用在事件列表中列出。
    + I. g  K. \- ~& `' m* ^5 T6 f9 `( v1 R: l/ n& Q
    if语句的综合 ' x! f! p8 k$ B- n, {$ U

      _( N) J9 k( z  u! d) w特别要注意综合出锁存器。always中,某个变量没有在所有的条件分支中被赋值,就会综合出锁存器。 ; n/ R  w/ v+ c. i6 R  c
    ; l& k6 `& A3 d7 ?" P
    case语句综合   V1 R% J4 a- v3 h! m+ v7 ^

    1 [1 I2 W4 k$ T! Z" z# R6 Z# z和if语句一样,不完整的case分支语句也会导致锁存器的综合。 % O* r9 j, }, V/ e

    3 k7 ?* r. k  b; P; ?7 g( j避免方法:
    ' H' B$ w# r& r$ G% ]1 [6 _9 L" g2 c8 [# w3 K& ^% x- {. n
    1)在case语句前,对要赋值的变量赋予初值 : e$ c& A8 M, w& H" F

      ^1 \1 {) o' halways @ (state or a or b) begin : O* F8 u# n# g/ b& o# d9 H/ A
    & K$ [9 H* a, v- a2 U# E
    q =0;
    7 i; u, U) x) G  U8 |6 H, U3 F/ r' S
    case(state)
    9 v1 T! t, s8 e- N$ g- [9 e# z( e. O: N+ |/ v2 ?5 h
    3‘b000: q = A & B; $ Q6 u9 z: f( ?$ A

    : W) X' w% c" R8 I# C……
    ; u$ @: z; _: M$ A! n* w# I
    . s, |# c9 l8 Q: H2)使用default分支语句 5 T- O$ b6 n2 i
    + Q; V" q* }8 O% I
    3)使用综合指令,具体用法在case关键字行的注释中插入”synthesis full_case“
    ' ^6 V& P: s  K% t7 M$ L7 D$ Z
    6 ~; B0 W5 P7 T6 C并行CASE语句
    . }8 V( g% k6 H3 o7 n$ a" K7 [8 G. ~- s
    通常情况下case语句和if语句一样会综合出代有优先权解码的硬件电路,从上大侠选项优先级逐渐降低。但如果设计者知道case语句中的所有项是互斥的,这时候就使用”parallel_case"综合指令。 , Z4 V8 t: c" N1 K1 g. o, \

    : O, B' ?+ [( _1 f4 a) @always @(key) : B% I; e; d8 i) P0 s; M3 f# N

    # t1 |* K& l2 D0 m' ~) Xcase(key) //synthesis parallel_case : }  g' @2 V0 a- u
    # \: p" S3 u0 V8 r
    4‘b0001: a = 0;
    / H8 R7 L4 c2 F) D- R
    6 m% P. P# n# X5 zendcase
    ' C+ R4 o& p' {

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-12 11:14 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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