注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
捍卫真理的个人空间 https://home.eeworld.com.cn/space-uid-370731.html [收藏] [复制] [分享] [RSS]
日志

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

已有 1460 次阅读2011-11-10 14:20 |个人分类:FPGA

1.设计可综合的状态机的指导原则:

1)采用独热码状态机(即每个状态只有一个寄存器置位的状态机)。

2)建议采用case,casexcasez语句来建立状态机的模型,因为这样语句表达清晰,可以方便的从当前的状态分支转向下一个状态并设置输出。

3)不要忘记在写上case语句的最后一个分支default,并将状态变量设为'bx,这就告知综合器(case语句已经指定了所有的状态)。

4)一个always块中只有一个事件触发的状态机。

5)把异步触发电路转化成同步触发电路。

2.综合的一般原则:

1)综合前一定要进行仿真。

2)每一次布线之后都要进行仿真。

3)不要用Verilog描述异步状态机,如果一定要设计异步状态机可以用电路图的输入方式在设计。

4)如果要为电平敏感的锁存器建模,使用连续赋值语句是最简单的方法。

3.语言指导原则

1always

1)每个always块只能有一个事件控制“@event-expression)”,并且要紧跟在always关键字的后面。

2always块可以表示时序逻辑或者组合逻辑,也可以用always块即表示电平敏感的透明锁存器又同时表示组合逻辑,但不推荐使用这种描述方法。

3)带有posedgenegedge关键字的事件表示沿触发的的时序逻辑。否则表示组合逻辑电路或电平敏感的锁存器,或者两种都表示。他们之间用“or”连接。

4)每个表示时序always块只能由一个时钟跳变沿触发,置位或复位最好也由该时钟沿触发。

5)每个在always块赋值的信号都必须定义为reg型或整型。

6always块中应该避免组合反馈回路。

2)赋值

1)对一个寄存器型和整型变量给定位的赋值,只允许在一个always块内进行。

2)把某一信号赋为'bx,综合器就把它解释成无关状态,因而综合器为其生成的硬件电路最简洁。

4.状态机的置位与复位

1)状态机的异步置位与复位

异步置位与复位是与时钟无关的。当异步置位与复位来到时它们就立即置位或复位。

2)状态机的同步置位与复位

同步置位与复位是指只有在时钟的有效跳变沿时刻置位或复位。不要把SETRESET信号列入事件控制表达式中。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章