【Verilog - 组合逻辑 - 基础3】4. 与或门-1
爱人,待周爱人,而后为爱人。不爱人,不待周不爱人《墨子.小取》
1. 介绍
1.1 与门介绍
与门和或门的逻辑可以同过墨子的兼爱思想来理解。
墨子曰:“爱人,待周爱人,而后为爱人”
就是说,如果爱全部周边的人,则算是一位爱人的仁者。
如果用1
来代表爱人
,那输入都得是1( 待周爱人)才能使 输出是1(而后为爱人)。这不就是一个与门吗?
输入1 | 输入2 | 输出 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
1.2 或门介绍
或门也可以同过墨子的兼爱思想来理解。这里是反例。
墨子曰:“不爱人,不待周不爱人”
这里就是说,如果周边有任何一个不爱的人,那就不能算是一位爱人的仁者了。
相反,如果用1
来代表不爱人
,那如果其中有一个输入是1(不待周),那输出就是1 (不爱人)。这不就是一个或门吗?
输入1 | 输入2 | 输出 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
2.0 与门在verilog的建模
在verilog,有三个层面的硬件的模型:行为,门,和电路极。
2.1 与门-行为极模型
module and2(input jia, input yi, output bing);
assign bing = jia & yi;
endmodule
2.2 与门-门极模型
module and2(input jia, input yi, output bing);
and(bing, jia, yi);
endmodule
2.3 与门-电路极模型
要注意,因为电路里,电极刚好是相反的,所以要实现一个与门(用cmos的话)就要再加一个非门,
module and2(input jia, input yi, output bing);
wire yu_fei;
wire zhong;
//yu_fei men
pmos(yu_fei, 1, jia ); pmos(yu_fei,1,yi);
nmos(zhong, 0, jia);nmos(yu_fei, zhong, yi);
//fei men
pmos(bing, 1, yu_fei);
nmos(bing, 0, yu_fei);
endmodule
下一节会讨论其它的电路极实现方法。。
3.0 或门在verilog的建模
3.1 或门-行为极模型
module or2(input jia, input yi, output bing);
assign bing = jia | yi;
endmodule
3.2 或门-门极模型
module and2(input jia, input yi, output bing);
or(bing, jia, yi);
endmodule
3.3 或门-电路极模型
要注意,因为电路里,电极刚好是相反的,所以要实现一个与门(用cmos的话)就要再加一个非门,
module or2(input jia, input yi, output bing);
wire huo_fei;
wire zhong;
//huo_fei men
pmos(zhong, 1, jia ); pmos(huo_fei,zhong,yi);
nmos(huo_fei, 0, jia); nmos(huo_fei, 0, yi);
//fei men
pmos(bing