verilog—38译码器

(刚开始学verilog,第一次写博客,如有问题,还望指正qwq)

一、功能描述

译码器属于组合逻辑电路,它的逻辑功能是将二进制代码按其编码时的 原意译成对应的输出高、底电平信号,又叫解码器。38译码器即为三线转八线的译码器,只有一位低电平输出有效。

二、设计方案

利用always语句,实现3-8译码器。

三、设计代码



module map3to8_assign(a,enable,y);

  input [2:0]a;

  input enable;

  output reg[7:0]y;  

 

  always@(a or enable)

     begin

       if(enable==1)

           case(a)

          
           3'b000:y=8'b11111110;

          
           3'b001:y=8'b11111101;  

          
           3'b010:y=8'b11111011;  

          
           3'b011:y=8'b11110111;  

  
           3'b100:y=8'b11101111;  

          
           3'b101:y=8'b11011111;  

          
           3'b110:y=8'b10111111;  

          
           3'b111:y=8'b01111111; 

          
           default:y=8'bxxxxxxxx;

           endcase

       else y=8'b11111111;

    end   
endmodule


四、仿真代码



module tb_map3to8();
  reg[2:0]a;
  reg enable;
  wire [7:0]y;

  initial begin

   
   a=3'b000;enable=1;

 
   #100
   a=3'b001;enable=1;
   #100
   a=3'b010;enable=1;
   #100
   a=3'b011;enable=1;
   #100
   a=3'b100;enable=1;
   #100
   a=3'b101;enable=1;
   #100
   a=3'b110;enable=1;
   #100
   a=3'b111;enable=1;
   #100 enable=0;
  end
  
map3to8_assign map3to8_assign_inst(.enable(enable),.a(a),.y(y)); 
endmodule


五、仿真波形图
verilog—38译码器_第1张图片

你可能感兴趣的:(verilog—38译码器)