1SMB5949BT3G双目运算符
发布时间:2019/10/14 12:14:15 访问次数:776
1SMB5949BT3Ghalfadder HA2(s,D2,S1,CI);
or g1(Co,D2,D1);
//Description of 4-bit ftlll adder(see Fig 4.4.32)
module~4bit~adder(S,C3,A,B,C~1);
input[3:0]A,B;
input C~1;
output[3:0]s;
output C3;
wire CO,C1,C2; //内部进位信号
//Instantiate the fu11adder
fu11adder FA0(s[0],C0,A[0],B[0],C~1),
FA1(S[1],C1,A[1],B[1],C0),
FA2(s[2],C2,A[2],B[2],C1),
FA3(S[3],C3,A[3],B[3],C2);
endmodune
组合逻辑电路的数据流建模
对于基本单元逻辑电路,使用Verilog语言提供的门级元仵模型描述电路非常方便,但随着电路复杂性的增加,使用的逻辑门较多时,使用HDL门级描述的工作效率就很低。本节介绍的数据流建模能够在较高的抽象级别描述电路的逻辑功能,并且通过逻辑综合软件,能够自动地将数据流描述转换成为门级电路。
下面首先介绍数据流建模中要用到的运算符,然后举例说明数据流建模的方法。
运算符,VeFilog语言提供了大约30个运算符,如表4.6.8所示①。双目运算符是指一个运算符需要带两个操作数,即对两个操作数进行运算。单目运算符只对
一个操作数进行运算,而三目运算符需要带三个操作数。
还有两个不常用的运算符:全等(===)和不全等(!==),未介绍。
位运算符和缩位运算符之间是有区别的。位运算是将两个操作数按对应位进行相应的逻辑运算,操作数是几位数,则运算结果也是几位数。而缩位运算是对单个操作数的各位进行相应运算,最后的运算结果是1位二进制数。假设变量A、B的值分别为4’b1010和41b1111,表4.6.9所示为这两种不同运算的例子.
逻辑运算符&&和‖为双目运算符,逻辑运算符!为单目运算符,逻辑运算的结果为1位。在运算过程中,如果操作数只有1位,那么1代表逻辑1,0代表逻辑0;如果操作数由多位组成,且每1位都是0,则认为该操作数具有逻辑0值;反之,若操作数的某1位为1,则认为该操作数具有逻辑1值;如果任意一个操作数为x或z,则逻辑运算的结果为不定态x。例如,设变量A、B的值分别为21b10和2’b00,则A为逻辑1,B为逻辑0,于是!A=0,!B=1,A&&B=1&&0=0, A||B=1||0=1。
1SMB5949BT3Ghalfadder HA2(s,D2,S1,CI);
or g1(Co,D2,D1);
//Description of 4-bit ftlll adder(see Fig 4.4.32)
module~4bit~adder(S,C3,A,B,C~1);
input[3:0]A,B;
input C~1;
output[3:0]s;
output C3;
wire CO,C1,C2; //内部进位信号
//Instantiate the fu11adder
fu11adder FA0(s[0],C0,A[0],B[0],C~1),
FA1(S[1],C1,A[1],B[1],C0),
FA2(s[2],C2,A[2],B[2],C1),
FA3(S[3],C3,A[3],B[3],C2);
endmodune
组合逻辑电路的数据流建模
对于基本单元逻辑电路,使用Verilog语言提供的门级元仵模型描述电路非常方便,但随着电路复杂性的增加,使用的逻辑门较多时,使用HDL门级描述的工作效率就很低。本节介绍的数据流建模能够在较高的抽象级别描述电路的逻辑功能,并且通过逻辑综合软件,能够自动地将数据流描述转换成为门级电路。
下面首先介绍数据流建模中要用到的运算符,然后举例说明数据流建模的方法。
运算符,VeFilog语言提供了大约30个运算符,如表4.6.8所示①。双目运算符是指一个运算符需要带两个操作数,即对两个操作数进行运算。单目运算符只对
一个操作数进行运算,而三目运算符需要带三个操作数。
还有两个不常用的运算符:全等(===)和不全等(!==),未介绍。
位运算符和缩位运算符之间是有区别的。位运算是将两个操作数按对应位进行相应的逻辑运算,操作数是几位数,则运算结果也是几位数。而缩位运算是对单个操作数的各位进行相应运算,最后的运算结果是1位二进制数。假设变量A、B的值分别为4’b1010和41b1111,表4.6.9所示为这两种不同运算的例子.
逻辑运算符&&和‖为双目运算符,逻辑运算符!为单目运算符,逻辑运算的结果为1位。在运算过程中,如果操作数只有1位,那么1代表逻辑1,0代表逻辑0;如果操作数由多位组成,且每1位都是0,则认为该操作数具有逻辑0值;反之,若操作数的某1位为1,则认为该操作数具有逻辑1值;如果任意一个操作数为x或z,则逻辑运算的结果为不定态x。例如,设变量A、B的值分别为21b10和2’b00,则A为逻辑1,B为逻辑0,于是!A=0,!B=1,A&&B=1&&0=0, A||B=1||0=1。