2020年5月6日 星期三

以Verilog 設計一個數位電路 (EX1-7)--- CD4511

以Verilog 設計一個數位電路 (EX1-7)--- CD4511





`timescale 1 ns/1 ns

module ex7_CD4511( LT,LE,BI, A,B,C,D , Oa,Ob,Oc,Od,Oe,Of,Og);
input LT,LE,BI, A,B,C,D;
output Oa,Ob,Oc,Od,Oe,Of,Og;

wire [7:0]temp;

assign {Oa,Ob,Oc,Od,Oe,Of,Og}=temp;

assign temp = ({LE,LT, D,C,B,A ,BI}==7'bx0xxxxx) ? 7'b111_1111: //Lamp test
               ({LE,LT, D,C,B,A ,BI}==7'bx1xxxx0) ? 7'b000_0000: //hide
               ({LE,LT, D,C,B,A ,BI}==7'b0100001) ? 7'b111_1110: //0
   ({LE,LT, D,C,B,A ,BI}==7'b0100011) ? 7'b011_0000: //1
   ({LE,LT, D,C,B,A ,BI}==7'b0100101) ? 7'b110_1101: //2
   ({LE,LT, D,C,B,A ,BI}==7'b0100111) ? 7'b111_1001: //3
     
   ({LE,LT, D,C,B,A ,BI}==7'b0101001) ? 7'b011_0011: //4
   ({LE,LT, D,C,B,A ,BI}==7'b0101011) ? 7'b101_1011: //5
   ({LE,LT, D,C,B,A ,BI}==7'b0101101) ? 7'b001_1111: //6
   ({LE,LT, D,C,B,A ,BI}==7'b0101111) ? 7'b111_0000: //7
 
   ({LE,LT, D,C,B,A ,BI}==7'b0110001) ? 7'b111_1111: //8
   ({LE,LT, D,C,B,A ,BI}==7'b0110011) ? 7'b111_0011: //9
   ({LE,LT, D,C,B,A ,BI}==7'b0110101) ? 7'b000_0000: //10
   ({LE,LT, D,C,B,A ,BI}==7'b0110111) ? 7'b000_0000: //11  
   ({LE,LT, D,C,B,A ,BI}==7'b0111001) ? 7'b000_0000: //12
   ({LE,LT, D,C,B,A ,BI}==7'b0111011) ? 7'b000_0000: //13  
   ({LE,LT, D,C,B,A ,BI}==7'b0111101) ? 7'b000_0000: //14
   ({LE,LT, D,C,B,A ,BI}==7'b0111111) ? 7'b000_0000:7'b000_0000;  //15      
endmodule

`timescale 100 ns/1 ns

module testbench;
/*
module ex7_CD4511( LT,LE,BI, A,B,C,D , Oa,Ob,Oc,Od,Oe,Of,Og);
input LT,LE,BI, A,B,C,D;
output Oa,Ob,Oc,Od,Oe,Of,Og;
*/
reg LT,LE,BI, A,B,C,D;
wire Oa,Ob,Oc,Od,Oe,Of,Og;

integer i;

ex7_CD4511 UUT( LT,LE,BI, A,B,C,D , Oa,Ob,Oc,Od,Oe,Of,Og);

initial
begin
    LT=1'b1 ; LE=1'b0 ; BI=1'b1;
   
for (i=0;i<=15;i=i+1) begin
{D,C,B,A}=i;
#20;
end
    LT=1'b1 ; LE=1'b0 ; BI=1'b0;
  for (i=0;i<=15;i=i+1) begin
{D,C,B,A}=i;
#20;
end

#20; 
$stop;
end
endmodule

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...