20计本一班数字逻辑基础实验

一、modelsim工程仿真流程
代码:
module fulladd(sum,c_out,a,b,c_in);
output sum,c_out;
input a,b,c_in;
wire s1,c1,c2;
xor (s1,a,b);
and (c1,a,b);
xor (sum,s1,c_in);
and (c2,s1,c_in);
or (c_out,c2,c1);
endmodule

庆幸 13:19:36
module test;

wire sum, c_out;
reg a,b,c_in;
fulladd fadd(sun,c_out,a,b,c_in) ;

/*

initial
begin

#15 force fadd.sum=a&b&c_in;

#20 release fadd.sun;

#10 $stop;

end

*/

initial

begin

a=0;b=0;c_in=0;
#10 a=0;b=0;c_in=1;
#10 a=0;b=1;c_in=0;
#10 a=0;b=1;c_in=1;
#10 a=1;b=0;c_in=0;
#10 a=1;b=0;c_in=1;
#10 a=1;b=1;c_in=0;
#10 a=1;b=1;c_in=1;
#10 $stop;

end

endmodule

1.添加现有代码的文件或者创建文件然后打入代码。
————————————————
在这里插入图片描述
2.进行编译,看是否有错误
在这里插入图片描述3.点击simulate。

4.点击work,然后选择好我们的测试文件,然后点击ok在这里插入图片描述5.点击上图ok后,就会生成sim界面如下图。在这里插入图片描述6.选中测试文件,右键点击选择add wave。

在这里插入图片描述
7.再点击run all,就会出现wave图,如下在这里插入图片描述、主从D触发器的门级建模
代码:
module tb_23;
reg d;
reg clk;
wire q, qbar;
initial clk=0;
always #5 clk=~clk;
initial
begin
d=0 ;
#7 d=1;
#4 d=0;
#9 d=1;
#11 d=0;
#20 $stop;
end
MSDFF ms_dff(q,qbar,d,clk);
endmodule

module MSDFF(Q,Qbar,D,C);
output Q,Qbar;
input D , C;

not

not1 ( NotD ,D) ,
not2 ( Notc , C) ,
not3 ( NotY , Y);
nand

nand1 ( D1 , D ,C ) ,
nand2 ( D2 , c , NotD) ,
nand3 ( y , D1 , Ybar ) ,
nand4 ( ybar , Y , D2) ,
nand5 ( y1 , r , NotC) ,
nand6 ( Y2 , NotY , NotC) ,
nana7 (Q, Qbar, Y1) ,
nand8 (Qbar , Y2 , Q) ;
endmodule

1.本次实验与上面第一个实验步骤相仿,大家可以参考上面的过程。
最终的wave图如下:
————————————————
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值