题解 | #使用3-8译码器①实现逻辑函数#

使用3-8译码器①实现逻辑函数

https://www.nowcoder.com/practice/be81e76ebade445baca7257aa4eca8f2

用3-8译码器,4-16译码器等实现逻辑函数L的步骤:

  • 观察L变量的个数,根据变量的个数决定用什么译码器
  • 把L改成最小项之和L',方法是某一项乘以(X+~X),其中X是这一项没有出现的变量
  • L'的每一项就代表译码器的一个输出
  • 把所有的输出相与,得到最终的表达式

下面我们依次来完成每一步:

(1)观察L变量的个数,根据变量的个数决定用什么译码器

L=(~A)·C+A·B,有三个变量A,B,C。而题目给我们提供了3-8译码器,所以我们用3-8译码器实现。

(2)把L改成最小项之和L',方法是某一项乘以(X+~X),其中X是这一项没有出现的变量

(3)L'的每一项就代表译码器的一个输出;把所有的输出相与,得到最终的表达式

74HC138大概长这样:

给每个端口添加信号后,就是下面这样:

OK,讲解结束,“Talk is cheap, show me the code”!

`timescale 1ns/1ns

module decoder_38(
   input             E1_n   ,
   input             E2_n   ,
   input             E3     ,
   input             A0     ,
   input             A1     ,
   input             A2     ,
   
   output wire       Y0_n   ,  
   output wire       Y1_n   , 
   output wire       Y2_n   , 
   output wire       Y3_n   , 
   output wire       Y4_n   , 
   output wire       Y5_n   , 
   output wire       Y6_n   , 
   output wire       Y7_n   
);
wire E ;
assign E = E3 & ~E2_n & ~E1_n;
assign  Y0_n = ~(E & ~A2 & ~A1 & ~A0);
assign  Y1_n = ~(E & ~A2 & ~A1 &  A0);
assign  Y2_n = ~(E & ~A2 &  A1 & ~A0);
assign  Y3_n = ~(E & ~A2 &  A1 &  A0);
assign  Y4_n = ~(E &  A2 & ~A1 & ~A0);
assign  Y5_n = ~(E &  A2 & ~A1 &  A0);
assign  Y6_n = ~(E &  A2 &  A1 & ~A0);
assign  Y7_n = ~(E &  A2 &  A1 &  A0);
     
endmodule

module decoder0(
   input             A     ,
   input             B     ,
   input             C     ,
   
   output wire       L
);
    //在一个module里面调用另一个module,input是reg,output是wire
    wire Y0_n,Y1_n   ,Y2_n   ,Y3_n   , Y4_n   ,Y5_n   ,Y6_n   ,Y7_n;
    decoder_38 decoder0(
              .E1_n(1'b0),
              .E2_n(1'b0),
              .E3(1'b1),
              .A0(A),
              .A1(B),
              .A2 (C),
              .Y0_n(Y0_n)   ,  
              .Y1_n (Y1_n)  , 
              .Y2_n (Y2_n)  , 
              .Y3_n  (Y3_n) , 
              .Y4_n (Y4_n)  , 
              .Y5_n (Y5_n)  , 
              .Y6_n (Y6_n)  , 
              .Y7_n (Y7_n));
    assign L=Y1_n+Y3_n+Y6_n+Y7_n;
endmodule

完结撒花

全部评论

相关推荐

11-21 11:26
已编辑
门头沟学院 前端工程师
Apries:这个阶段来说,很厉害很厉害了,不过写的简历确实不是很行,优势删掉吧,其他的还行
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务