题解 | #数据选择器实现逻辑电路#

数据选择器实现逻辑电路

https://www.nowcoder.com/practice/00b0d01b71234d0b97dd4ab64f522ed9

本题和之前的38译码器的题类型,主要区别在于输入项不同了,需要我们进行筛选,和之前的题一样,首先列出真值表,比较发现,S0和S1与AB完美契合,只需对C与D0-D3进行适配,观察真值表发现,D0需为0,D1为~C,D2为C,D3为1,当然如果调换AB的顺序,中间D1和D2需要进行更换
`timescale 1ns/1ns

module data_sel(
   input             S0     ,
   input             S1     ,
   input             D0     ,
   input             D1     ,
   input             D2     ,
   input             D3     ,
   
   output wire        Y    
);

assign Y = ~S1 & (~S0&D0 | S0&D1) | S1&(~S0&D2 | S0&D3);
     
endmodule

module sel_exp(
   input             A     ,
   input             B     ,
   input             C     ,
   
   output wire       L            
);
    
   data_sel    u_data_sel(
       .S0     (A),            //本题和之前的38译码器的题类似,都是通过某一个芯片器件实现某一个定向的功能
       .S1     (B),            //但是与之前的不同,之前的输入项都是对应的,题目直接就是给好的,而此处的题看似选择器的输入要比表达式的要多
       .D0     (1'b0),         //实际需要通过两者的真值表去对比发现,这一个类型的题都是这样,包括38译码器的题,都是需要写出两个真值表
       .D1     (~C),           //然后根据真值表的值进行求解,可以发现本题的S0和S1是两个输入变量,而D0-D3都是输入和输出项
       .D2     (C),            //故C可以为D0-D4的项,同时看真值表可以发现,因为S0和S1都是0时,输出的都是0,而选择器输出D0,所以输入项D0必须要为0,
       .D3     (1'b1),         //同理01和C相同,则D1就需为C,10与C相反,则D2为~C,11输出全是1,则D3为1
       
       .Y      (L)
);
    
    
    
endmodule

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务