一、实验要求:用Modlsim进行设计仿真实验
二、实验内容
1、实验书本及实验题目:上课教材数字逻辑基础与Verilog设计 P191 图6.35
2、实验主要内容:设计一个简单的时序电路。
三、相关图
电路图
状态表图
系统框图
状态图
四、实验工具
pc机、moelsim软件等
五、实验视频
https://www.bilibili.com/video/BV13V411W7Fk?share_source=copy_web
六、实验仿真结果图
未用测试代码仿真图
用测试代码仿真图
七、实验代码
1、仿真代码
module control (Clock, Resetn, w, R1in, R1out, R2in, R2out, R3in,R3out, Done);
input Clock, Resetn, w;
output R1in, R1out, R2in, R2out, R3in, R3out, Done;
reg [2:1]y, Y;
parameter [2:1]A=2’b00,B=2’b01,C=2’b10,D=2’b11;
// Define the next state combinational circuit
always @(w, y)
case (y)
A:if(w) y=B;
else Y=A;
B: Y=C;
C: y=D;
D: Y=A;
endcase
//Define the sequential block
always @(negedge Resetn, posedge Clock)
if (Resetn0) y<=A;
else y<=Y;
//Define outputs
assign R2out=(yB);
assign R3in=(yB);
assign R1out=(yC);
assign R2in=(yC);
assign R3out=(yD);
assign R1in=(yD);
assign Done=(yD);
endmodule
测试代码
`timescale 1 ps/ 1 ps
module tb_control();
reg Clock;
reg Resetn;
reg w;
// wires
wire Done;
wire R1in;
wire R1out;
wire R2in;
wire R2out;
wire R3in;
wire R3out;
control i1 (
.Clock(Clock),
.Done(Done),
.R1in(R1in),
.R1out(R1out),
.R2in(R2in),
.R2out(R2out),
.R3in(R3in),
.R3out(R3out),
.Resetn(Resetn),
.w(w)
);
initial
begin
Clock=1’b0;
Resetn=1’b0;
w=1’b0;
#10 Resetn=1’b1;w=1’b1;
#20 Resetn=1’b0;w=1’b0;
#40 Resetn=1’b1;w=1’b1;
#80 Resetn=1’b0;w=1’b0;
#30 $stop;
end
always #5 Clock=~Clock;
endmodule
八、软件下载地址
Modelsim 10.x软件下载链接:https://pan.baidu.com/s/1PoKk4W_SG7Zqp9KNuwLdTQ提取码:m7ja