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

Verilog HDL---设计可综合的状态机的指导原则 

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    Verilog HDL---设计可综合的状态机的指导原则

    9 m! Z+ g2 A/ f8 k! j
    % |4 O" W0 s4 A( l8 W( [! n
    1.设计可综合的状态机的指导原则:
    (1)采用独热码状态机(即每个状态只有一个寄存器置位的状态机)。
    (2)建议采用case,casex或casez语句来建立状态机的模型,因为这样语句表达清晰,可以方便的从当前的状态分支转向下一个状态并设置输出。
    (3)不要忘记在写上case语句的最后一个分支default,并将状态变量设为'bx,这就告知综合器(case语句已经指定了所有的状态)。
    (4)一个always块中只有一个事件触发的状态机。
    (5)把异步触发电路转化成同步触发电路。
    2.综合的一般原则:
    (1)综合前一定要进行仿真。
    (2)每一次布线之后都要进行仿真。
    (3)不要用Verilog描述异步状态机,如果一定要设计异步状态机可以用电路图的输入方式在设计。
    (4)如果要为电平敏感的锁存器建模,使用连续赋值语句是最简单的方法。
    3.语言指导原则
    (1)always块
    1)每个always块只能有一个事件控制“@(event-expression)”,并且要紧跟在always关键字的后面。
    2)always块可以表示时序逻辑或者组合逻辑,也可以用always块即表示电平敏感的透明锁存器又同时表示组合逻辑,但不推荐使用这种描述方法。
    3)带有posedge或negedge关键字的事件表示沿触发的的时序逻辑。否则表示组合逻辑电路或电平敏感的锁存器,或者两种都表示。他们之间用“or”连接。
    4)每个表示时序always块只能由一个时钟跳变沿触发,置位或复位最好也由该时钟沿触发。
    5)每个在always块赋值的信号都必须定义为reg型或整型。
    6)always块中应该避免组合反馈回路。
    (2)赋值
    1)对一个寄存器型和整型变量给定位的赋值,只允许在一个always块内进行。
    2)把某一信号赋为'bx,综合器就把它解释成无关状态,因而综合器为其生成的硬件电路最简洁。
    4.状态机的置位与复位
    (1)状态机的异步置位与复位
    异步置位与复位是与时钟无关的。当异步置位与复位来到时它们就立即置位或复位。
    (2)状态机的同步置位与复位
    同步置位与复位是指只有在时钟的有效跳变沿时刻置位或复位。不要把SET和RESET信号列入事件控制表达式中。
    + t% Q) `& s, q* r. @7 e
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-4 16:32 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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