- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深入学习Verilog
专题一:状态机
有限状态机设计的基本步骤:
逻辑抽象,得出状态转换图:把一个实际逻辑关系表示为时序逻辑函数。可以用状态转换表来描述,也可以用状态转化图来描述,这就需要:分析给定的逻辑问题,确定输入变量、输出变量以及电路的状态数。通常是原因(条件)作为输入变量,取结果作为输出变量;定义输入、输出逻辑状态的含义,并将电路状态顺序编号;按照列出的电路状态转换表画出状态转换图.(2)状态化简:如果在状态转换图中出现这样两个状态:它们相同的输入下转换到同一个状态去,并获得相同的输出,则称它们为等价状态。显然等价状态时重复的,可以合并为一个。电路的状态越少,存储电路也就越简单。化简的目的就在于将等价的状态尽可能地合并,以得到最简的状态转换图。(3)状态分配:状态分配又称状态编码。通常有很多编码方法,编码方案选择得当,设计的电路可以简单;反之,选得不好,则电路就会复杂许多。在实际设计中,须综合考虑电路复杂度与电路性能这两个因素。触发器资源丰富的FPGA或ASIC设计中,采用独热码既可以使电路性能得到保证又可充分利用触发器数量多的优势,也可以采取输出编码的状态指定来简化电路结构,并提高状态机的运行速度。(4)选定触发器的类型并求出状态方程、驱动方程和输出方程。(5)按照方程得出逻辑图。
设计可综合的状态机的指导原则
建议采用case,casex或casez语句建立状态机模型,因为这些语句表达清晰明了,可以方便地从当前状态分支转到下一状态并设置输出。不要忘记在case语句的最后一个分支default,并将其设置为’bx,就等于告知综合器:case语句已经指定了所有状态。这样综合器就可以删除不需要的译码电路,使生成的电路简洁,并与设计要求一致。
状态机应有一个异步或同步复位端,以便通电时将硬件电路复位到有效状态,也可以在操作中将硬件电路复位(大多数FPGA结构都允许使用异步复位端)。
目前大多数综合器往往不支持在一个always块中由多个事件触发的状态机(级隐含状态机),为了综合出有效电路,用Verilog hdl描述的状态机应明确地由唯一时钟触发。
不要使用综合工具来设计异步状态机。
在Verilog HDL中,状态必须明确赋值。通常使用参数或者宏定义句加上赋值语句来实现。
综合的一般原则
综合之前一定要进行仿真,这是因为仿真会暴露逻辑错误,所以建议大家这样做。如果不仿真,没发现的逻辑错误会进入综合器,使综合结果产生同样的逻辑错误。
每一次布局布线之后都要进行仿真,在器件编程或者流片之前要做最后的仿真。
用Verilog HDL描述的异步状态机是不能综合的,因此应避免用综合器来设计;如果一定要设计异步状态机,可用电路图输入的方法来设计。
如果要为电平敏感的锁存器建模,使用连续赋值语句是最简单的方法。
语言指导原则
Always块
每一个Always块后面只能有一个事件控制“@(event-expression)”,而且要紧跟在Always关键字后面。
Always块可以表示时序逻辑或者组合逻辑,也可以用Always块即表示电平敏感的透明锁存器又同时表示组合逻辑,但是不推荐使用这种描述方法,因为这容易产生错误和多余的电平敏感的透明锁存器。
带有posedge或negedge关键字的事件表达式表示沿触发的时序逻辑,没有posedge或negedge关键字的表示组合逻辑或电平敏感的锁存器,或者两种都表示。在表示时序和组合逻辑的事件控制表达式中,如有多个电平或多个沿,其间必须用关键字“or”连接。
每个表示时序Always块只能由一个时钟跳变沿触发,置位或复位最好也由该时钟跳变沿触发。
每个在Always块中赋值的信号都必须定义成reg或整型。
Always块中应该避免组合反馈电路。
赋值
对一个寄存器型(reg)和整型(integer)变量给定位的赋值,只允许在一个Always块内进行,如另一Always块中也对其赋值,这是非法的。
把某一信号赋值为’bx,综合器就把它解释为无关状态,因而综合器为其生成的硬件电路最简洁。
状态机的置位与复位
状态机的异步置位与复位
异步置位与复位与时钟无关。当一部置位与复位到来时它们立即分别置触发器的输出为1或0,不需要等到时钟沿到来才置位或复位。把他们列入Always块的事件控制括号内就能触发Always块的执行,因此,当它们到来时就能立即执行一次指定操作。所以当触发条件反复出现时,就可以反复执行指定操作。
状态机的同步置位与复位
同步置位与复位是指只有在时钟的有效跳变沿时刻置位或复位,信号才能使触发器置位或复位。因此不要把set和reset信号名列入always块的时间控制表达式,因为它们有变化时不应触发Always块的执行。相反,Always块的执行应只由时钟有效跳变沿触发,是否置位或复位在Always块中首先
您可能关注的文档
- 2007年新浦区教育信息化投入经费一览表.doc
- 江宁中等专业学校首届教代会代表.doc
- 06细粒棘球绦虫.ppt
- 2009年湖南长沙市中考数学试题及答案(答案完整版).doc
- 水平测试复习-直线与圆.doc
- 引洮4#隧洞出口混凝土浇筑方案.doc
- 1.5题目.doc
- 英语定语从句高一上.ppt
- SQLServer2005入门2.ppt
- 顾问行销的六大环节.ppt
- 2025湖南高创科惟新材料股份有限公司招聘26人笔试历年参考题库附带答案详解.docx
- 2025夏季中国人保财险蚌埠市分公司招聘(安徽)笔试历年参考题库附带答案详解.docx
- 2025陕西西安曲江大雁塔景区管理服务有限公司招聘11人笔试历年参考题库附带答案详解.docx
- 2025中国人寿集团校园招聘6560人笔试历年参考题库附带答案详解.docx
- 2025湖南岳阳市君山区工业园投资开发有限公司招聘3人笔试历年参考题库附带答案详解.docx
- 2025宁波慈溪工贸集团有限公司招聘25人笔试历年参考题库附带答案详解.docx
- 2025浙江金华海纳人才开发有限公司招聘派遣制工作人员笔试历年参考题库附带答案详解.docx
- 2025中煤能源山东有限公司第二次招聘1人笔试历年参考题库附带答案详解.docx
- 2025云南滇能楚雄水电开发有限公司招聘劳务派遣人员4人笔试历年参考题库附带答案详解.docx
- 2025江西南昌万寿宫文化街区运营管理有限公司招聘7人笔试历年参考题库附带答案详解.docx
文档评论(0)