Verilog实验报告

实验一:多路选择器

  1. 设计要求:4选1
  2. 代码
module selector(a,b,c,d,sl0,sl1,out);

parameter WL = 8;



input [WL-1:0] a,b,c,d;

input sl0,sl1;

output [WL-1:0] out;



reg [WL-1:0] out;

always @ (a or b or c or d or sl0 or sl1) begin

       case({sl0,sl1})

 2'b00 : out = a;

 2'b01 : out = b;

 2'b10 : out = c;

 2'b11 : out = d;

       endcase

end

endmodule

4X4的交叉开关消耗资源成倍的增长了。

  1. 波形仿真

    实验二:交叉开关

  2. 设计要求:编写一个4X4路交叉开关
  3. 代码
    module switch(in0,in1,in2,in3,sl0,sl1,sl2,sl3,out0,out1,out2,out3);
    
    parameter WL = 8;
    
    
    
    input [WL-1:0] in0,in1,in2,in3;
    
    input [1:0] sl0,sl1,sl2,sl3;
    
    output [WL-1:0] out0,out1,out2,out3;
    
    
    
    reg [WL-1:0] out0,out1,out2,out3;
    
    always@(in0 or in1 or in2 or in3 or sl0) begin
    
    case(sl0)
    
    2'b00:out0 = in0;
    
    2'b01:out0 = in1;
    
    2'b10:out0 = in2;
    
    2'b11:out0 = in3;
    
    endcase
    
    end
    
    
    
    always@(in0 or in1 or in2 or in3 or sl1) begin
    
    case(sl1)
    
    2'b00:out1 = in0;
    
    2'b01:out1 = in1;
    
    2'b10:out1 = in2;
    
    2'b11:out1 = in3;
    
    endcase
    
    end
    
    
    
    always@(in0 or in1 or in2 or in3 or sl2) begin
    
    case(sl2)
    
    2'b00:out2 = in0;
    
    2'b01:out2 = in1;
    
    2'b10:out2 = in2;
    
    2'b11:out2 = in3;
    
    endcase
    
    end
    
    
    
    always@(in0 or in1 or in2 or in3 or sl3) begin
    
    case(sl3)
    
    2'b00:out3 = in0;
    
    2'b01:out3 = in1;
    
    2'b10:out3 = in2;
    
    2'b11:out3 = in3;
    
    endcase
    
    end
    
    endmodule

  4. RTL View

 5.结论:4X4的交叉开关消耗资源成倍的增长了。

实验三:优先编码器

  1. 设计要求:编写一个8输入的优先编码器
  2. 代码:
module TEST_3(in,out);

parameter WL=8;

input [WL-1:0] in;

output [2:0] out;



reg out;

always @(in) begin

if(in[0]) out = 3'b001;

else if(in[1]) out = 3'b010;

else if(in[2]) out = 3'b011;

else if(in[3]) out = 3'b100;

else if(in[4]) out = 3'b101;

else if(in[5]) out = 3'b110;

else if(in[6]) out = 3'b111;

else out = 3'b000;

end

endmodule

4-16译码器的资源消耗约是3-8译码器的2倍。

  1. RTL View

    实验四:多路译码器

  2. 设计要求:编写一个4-16的译码器
  3. 代码:
    module TEST_4(in,out);
    
    input [3:0] in;
    
    output[15:0] out;
    
    
    
    reg [15:0]out;
    
    
    
    always @(in) begin
    
    case(in)
    
    4'b0000 : out = 16'b0000_0000_0000_0001;
    
    4'b0001 : out = 16'b0000_0000_0000_0010;
    
    4'b0010 : out = 16'b0000_0000_0000_0100;
    
    4'b0011 : out = 16'b0000_0000_0000_1000;
    
    4'b0100 : out = 16'b0000_0000_0001_0000;
    
    4'b0101 : out = 16'b0000_0000_0010_0000;
    
    4'b0110 : out = 16'b0000_0000_0100_0000;
    
    4'b0111 : out = 16'b0000_0000_1000_0000;
    
    4'b1000 : out = 16'b0000_0001_0000_0000;
    
    4'b1001 : out = 16'b0000_0010_0000_0000;
    
    4'b1010 : out = 16'b0000_0100_0000_0000;
    
    4'b1011 : out = 16'b0000_1000_0000_0000;
    
    4'b1100 : out = 16'b0001_0000_0000_0000;
    
    4'b1101 : out = 16'b0010_0000_0000_0000;
    
    4'b1110 : out = 16'b0100_0000_0000_0000;
    
    4'b1111 : out = 16'b1000_0000_0000_0000;
    
    endcase
    
    end
    
    endmodule
  4.  RTL View

  5. 结论:4-16译码器的资源消耗约是3-8译码器的2倍。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
八路智力竞赛抢答器设计 一.实验目的 掌握抢答器的工作原理及其设计方法。 学会用Multisim8软件操作实验内容。 掌握设计性试验的实验方法 二.实验要求 八路智力竞赛抢答器功能要求: 基本功能: 1.设计一个智力竞赛抢答器,可同时供8名选手或8个代表队参加比赛,他们的编号 分别是0、1、2、3、4、5、6、7,各用一个抢答按钮,按钮的编号与选手的编号相对应 ,分别是0、1、2、3、4、5、6、7。 2.给节目主持人设置一个控制开关,用来控制系统的清零(编号显示数码管灭灯) 和抢答的开始。 3.抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答按钮,编号 立即锁存,并在LED数码管上显示出选手的编号。此外,要封锁输入电路,禁止其他选手 抢答。优先抢答选手的编号一直保持到主持人将系统清零为止。 扩展功能: 1.抢答器具有定时抢答的功能。当节目支持人按下"开始"按钮后,要求定时器立即 倒计时,并在显示器上显示。 2.参赛选手在设定的时间内抢答,抢答有效,定时器停止工作,显示器上显示选手 的编号和抢答时刻的时间,并保持到主持人将系统清零为止。 3.如果定时抢答的时间已到,却没有选手抢答,则本次抢答无效,系统封锁输入电 路,禁止选手超时后抢答,时间显示器上显示00. 三.实验原理 根据对功能要求的简要分析,将定时抢答器电路分为主题电路和扩展电路两部分。 主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答器按钮时,能显示选手 的编号,同时能封锁输入电路,禁止其他选手抢答。扩展电路完成定时抢答及报警功能 。 比赛开始时,接通电源,节目主持人将开关置于"清零"位置,抢答器处于禁止工作状 态,编号显示器灭灯,定时显示器上显示设定时间。当节目主持人宣布"抢答开始",同 时将控制开关拨到"开始"位置,抢答器处于工作状态,定时器开始倒计时。若定时时间 到,却没有选手抢答时,系统报警,并封锁输入电路,禁止选手超时后抢答。若选手在 定时时间内按动抢答按钮时,抢答器要完成以下四项工作:1.优先编码器电路立即分辨 出抢答者的编号,并由锁存器进行锁存,然后由译码显示电路显示编号; 2.扬声器发出短暂声响,提醒节目主持人注意; 3.控制电路要对输入编码电路进行封锁,避免其他选手再次进行抢答; 4.控制电路要使定时器停止工作,时间显示器上显示剩余的抢答时间,并保持到主持人 将系统清零为止。当选手将问题回答完毕时,主持人操作控制开关,使系统回复到禁止 工作状态,以便进行下一轮抢答。 上述方案所示抢答器的工作过程:主持人按动开始抢答的开关后,最先抢答的选手的 电平信号先经过优先编码器,再依次经过数据锁存器,此时已经限制了其他选手的抢答 ,信号再经过译码器和七段数码显示器,将最先抢答的该选手的编号显示出来,并同时 产生报警信号,到此完成的是抢答功能;如果没有人抢答, 30秒减计数器减到00时也会发出报警信号,此时完成计时功能。 它的优点表现在以下几个方面:这种方案原理比较简单。主持人对整体电路的控制只 需几个门电路就可完成,不必用特别的芯片来组成控制电路;更容易实现报警提示功能 ,在有选手抢答后或者计时开始和结束时。既减少了布线使整个电路更直观简单,又降 低了产生错误的可能性。 四.实验器材 υ元器件:74LS48,72LS192,74LS279、74LS148、74LS00、74LS08、74LS32、NE555、C C4511各几个,数码管三个,发光二极管一个,开关、电阻、电容若干 υ 仿 真:Multisim8仿真软件 五.实验步骤 1.抢答电路设计 抢答电路的功能有两个:一是能分辨出选手按按钮的先后,并锁存优先抢答者的编号 ,供译码显示电路用;二是要使其他选手的按钮操作无效。因此,选用优先编码器74LS 148和RS锁存器74LS279以及译码显示电路完成上述功能。 74LS148是一八线- 三线优先编码器,该编码器由8个信号输入端,3个二进制输出端,输入输出均为低电平 有效。EI为输入使能端,低电平有效,当EI为低电平时,编码器处于工作状态;EO为输 出使能端,只有在EI=0,且所有输入都为1时,输出为0;GS表征编码器的工作状态,当 且仅当EI为低电平,且输入至少有一各为有效电平时,GS才有效。因此,可根据EI、EO 、GS功能扩展端的特点,对电路进行相应控制。编码器在抢答电路中功能是判断抢答者 的编号。 74LS279是由4个RS锁存器组成,且均为与非门构成的RS锁存器。其中,1S和3S有两 个输入端,S1和S2均为相与的关系。本设计中,将S2均接高电平,仅利用S1控制输出。 其引脚图如图四所示,下表为SR锁存器的功能真值表,值得注意的是S和R不能同时为高 电平,否则输出不确定。 74LS48为七段显示译码器。该集成译码器设有多个辅助控

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值