- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于FPGA与SOPC设计教程——DE2实践几个练习题答案
实验七 有限状态机
实验原理:
本实验“移动速度可控的HELLO的自动循环显示”通过状态机的不同状态来确定显示的速度可控。实验中用到的有限状态机含有一组具有“记忆”功能的寄存器,这些寄存器的功能功能是记忆有限状态机的内部状态。此实验的调速是根据外部的控制来影响显示的速度,故此状态机为mealy型有限状态机。通过外部的按键key来控制不同的工作状态,再通过不同状态来判断现实的速度。
状态转移图
实验功能:
当按下键盘key1时,移动速度增加一倍;当按下key2时,移动速度减小一半。实验中通过两位的存储空间来定义两个按键。
实验源代码:
module Hello(clk,clr,key,HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,HEX6,HEX7);
input clk,clr;
input[1:0]key;
output[6:0] HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,HEX6,HEX7;
reg[6:0] HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,HEX6,HEX7;
reg[2:0] counter;
parameter H=7b0001001,E=7b0000110,L=7b1000111,O=7b1000000,k=7b1111111;
parameter s0=2b00,s1=2b01,
s2=2b10,s3=2b11;
always @(posedge clk or posedge clr)
if(clr)
counter=0;
else
begin
case(key)
s0:
counter=counter;
s1:
counter=(counter+1)%8;
s2:
counter=(counter+2)%8;
s3:
counter=(counter-1+8)%8;
default: counter=counter;
endcase
end
always@(posedge clk or posedge clr)
if(clr)
begin
HEX0=O;HEX1=L;HEX2=L;HEX3=E;HEX4=H;HEX5=k;HEX6=k;HEX7=k;
end
else
begin
case(counter)//
3b000: begin
HEX0=O;HEX1=L;HEX2=L;HEX3=E;HEX4=H;HEX5=k;HEX6=k;HEX7=k;end
3b001: begin
HEX0=k;HEX1=O;HEX2=L;HEX3=L;HEX4=E;HEX5=H;HEX6=k;HEX7=k;end
3b010:begin
HEX0=k;HEX1=k;HEX2=O;HEX3=L;HEX4=L;HEX5=E;HEX6=H;HEX7=k;end
3b011:begin
HEX0=k;HEX1=k;HEX2=k;HEX3=O;HEX4=L;HEX5=L;HEX6=E;HEX7=H;end
3b100:begin
HEX0=H;HEX1=k;HEX2=k;HEX3=k;HEX4=O;HEX5=L;HEX6=L;HEX7=E;end
3b101:begin
HEX0=E;HEX1=H;HEX2=k;HEX3=k;HEX4=k;HEX5=O;HEX6=L;HEX7=L;end
3b110:begin
HEX0=L;HEX1=E;HEX2=H;HEX3=k;HEX4=k;HEX5=k;HEX6=O;HEX7=L;end
3b111:begin
HEX0=L;HEX1=L;HEX2=E;HEX3=H;HEX4=k;HEX5=k;HEX6=k;HEX7=O;end
default: begin
HEX0=k;HEX1=k;HEX2=k;HEX3=k;HEX4=k;HEX5=k;HEX6=k;HEX7=k;end
endcase
end
endmodule
测试代码:
`timescale 1ns/1ns
module hellotest;
reg clk;
reg clr;
reg[1:0]key;
wi
文档评论(0)