- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Verilog有限状态机设计 主要内容 1 Verilog HDL有限状态机的一般形式 2 Moore型有限状态机设计 3 Mealy型有限状态机设计 4 System Verilog的枚举类型应用 5 状态机图形编辑设计方法 6 状态编码 7 非法状态处理 8 硬件数字技术排除毛刺 1.Verilog HDL有限状态机的一般形式 有限状态机是由寄存器组和组合逻辑构成的硬件时序电路; 其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态;究竟转向哪一状态不但取决于各个输入值,还取决于当前状态。 状态机可用于产生在时钟跳变沿时刻开关的复杂的控制逻辑,是数字逻辑的控制核心。 1.1 为什么要使用状态机 高效的顺序控制模型:状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。 容易利用现成的EDA优化工具。 性能稳定:状态机容易构成性能良好的同步时序逻辑模块。 设计实现效率高:状态机的HDL表述丰富多样、程序层次分明,易读易懂。 高速性能:在高速运算和控制方面,状态机更有其巨大的优势。 高可靠性。 1.2 有限状态机的结构 分类: 从状态机的信号输出方式上:Mealy型与 Moore型。 米利机的下一状态和输出取决于当前状态和当前输入; 摩尔机的下一状态取决于当前状态和当前输入,但其输出仅取决于当前状态。 状态机的描述结构上:单过程状态机与多过程状态机。 从状态表达方式:符号化状态机和确定状态编码的状态机。 状态编码方式上分:顺序编码状态机、一位热码编码状态机或其它编码状态机 状态机的结构 包括4个部分:说明部分、主控时序过程、主控组合过程、辅助过程 说明部分 状态转换变量的定义和所有可能状态的说明,必要时还要确定每一状态的编码形式。 4. 辅助进程 配合状态机工作的组合过程或时序过程。 rst是低电平有效,clk是上升沿有效。 观察输入信号0到3的变化,此例是Moore还是Mealy型? (2)关于参数定义表述 用parameter进行参数定义虽然十分必要,一旦打来状态机萃取开关,状态定义可以十分随意。定义什么值都可以。 Moore型有限状态机的设计 Mealy状态机:输出是当前状态和所有输入信号的函数。不依赖时钟同步。 Moore状态机:输出仅为当前状态的函数,所以在输入发生变化时还要等待时钟的到来,所以比机要多等待一个时钟周期。 项目一:ADC采样控制设计及多过程结构型状态机 项目二 简单自动售货机设计 自动售货机在收到15美分之后就会给出一件商品,这台机器具有能够接收5美分和1角硬币的单个投币口,每次投入一枚硬币,其中机械传感器用来指示插入投币口是5美分还是1角,控制器的输出导致一件商品交到顾客手中 两个假设简化设计: 不找零 在每次使用前,机器都会复位 例:简单的自动售货机 3、状态最简化: 状态S4~S8具有等价,可合并成一个状态 每个状态表示接受到钱的数量 例:简单的自动售货机 4、进行状态分配 4个状态,采用2位状态编码: 0¢(00)、 5¢(01)、 10¢(10)、 15¢(11) 简单的自动售货机(verilog) module autosell (clk, reset, D, N,open); input clk, reset, D,N; output open; parameter cell0= 2b00,cell5 = 2b01, cell10= 2b10, cell15 = 2b11; reg [2:1] state; reg [2:1] next_state; always @(posedge clk) if (reset) state = cell0; else state = next_state; always @(N or D or state) case (state) cell0: begin if (N) next_state = cell5; else if (D) next_state = cell10; else next_state = cell0; end 项目三:较复杂自动售货机设计 设计目标 (1)用四个发光二极管分别模拟售出价值为5角、1元、1.5元和2元的小商品,购买者可以通过开关选择任意一种标价中的小商品。 (2)灯亮时表示该小商品售出。 (3)用开关分别模拟5角、1元硬币和5元纸币投入,可以用几只发光二极管(或数码管)分别代表找回剩余的硬币。 (4)每次只能售出一种小商品,当所投硬币达到或超过购买者所选面值时,售
文档评论(0)