8选1的多路选择器c语言代码,-8译码器_4选1多路选择器.doc

专 业:计算机科学与技术班 级:计实1001学 号:U201014488姓 名:王宸敏电 话:邮 件:1428163209@完成日期:2012-05-28 周一晚上指导教师:吴非

实验报告

一、实验

Verilog电路设计与仿真

二、实验目的

学习掌握用Verilog进行组合电路设计和时序逻辑电路设计

了解如何对设计的电路进行综合和仿真

三、实验内容

对上课讲的3-8译码器进行仿真;

设计MUX4×1多路选择器,并利用设计完成的MUX4×1多路选择器模块,编写16×1多路选择器程序。

描述多数逻辑电路行为。输入N(N≥12)位向量。如果其中1的数量超过0的数量,输出设置为1。当Data_Ready信号为1时,才对输入数据进行检查。

四、实验记录

1. 3-8译码器

1)设计说明

输入端口:in(3位向量),g1, g2a, g2b

输出端口:out(8位向量、寄存器类型)

逻辑功能分析:对输入a、b、c的值进行译码,即确定输出端out[0]~out[7]中的哪一个输出端变为有效。当g1为高电平、g2a和g2b为低电平时,电路正常工作;当g1=X、g2a=1、g2b=X,g1=X、g2a=X、g2b=1或g1=0、g2a=X、g2b=X时,输出端的每一位均为1。功能表如下:

选 通 输 入二进制输入端译 码 输 出 端g1g2ag2bcbay0y1y2y3y4y5y6y7X1XXXX11111111XX1XXX111111110XXXXX1111111110000001111111100001101111111000101101111110001111101111100100111101111001011111101110011011111101100111111111102)详细代码(带注释)

module decoder38(out, in, g1, g2a, g2b); //38译码器

output[7:0] out; //八位输出

input[2:0] in; //三位输入

input g1, g2a, g2b; //选通输入

reg[7:0] out;

always @(in or g1 or g2a or g2b)

begin

if(g1==1 && g2a==0 && g2b==0)

//只有在g1 g2a g2b为100时产生输入

case(in) //输入各选项,以及对应的输出

3'd0:out=8'

3'd1:out=8'

3'd2:out=8'

3'd3:out=8'

3'd4:out=8'

3'd5:out=8'

3'd6:out=8'

3'd7:out=8'

endcase

end

endmodule

仿真结果

2. 16×1多路选择器程序

设计说明

16×1多路选择器由5个4×1多路选择器组成。电路的组成原理为:把16个输入的依次分为4组,记为X、Y、Z、W,每组4个输入。选择信号可表示为4位二进制数,记低两位为A,高两位为B。先使用A分别对X、Y、Z、W四组输入进行4选1操作,选出X1、Y1、Z1、W1。再使用B对X1、Y1、Z1、W1进行4选1操作,即可得到结果Z。

i) 16选1模块(MUX16_1)

输入端口:[15:0]in [3:0]sel

输出端口:out

逻辑功能分析:根据选择信号,从16个输入中选出一个信号作为输出。

ii) 4选1模块(MUX16_1)

输入端口:in0,in1,in2,in3,[1:0]sel

输出端口:out

逻辑功能分析:根据选择信号,从4

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值