【数电实验】从代码到电路:比较四段代码的差异和共同点

 要求:

(1)分别新建工程文件(工程名:_学号_chap2_4_X),新建 verilog HDL 文件,将代码输入;

(2)选择菜单 Processing--Start Compilation,分析并综合电路,若有错误请自行更正,打印 代码和编译报告(Flow Summary);

(3)选择菜单 Tools—Netlist Viewers—RTL Viewer,查看逻辑电路图并截图打印;

(4)将文件 Waveform.vwf(群文件中下载)拷贝到新建的工程文件夹中(也可自行建立该文 件),打开该文件,并选择菜单 Simulation—Run Functional Simulation,分析仿真结果;

              第一个文件是一个顶层文件下面包含四个文件,分别对应包含的四段代码。

module dingcengwenjian(A,B,SEL,L,OUT);//这里的文件名是一个顶层文件,需要改成你自己的工程文件名
  input A,B,SEL;
  output [2:0] L;
  output OUT;
  mux2to1_ga	(A,B,SEL,OUT);
  _2to1muxtri(A,B,SEL,L[0]);
  mux2x1_df(A,B,SEL,L[1]);
  mux2to1_bh(A,B,SEL,L[2]);
endmodule 
module mux2to1_ga(A,B,SEL,OUT);//代码1
  input A,B,SEL;
  output OUT;
  wire selnot,A1,B1;
  not U1(selnot,SEL);
  and U2(A1,A,selnot);
  and U3(B1,B,SEL);
  or U4(OUT,A1,B1);
endmodule 
module _2to1muxtri(A,B,SEL,L);//代码2
  input A,B,SEL;
  output L;
  tri L; //三态信号:高阻态,低电平,高电平
  bufif0(L,A,SEL); //低电平使能 将A的值传入L
  bufif1(L,B,SEL); //高电平使能 将B的值传入L
endmodule 
module mux2x1_df(A,B,SEL,L);//代码三
  input A,B,SEL;
  output L;
  assign L=SEL?B:A;//sel为1 将B的值赋给L,反之,将A的值赋给L
endmodule 
module mux2to1_bh(A,B,SEL,L);//代码4 一个简单的if else语句
  input A,B,SEL;
  output L;
  reg L;
always@(SEL or A or B)
  if (SEL==1)
     L=B;
  else
     L=A;
endmodule 

仿真波形图: 

RTL图: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值