Verilog HDL数字系统设计及其应用第11章.ppt

Verilog HDL数字系统设计及其应用第11章.ppt

ID:56448235

大小:525.50 KB

页数:107页

时间:2020-06-18

Verilog HDL数字系统设计及其应用第11章.ppt_第1页
Verilog HDL数字系统设计及其应用第11章.ppt_第2页
Verilog HDL数字系统设计及其应用第11章.ppt_第3页
Verilog HDL数字系统设计及其应用第11章.ppt_第4页
Verilog HDL数字系统设计及其应用第11章.ppt_第5页
资源描述:

《Verilog HDL数字系统设计及其应用第11章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第11章 综合设计实例11.1有限状态机的概念及其设计实例11.2RISC中央处理单元(CPU)的顶层设计11.1有限状态机的概念及其设计实例11.1.1有限状态机的概念有限状态机是时序电路的通用模型,任何时序电路都可以表示为有限状态机。有限状态机通常可分为两类:Moore型与Mealy型。下一状态只由当前状态决定的有限状态机称为Moore型有限状态机;下一状态不但与当前状态有关,而且与当前输入值有关的有限状态机为Mealy型有限状态机。实际上,Moore型有限状态机可看作Mealy型的特例。有限状态

2、机从本质上讲是由寄存器与组合逻辑构成的时序电路,各个状态之间的转移总是在时钟的触发下进行的。通常可使用带有always语句的case语句建模,状态信息存储在寄存器中,case语句的多个分支包含每个状态的行为。下面通过一个例子进行说明。【例11-1】一个说明有限状态机描述的例子。//Moore型modulesta_machine1(x,clock,current_state,z);parameter[1:0]set0=0,hold0=1,set1=2;inputx,clock;output[1:0]cu

3、rrent_state;outputz;reg[1:0]current_state;regz;/*重新声明为寄存器型变量,以便于在always语句中赋值。缺省时,端口是连线型,不能在always语句中赋值*/reg[1:0]next_state;always@(current_state)begincase(current_state)set0:beginz=0;next_state=hold0;endhold0:beginz=0;if(x==0)next_state=hold0;elsenext_s

4、tate=set1;endset1:beginz=1;next_state=set0;endendcaseendalways@(posedgeclock)current_state=next_state;endmodule//Mealy型modulesta_machine2(x,clock,current_state,z);parameter[1:0]set0=0,hold0=1,set1=2;inputx,clock;output[1:0]current_state;outputz;reg[1:0]

5、current_state;regz;/*重新声明为寄存器型变量,以便于在always语句中赋值。缺省时,端口是连线型,不能在always语句中赋值*/reg[1:0]next_state;always@(xorcurrent_state)begincase(current_state)set0:if(x==1)beginz=0;next_state=hold0;endelsez=1;hold0:if(x==0)beginnext_state=hold0;z=0;endelsebeginnext_st

6、ate=set1;z=1;endset1:if(x==1)beginz=1;next_state=set0;endelsez=0;endcaseendalways@(posedgeclock)begincurrent_state=next_state;endendmodule11.1.2有限状态机的设计实例在熟悉有限状态机基本描述方法的基础上,下面给出三个有限状态机的设计实例:饮料销售机、交通灯控制器与闹钟系统控制器。1.饮料销售机这是一个饮料自动售货机的例子,每听饮料的售价为35美分,可以使用的硬币

7、有三种:5美分(nickel)、一角(dime)、25美分(quarter),同时售货机具有找零功能。【例11-2】饮料销售机的例子。//功能模块部分`definevend_a_drink{d,dispense,collect}={idle,2'b11}moduledrink_machine(nickel_in,dime_in,quarter_in,collect,nickel_out,dime_out,dispense,reset,clk);parameteridle=0,five=1,ten=2,

8、twenty_five=3,fifteen=4,thirty=5,twenty=6,owe_dime=7;inputnickel_in,dime_in,quarter_in,reset,clk;outputcollect,nickel_out,dime_out,dispense;regcollect,nickel_out,dime_out,dispense;reg[2:0]d,q;always@(nickel_inordime_inorquarter_i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。