哈工大 数电大作业 三模式状态机-

上传人:心**** 文档编号:147139351 上传时间:2020-10-07 格式:DOCX 页数:10 大小:177.51KB
返回 下载 相关 举报
哈工大 数电大作业 三模式状态机-_第1页
第1页 / 共10页
哈工大 数电大作业 三模式状态机-_第2页
第2页 / 共10页
哈工大 数电大作业 三模式状态机-_第3页
第3页 / 共10页
哈工大 数电大作业 三模式状态机-_第4页
第4页 / 共10页
哈工大 数电大作业 三模式状态机-_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《哈工大 数电大作业 三模式状态机-》由会员分享,可在线阅读,更多相关《哈工大 数电大作业 三模式状态机-(10页珍藏版)》请在金锄头文库上搜索。

1、Harbin Institute of Technology三模式逻辑控制电路课程名称: 数字电子技术基础 院 系: 电气学院 班 级: 姓 名: 学 号: 哈尔滨工业大学1、设计要求利用Verilog HDL设计一个逻辑控制电路,用于对某备进行模式切换控制,设备模式共三种,控制方式为: a)直通模式:高电平为直通有效,接地为直通无效; b)跳频模式:接地为跳频模式有效,高电平跳频无效; c)调谐模式:接地为调谐模式有效,高电平调谐无效。设备的同一时刻只有且必须有一个模式有效,其他两个无效。为防止同时个模式有效,模式切换之间应有较小的延时,利用按键作为三种模式切换输入(按键最好有消除抖动的措施

2、)2 设计内容2.1设计方案设计一个三状态的状态机,分别对应a、b、c三种模式,change作为模式切换变量,din作为输出控制变量。考虑按键的抖动发生在change变化时,如果不采用按键消抖措施,change键按动时,由于发生电平跳动,输出状态可能会多次变化。为了解决这个问题,可以设计一个采集时钟,用来检测change的变化,只要时钟的频率设计的合适,就能在每次change变化时,只使得状态机只变化一次。2.2状态转换图图1 状态转换图2.3所使用的软件Xilinx ISE 14.42.4源程序module three(clk,din,op,change);input clk,din,cha

3、nge;output op;reg1:0 current_state,next_state;reg op;parameter S0=2b00,S1=2b01,S2=2b10;always(posedge clk) begin current_state=next_state; endalways(current_state or change or din)begincase(current_state)S0:begin if(change) begin next_state=S1; end else begin next_state=S0; endbeginif(din)op=1;else

4、op=0;end endS1:begin if(change) begin next_state=S2; end else begin next_state=S1; end beginif(din)op=0;else op=1; endendS2:begin if(change) begin next_state=S0; end else begin next_state=S2; endbeginif(din)op=0;else op=1; endenddefault:beginop=0;next_state=S0;endendcaseend endmodule2.5仿真电路图RTL View

5、er仿真电路如图2所示:图2 RTL Viewer仿真电路图Technology Map Viewer仿真电路如图3所示:图4 Technology Map Viewer仿真电路图2.6Test Benches程序module threetest;/ Inputsreg clk;reg din;reg change;/ Outputswire op;/ Instantiate the Unit Under Test (UUT)three uut (.clk(clk), .din(din), .op(op), .change(change); initial begin #1 clk=0;#1

6、din=0; #10 din=0;change=0;#10 din=1;#5change=0;#10 din=0;#5change=0;#10 din=1;#5change=0;#10 din=0;#5change=1;#5change=0;#10 din=0;#5change=0;#10 din=1;#5change=0;#10 din=0;#5change=0;#10 din=1;#5change=0;#10 din=0;#5change=1;#5change=0;#10din=0;#5change=0;#10 din=1;#5change=0;#10din=0;#5change=0;#1

7、0 din=1;#5change=0;#10 din=0;#5change=1;#5change=0;#10 din=1;#5change=1;#5change=0;#10 din=0;#5change=1;#5change=0;#10 din=1;#5change=1;#5change=0;#10 din=0;#5change=1;#5change=0;#10 din=0;#5change=1;#5change=0;#10 din=1;#5change=1;#5change=0;#10 din=1;#4.5change=1;#0.5change=0;#0.5change=1; #0.5cha

8、nge=0;#0.5change=1; #0.5change=0;#0.5change=1; #0.5change=0;#0.5change=1; #0.5change=0;#0.5change=1; #0.5change=0;#0.5change=1; $display(Running testbench); end always begin #5 clk=clk; end endmodule2.7仿真波形图图4 仿真波形图图5 仿真波形消抖示例开关状态为current_ state。从上面两个波形图可以看出,当时钟上升沿时,如果检测到change为1,则状态机发生转换,否则状态机维持原状态。输出op=1时为有效,op=0为无效。在370ns左右发生change连续跳变,但由于采用了采集时钟,状态只发生一次变化。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 高考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号