4位数值比较器电路
题目描述:使用门级描述方式,实现4位数值比较器
某4位数值比较器的功能如下表
`timescale 1ns/1nsmodule comparator_4(input [3:0] A ,input [3:0] B ,output wire Y2 , //A>Boutput wire Y1 , //A=Boutput wire Y0 //A<B
);
not iv0(iv0_o, B[0]),iv1(iv1_o, B[1]),iv2(iv2_o, B[2]),iv3(iv3_o, B[3]),iv4(iv4_o, A[0]),iv5(iv5_o, A[1]),iv6(iv6_o, A[2]),iv7(iv7_o, A[3]);and ad0(ad0_o, iv0_o, A[0]),ad1(ad1_o, iv1_o, A[1]),ad2(ad2_o, iv2_o, A[2]),ad3(ad3_o, iv3_o, A[3]),ad4(ad4_o, ad0_o, xnr0_o, xnr1_o, xnr2_o),ad5(ad5_o, ad1_o, xnr1_o, xnr2_o),ad6(ad6_o, ad2_o, xnr2_o),ad7(ad7_o, iv4_o, B[0]),ad8(ad8_o, iv5_o, B[1]),ad9(ad9_o, iv6_o, B[2]),ad10(ad10_o, iv7_o, B[3]),ad11(ad11_o, ad7_o, xnr0_o, xnr1_o, xnr2_o),ad12(ad12_o, ad8_o, xnr1_o, xnr2_o),ad13(ad13_o, ad9_o, xnr2_o),ad14(Y1, xnr2_o, xnr1_o, xnr0_o, xnr3_o);xnor xnr0(xnr0_o, A[1], B[1]), xnr1(xnr1_o, A[2], B[2]), xnr2(xnr2_o, A[3], B[3]), xnr3(xnr3_o, A[0], B[0]); or or0(Y2, ad3_o, ad6_o, ad5_o, ad4_o),or1(Y0, ad10_o, ad13_o, ad12_o, ad11_o) ;endmodule
知识点
注意:门级元件的输出、输入必须为线网类型的变量
多输入门
and、nand、or、nor、xor和xnor是具有多个输入的逻辑门,它们的共同特点是:只允许有一个输出,但可以有多个输入。and的一般调用格式为:
and A1(out, in1, in2, in3);
其中,调用名A1可以省略。nand、or、nor、xor和xnor的调用格式与and的类似。
多输出门
buf、not是具有多个输出的逻辑门,它们的共同特点是:允许有多个输出,但只有一个输入。一般的调用格式为:
buf B1(out1, out2,…, in);
not N1(out1, out2,…, in);
其中,调用名B1、N1可以省略。
三态门
bufif1、bufif0、notif1和notif0是三态门元件模型。这些门有一个输出、一个数据输入和一个输入控制。如果输入控制信号无效,则三态门的输出为高阻态z。一般的调用格式为:
bufif1 B1(out, in, ctrl);
bufif0 B0(out, in, ctrl);
notif1 N1(out, in, ctrl);
notif0 N0(out, in, ctrl);
其中,调用名B1、B0、N1和N0可以省略。