2021-06-30

1.实验目的:
使用modelsim进行Modelsim工程仿真流程

2.实验内容:
参照教程中的代码,然后用quartus ii和modlsim并进行Modelsim工程仿真流程,再验证波形图是否正确

3.实验原理:书写和运行代码,完成联合仿真操作

module multiply(Clock, Resetn, LA, LB, s, DataA, DataB,P, Done);
parameter n = 8;
input Clock, Resetn, LA, LB, s;
input [n-1:0] DataA, DataB;
output [n+n-1:0] P;
output reg Done;
wire z;
reg [n+n-1:0] DataP;
wire [n+n-1:0] A, Sum;
reg [1:0] y, Y;
wire [n-1:0] B;
reg EA,EB, EP, Psel;
integer k;
// control circuit

parameter S1 =2'b00, S2=2'b01, S3=2'b10;

always @(s, y, z)
begin: State_table
case (y)
S1: if(s == 0)Y = S1;
else Y = S2;
S2: if(z == 0)Y = S2;
else Y = S3;
S3: if(s == 1)Y = S3;
else Y = S1;
default: Y =2'bxx;
endcase
end

always @(posedge Clock, negedge Resetn)
begin: State_flipflops
if(Resetn == 0)
y <= S1;
else
y <= Y;
end

always @(s,y,B[0])
begin: FSM_outputs

EA = 0;EB = 0;EP = 0;Done = 0;Psel = 0;
case (y)
S1: EP = 1;
S2: begin
EA = 1;EB = 1; Psel = 1;
if(B[0])EP = 1;
else EP = 0;
end
S3: Done = 1;
endcase
end

//shiftrne ShiftB(DataB,LB,EB,1'b0,Clock,B);
//defparam ShiftB.n=8;
//shiftine ShiftA({{n{1'b0}}, DataA},LA,EA,1'b0,Clock,A);
//defparam ShiftA.n =16;

assign z=(B == 0);
assign Sum=A+P;

always @(Psel,Sum)
for (k = 0; k <n+n; k= k+1)
DataP[k]=Psel?Sum[k]:1'b0;

//regne RegP(DataP,Clock,Resetn,EP,P);
//defparam RegP.n= 16;

endmodule
4实验工具:
modlsim软件。

5.实验截图:

先把代码复制到文本文档里保存到桌面或者文件夹里面,名字改成与代码中相同的名字,再把文件扩展名改成v,再点开modelsim进行实验

(1)点开compile,再选择装有的v文件,目的是检查代码有没有错

(2)在选择simulation

6.实验视频:
请下载抖音打开此网址:https://v.douyin.com/eVwbcLg/ 

版权声明:本文为CSDN博主「c99LYF」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://mp.csdn.net/mp_blog/creation/editor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值