1.实验目的:
使用Quartur ii软件和modelsim并进行Modelsim工程仿真流程,掌握有限状态机的写法,理解三段式与两段式的写法和区别
2.实验内容:
参照教程中的代码,然后用quartus ii和modlsim并进行Modelsim工程仿真流程,再验证波形图是否正确
3.实验原理:书写和运行代码,完成联合仿真操作
module s7 (x,z,clk,reset) ;
input x,clk,reset;
output z;
reg z;
reg [2: 0] state,nstate;
parameter s0='d0,s1='d1,s2='d2,s3='d3,s4='d4,s5='d5;
always @ (posedge clk or posedge reset)
begin
if (reset)
state <=s0;
else
state <=nstate;
end
always@ (state or x)
begin
casex (state)
s0:begin
if (x==1)
nstate=s1;
else
nstate=s0;
end
s1:begin
if (x==0)
nstate=s2;
else
nstate=s1;
end
s2:begin
if (x==0)
nstate=s3;
else
nstate=s1;
end
s3:begin
if (x==0)
nstate=s0;
else
nstate=s4;
end
s4:begin
if (x==0)
nstate=s5;
else
nstate=s1;
end
s5:begin
if (x==0)
nstate=s0;
else
nstate=s1;
end
default:nstate=s0;
endcase
end
always@ (posedge clk)
begin
casex (nstate)
s0:z <=0;
s1:z <=0;
s2:z <=0;
s3:z <=0;
s4:z <=0;
s5:z <=1;
default:z <=0;
endcase
end
endmodule
module tbs7;
reg x,clk,reset;
wire z;
integer seed=9;
initial clk=0;
always #5 clk=~clk;
initial
begin
reset=0;
#15 reset=1;
#15 reset=0;
end
always
#10 x={$random(seed)}%2;
s7 mys7(x,z,clk,reset);
endmodule
4实验工具:
pc机和Quartur ii软件和modlsim软件。
5.实验截图:
设计实验与前面的步骤相同,不同的是测试模块
(1)同样的先建一个文件夹,在文件夹里面再建一个文本文档,文件扩展名改成v,名字都改成与代码中相同的s7 ,再把代码复制进去
(2)前面选择新建的文件夹和改工程名之后,就不用再管其他的,之家点击ok到这一步,选择modelsim
(3)再点击new新建一个Verilog文件夹
(4)然后把设计代码复制进来,记得保存,再运行看看代码有没有错误
(5)点击processing-start-倒数第三个,再点击文件选择这个simulation-modelsim,然后点击all files,找到里面的vt文件
(6)点击vt文件,删除里面的全部代码,再把测试代码复制进来保存一下,再把工程名改成与测试代码一致的名字,就可以开始运行
(7)改频率得出波形图
6.实验视频:
请下载抖音打开此网址:https://v.douyin.com/e4UsT6n/ https://v.douyin.com/e4wQ8s9/
版权声明:本文为CSDN博主「c99LYF」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://mp.csdn.net/mp_blog/creation/editor