1. 程式人生 > 其它 >第一節 基本邏輯閘設計與模擬 (反相器、與非門)

第一節 基本邏輯閘設計與模擬 (反相器、與非門)

一、反相器

1.電路符號

2.真值表

3.電路原理圖

4.verilog設計程式碼

module inverter_gate(A,Y);
input A;
output Y;

assign Y = ~ A;

endmodule 

5.模擬程式碼

//testbench of inverter_gate
`timescale 1ns/10ps
module inverter_gate_testbench;
reg aa;
wire yy;
//instantiation module
inverter_gate U1(
    .A(aa),
    .Y(yy)
    );

initial
begin #0 aa <= 0; #10 aa <= 1; #10 aa <= 0; #10 aa <= 1; #10 aa <= 0; #10 aa <= 1; #10 $stop; end endmodule

6.模擬結果

二、與非門

1.電路符號

2.真值表

3.電路原理圖

  兩個NMOS串聯和兩個PMOS並聯

4.verilog設計程式碼

module nand_gate(
input A,B,
output Y
    );

assign Y = ~(A&B);
endmodule

5.模擬程式碼

//Testbench of nand_gate
`timescale 1ns/10ps
module nand_gate_testbench();
reg aa,bb;
wire yy;

//instantiation the module
nand_gate U1(
    .A(aa),
    .B(bb),
    .Y(yy)
    );

// aa and bb signal
initial begin
    #0 aa <= 0; bb <= 0;
    #20 aa <= 0; bb <= 1;
    #10 aa <= 1; bb <= 0
; #20 aa <= 1; bb <= 1; #20 $stop; end endmodule

6.模擬結果

三、其它知識點

1.reg型變數必須使用非阻塞賦值,即使用 “<=”。

2.使用非阻塞賦值才能綜合出實際電路。