牛客网Verilog刷题——VL1

牛客网Verilog刷题——VL1

题目

  要求设计一个四选一多路选择器,其输入输出信号如下表。

信号类型输入/输出
d1wireIntput
d2wireIntput
d3wireIntput
d0wireIntput
selwireIntput
mux_outwireOutput

  具体的模块的输入输出如下图所示。

在这里插入图片描述
  题目要求的输入输出真值表如下表。

sel输出
00d3
01d2
10d1
11d0

  模块的输入输出时序如下图所示(这里官方给的时序图有问题)。
在这里插入图片描述

答案

  练习的答案如下。

(1)写法一

`timescale 1ns/1ns
module mux4_1(
input [1:0]d1,d2,d3,d0,
input [1:0]sel,
output[1:0]mux_out
);
//*************code***********//
reg  [1:0]  mux_out_t;
always @(*)
  case(sel)
    2'd0: mux_out_t <= d3;
    2'd1: mux_out_t <= d2;
    2'd2: mux_out_t <= d1;
    2'd3: mux_out_t <= d0;
 
    default: mux_out_t <= 2'd0;
  endcase
 
assign mux_out = mux_out_t;

//*************code***********//
endmodule

(2)写法二

`timescale 1ns/1ns
module mux4_1(
input [1:0]d1,d2,d3,d0,
input [1:0]sel,
output[1:0]mux_out
);
//*************code***********//

assign mux_out = (sel == 2'd0) ? d3 : (sel == 2'd1) ? d2 : (sel == 2'd2) ? d1 : d0; 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值