• HDL源文件

    // 3217005109_BasGate.v
    module gates_1(A,B,Y1,Y2,Y3,Y4,Y5);
        input A,B;
        output Y1,Y2,Y3,Y4,Y5;
        assign Y1=A&B; //为输出信号赋值;可以使用三目运算符:y = (s == 0) ? a : b; s为0时y=a,否则y=b
        assign Y2=A|B;
        assign Y3=~(A&B);
        assign Y4=~(A|B);
        assign Y5=A^B;
    endmodule
    module gates_2(A,Y);
        input [1:6]A;
        output [1:6]Y;
        assign Y=~A;
    endmodule
    
    //3输入、1输入的举重裁判表决电路
    module gates_3(A,B,C,Y);
        input A,B,C;
        output Y;
        assign Y=A&B|B&C|A&C;
    endmodule
    
    //3输入、1输入的交通灯故障检测电路
    module gates_4(R,Y,G,Z);
        input R,Y,G;
        output Z;
        assign ~(R|Y|G)|RY|RG|YG;
    endmodule
    
  • 按hdl editor旁边那个按钮新建测试文件

    // test_BasGate.v
    `timescale 1ns/1ns
    module testBasGate_1();
        reg A,B; //输入信号:reg表示需要保存
        wire Y1,Y2,Y3,Y4,Y5; //wire:默认类型,不保存值
        gates_1 v1(A,B,Y1,Y2,Y3,Y4,Y5