Gate Level Modeling: Prof. A. K. Swain Asst. Prof., ECE Dept., NIT Rourkela EC6203: Reconfigurable System Design
Gate Level Modeling: Prof. A. K. Swain Asst. Prof., ECE Dept., NIT Rourkela EC6203: Reconfigurable System Design
Prof. A. K. Swain
Asst. Prof., ECE Dept., NIT Rourkela
Multiple instances of the same gate type can be specified in one construct.
Syntax:
gate_type
[ instance _ name 1 ] ( term 11 , term 12 , . . . , term1N ),
[ instance _name2 ] ( term21 , term22 , . . . , term2N ),
....
[ instance_nameM ] ( termM1 , termM2 , . . . , termMN) ;
Syntax :
multiple _ input _ gate_type
[ instance_name] (OutputA , Input1 , Input2 , . . . , InputN );
• The first terminal is the output and all others are the inputs
Example:
and A1 (Outl, Ini, In2);
and RBX (Sty, Rib, Bro, Qit, Fix) ;
xor (Bar, Bud[0], Bud[l], Bud[2]),
(Car, Cut[0], Cut[l]),
(Sar, Sut[2], Sut[l], Sut[0], Sut[3]);
Syntax:
multiple_output_gate_type [ instance_name ] ( Out1, 0ut2 ,… , OutN, InputA );
Example:
buf B1 (Fan[0], Fan[1], Fan[2], Fan[3], Clk);
not N1 [PhA, PhB, Ready) ;
Syntax:
pull_gate [ instance_name ] ( OutputA );
• The terminal list of this gate instantiation contains only one output.
Example:
pullup PUP (Pwr);
• This pullup gate has instance name PUP with output Pwr tied to 1.
Syntax:
gate_type [ instance_name ] ( OutputA , InputB , ControlC );
Examples:
pmos P1 (BigBus, SmallBus, GateControl);
rnmos RN1 (ControlBit, ReadyBit, Hold);
Syntax:
(r)cmos [ instance_name ] (OutputA , InputB , NControl , PControl );
Syntax:
(r)tran [ instance_name ] ( SignalA , SignalB );
• The terminal list has only two terminals and data flows unconditionally both ways, that is, from
SignalA to SignalB and vice versa.
Syntax :
gate__type [ instance_name ] ( SignalA , SignalB , ControlC );
• The first two terminals are the bidirectional terminals, that is, data flows from SignalA to SignalB
and vice versa. The third terminal is the control signal.
• If ControlC is 1 for tranif0 and rtranif0, and 0 for tranif1 and rtranif1, the bidirectional data flow
is disabled.
• For the resistive switches (rtran, rtranif1 and rtranif1), the strength of the signal reduces when it
passes through the switch.
Syntax:
minimum : typical : maximum
• The minimum, typical and maximum values must be constant expressions.
Example:
nand #(2:3:4, 5:6:7) (Pout, Pin1, Pin2);
• The selection of which delay to use is usually made as an option during a simulation
run.
• If maximum delay simulation is performed:
a rise delay of 4 and a fall delay of 7 is used for the nand gate instance.
Example:
wire [3:0] Out, InA, InB;
nand G [3 : 0] (Out, InA, InB);
//same as:
Nand G3 (Out[3], InA[3], InB[3]),
G2 (Out[2], InA[2], JnB[2]),
G1 (Out[1], InA[1], InB[1]),
G0 (Out[0], InA[0], InB[0]);
*Note that the instance name is not optional when specifying an array of instances.
Example:
wire [3:0] Out, InA, InB;
nand G [3 : 0] (Out, InA, InB);
//same as:
Nand G3 (Out[3], InA[3], InB[3]),
G2 (Out[2], InA[2], JnB[2]),
G1 (Out[1], InA[1], InB[1]),
G0 (Out[0], InA[0], InB[0]);
*Note that the instance name is not optional when specifying an array of instances.
website:
asic-world.com
www.xilinx.com