Documente Academic
Documente Profesional
Documente Cultură
Asachi”,Iaşi
Facultate:ELECTRONICĂ ŞI TELECOMUNICAŢII
Student: Chiosa Ana-Maria
Specializare: Microtehnologii
Profesor: Dănuţ Burdia
Grupa: 5405
Tema de proiect: nr. 13
Enuţul temei
Partea I – Proiectarea şi analiza dinamică în SPICE a circuitului
JKFFS
tpLH tpHL
Descriere
tpLHintrinsec Kload tpHLintrinsec Kload
CK → Q
CK → QN
2
Durata interval
Pin intrare Parametru constrângere
[ns]
SETUP_TIME_LH → CK
SETUP_TIME_HL → CK
D HOLD_TIME_LH → CK
HOLD_TIME_HL → CK
MINPW_HIGH
CK
MINPW_LOW
Porturile circuitului
Descrierea funcţionării
Cerinţe:
1 • modelarea comportamentală în VHDL a circuitului.
2 • realizarea unui program de test pentru width=4.
Partea I
Proiectarea şi analiza dinamică în SPICE a circuitului
JKFFS
1 LN WP
1
2 LP WN WP WN 1.8m
LN LP 0.13m
Poartă inversoare:
Vdd
(2)
MP
(1)
IN (3) OUT
MN
(0)
RN
WN K N V d d VT
WP 3.6 m
(2) Vdd
CN (5)
MP1
(7)
MP2
IN (1) (3) OUT
MN1
(6)
MN2
C (4)
(0)
*subcircuite
.SUBCKT JKFFS 1 3 15 19 16 13 14
X1 1 2 19 4 NAND2
X2 9 15 19 10 NAND2
X3 11 15 19 12 NAND2
X4 2 3 19 5 NOR2
X5 6 5 19 7 NOR2
X6 4 19 6 INV
X7 7 19 8 INV
X8 12 19 2 INV
X9 2 19 13 INV
X10 12 19 14 INV
X11 8 19 18 17 9 INV3S
X12 10 18 19 17 9 INV3S
X13 10 19 18 17 11 INV3S
X14 12 19 18 17 11 INV3S
X15 16 19 17 INV
X16 17 19 18 INV
.ENDS
.SUBCKT INV 1 2 3
MP1 3 1 2 2 CMOSP L=0.13u W=3.6u
MN1 3 1 0 0 CMOSN L=0.13u W=1.8u
.ENDS
.SUBCKT INV3S 1 2 4 5 3
MP1 3 1 7 2 CMOSP L=0.13u W=5u
MP2 7 5 2 2 CMOSP L=0.13u W=5u
MN1 3 1 6 0 CMOSN L=0.13u W=1.8u
MN2 6 4 0 0 CMOSN L=0.13u W=1.8u
.ENDS
.SUBCKT NAND2 1 2 3 4
MP1 4 1 3 3 CMOSP L=0.13u W=1.8u
MP2 4 2 3 3 CMOSP L=0.13u W=1.8u
MN1 5 1 0 0 CMOSN L=0.13u W=1.8u
MN2 4 2 5 0 CMOSN L=0.13u W=1.8u
.ENDS
.SUBCKT NOR2 1 2 3 4
MP1 5 1 3 3 CMOSP l=0.13u w=7.2u
MP2 4 2 5 3 CMOSP l=0.13u w=7.2u
MN1 4 1 0 0 CMOSN l=0.13u w=1.8u
MN2 4 2 0 0 CMOSN l=0.13u w=1.8u
.ENDS
*bistabil
VDD 7 0 1.2v
Vj 1 0 pulse(0 1.2 0n 0.1n 0.1n 10n 20n)
Vk 2 0 pulse(0 1.2 10n 0.1n 0.1n 10n 20n)
Vsn 3 0 pulse(0 1.2 10n 0.1n 0.1n 20n 30n)
Vck 4 0 pulse(0 1.2 0 0.1n 0.1n 5n 10n)
C1 5 0 0.06p
C2 6 0 0.06p
X1 1 2 3 7 4 5 6 JKFFS
.inc”BIST_JK.txt”
.inc "CMOS_IBM_013_T55R.txt"
.TRAN 1n 60n 0.13n
.PROBE
.END
SEL>>
-2.0V
V1(C1) V1(C2)
2.0V
1.0V
0V
V1(Vsn)
2.0V
1.0V
0V
V1(Vk)
2.0V
1.0V
0V
V1(Vj)
2.0V
1.0V
0V
0s 10ns 20ns 30ns 40ns 50ns 60ns
V1(Vck)
Time
*bistabil
VDD 7 0 1.2v
Vj 1 0 pulse(0 1.2 0n 0.1n 0.1n 10n 20n)
Vk 2 0 pulse(0 1.2 10n 0.1n 0.1n 10n 20n)
*Vsn 3 0 pulse(0 1.2 10n 0.1n 0.1n 20n 30n)
Vsn 3 0 1.2V
Vck 4 0 pulse(0 1.2 0 0.1n 0.1n 5n 10n)
C1 5 0 0.06p
C2 6 0 0.06p
X1 1 2 3 7 4 5 6 JKFFS
.inc”BIST_JK.txt”
.inc "CMOS_IBM_013_T55R.txt"
.TRAN 1n 60n 0.13n
.PROBE
.END
→ functia tplh
tpLH (1,2)=x2-x1
{
1| search forward level (50%,n) !1;
2| search forward level (50%,p) !2;
}
→ functia tpHL
tpHL (1,2)=x2-x1
{
1| search forward level (50%,p) !1;
2| search forward level (50%,n) !2;
}
1.26V
1.00V
(20.051n,606.549m) (20.616n,601.286m)
0.50V
0V
19.843ns 20.000ns 20.200ns 20.400ns 20.600ns 20.800ns
V1(Vck) V1(C1)
Time
1.244V
1.000V
(10.051n,606.581m) (10.840n,605.143m)
0.500V
0V
1.21V
1.00V
(10.050n,600.685m) (10.800n,603.810m)
0.50V
0V
9.80ns 10.00ns 10.20ns 10.40ns 10.60ns 10.80ns 11.00ns 11.20ns
V1(Vck) V1(C2)
Time
1.00V
(20.050n,600.457m) (20.559n,600.457m)
0.50V
0V
19.60ns 19.80ns 20.00ns 20.20ns 20.40ns 20.60ns 20.80ns 21.00ns
V1(Vck) V1(C2)
Time
*bistabil
VDD 7 0 1.2v
Vj 1 0 pulse(0 1.2 0n 0.1n 0.1n 10n 20n)
Vk 2 0 pulse(0 1.2 10n 0.1n 0.1n 10n 20n)
*Vsn 3 0 pulse(0 1.2 10n 0.1n 0.1n 20n 30n)
Vsn 3 0 1.2V
Vck 4 0 pulse(0 1.2 0 0.1n 0.1n 5n 10n)
*C1 5 0 0.06p
*C2 6 0 0.06p
X1 1 2 3 7 4 5 6 JKFFS
.inc”BIST_JK.txt”
.inc "CMOS_IBM_013_T55R.txt"
.TRAN 1n 60n 0.13n
.PROBE
.END
1.00V
(30.050n,600.457m) (30.673n,600.457m)
0.50V
0V
29.901ns 30.000ns 30.200ns 30.400ns 30.600ns 30.800ns 30.943ns
V1(Vck) V(6)
Time
1.21V
1.00V
(20.050n,600.457m) (20.481n,600.457m)
0.50V
0V
19.800ns 20.000ns 20.200ns 20.400ns 20.600ns 20.732ns
V1(Vck) V(6)
Time
1.00V
(20.050n,599.258m) (20.548n,599.258m)
0.50V
0V
19.922ns 20.000ns 20.100ns 20.200ns 20.300ns 20.400ns 20.500ns 20.600ns 20.700ns
V1(Vck) V(5)
Time
1.21V
1.00V
(30.050n,600.457m) (30.733n,600.457m)
0.50V
0V
29.901ns 30.000ns 30.200ns 30.400ns 30.600ns 30.800ns 30.943ns
V1(Vck) V(5)
Time
tpLH tpHL
Descriere
tpLH intrinsec Kload tpHL intrinsec Kload
CK -> Q 0.623 ns 9666 0.431 ns 5966
CK -> QN 0.498 ns 4200 0.683 ns 2900
*bistabil
VDD 7 0 1.2v
*Vj 1 0 pulse(0 1.2 0n 0.1n 0.1n 10n 20n)
Vj 1 0 0.6V
Vk 2 0 pulse (0 1.2 {td} 0.1n 0.1n 10n 20n)
.param td=10n
.step param td LIST 9.5n 9.6n 9.7n 9.8n 9.9n
Vsn 3 0 pulse(0 1.2 10n 0.1n 0.1n 20n 30n)
C1 5 0 0.06p
C2 6 0 0.06p
X1 1 2 3 7 4 5 6 JKFFS
.inc”BIST_JK.txt”
.TRAN 1n 60n 0.13n
.PROBE
.END
tsLH=10.050ns-9.750ns=0.3ns
1.5V
1.0V
(9.750n,600.000m)
0.5V
0V
V1(Vk)
1.2V
0.8V
(10.050n,602.198m)
0.4V
SEL>>
0V
8.85ns 9.00ns 9.20ns 9.40ns 9.60ns 9.80ns 10.00ns 10.20ns 10.40ns
V1(Vck)
Time
tsHL=20.050ns-19.650ns=0.4n
1.3V
1.0V
(19.850n,601.562m)
0.5V
SEL>>
0V
V1(Vk)
1.2V
0.8V (20.050n,603.077m)
0.4V
0V
18.30ns 18.50ns 19.00ns 19.50ns 20.00ns 20.50ns 21.00ns 21.49ns
V1(Vck)
Time
thLH =10.350ns-10.050ns=0.3ns
1.5V
1.0V
(10.350n,600.000m)
0.5V
SEL>>
0V
V1(Vk)
1.2V
0.8V
(10.050n,602.198m)
0.4V
0V
9.4ns 9.6ns 9.8ns 10.0ns 10.2ns 10.4ns 10.6ns 10.8ns 11.0ns
V1(Vck)
Time
thHL = 20.450ns-20.050ns=0.4ns
1.5V
1.0V
(20.450n,600.000m)
0.5V
0V
V1(Vk)
1.2V
0.8V
(20.050n,602.198m)
0.4V
SEL>>
0V
19.4ns 19.6ns 19.8ns 20.0ns 20.2ns 20.4ns 20.6ns 20.8ns 21.0ns
V1(Vck)
Time
*bistabil
VDD 7 0 1.2v
Vj 1 0 pulse(0 1.2 0n 0.1n 0.1n 10n 20n)
Vk 2 0 pulse(0 1.2 10n 0.1n 0.1n 10n 20n)
Vsn 3 0 pulse(0 1.2 10n 0.1n 0.1n 20n 30n)
Vck 4 0 pulse(0 1.2 0 0.1n 0.1n {pw} 10n)
.param pw=5n
.step param pw LIST 4.8n 4.6n 4.3n 4.0n 3.5n 3.3n
C1 5 0 0.06p
C2 6 0 0.06p
X1 1 2 3 7 4 5 6 JKFFS
.inc "BIST_JK.txt"
.TRAN 1n 60n 0.13n
.PROBE
.END
2.0V
0V
SEL>>
-2.0V
V1(C1)
2.0V
1.0V
0V
V1(Vj) V1(Vk)
2.0V
1.0V
0V
0s 10ns 20ns 30ns 40ns 50ns 60ns
V1(Vck)
Time
*bistab
VDD 7 0 1.2v
Vj 1 0 pulse(0 1.2 0n 0.1n 0.1n 10n 20n)
Vk 2 0 pulse(0 1.2 10n 0.1n 0.1n 10n 20n)
Vsn 3 0 pulse(0 1.2 10n 0.1n 0.1n 20n 30n)
Vck 4 0 pulse(0 1.2 0 0.1n 0.1n 5n {per})
.param per=11n
.step param per LIST 5.4n 5.8n 6n
C1 5 0 0.06p
C2 6 0 0.06p
X1 1 2 3 7 4 5 6 JKFFS
.inc "BIST_JK.txt"
.TRAN 1n 60n 0.13n
.PROBE
.END
2.5V
0V
SEL>>
-4.8V
V1(C1)
2.0V
1.0V
0V
V1(Vk) V1(Vj)
2.0V
1.0V
0V
13.3ns 16.0ns 20.0ns 24.0ns 28.0ns 32.0ns 36.0ns 40.0ns 44.0ns 48.0ns
V1(Vck)
Time
Durata interval
Prin intrare Parametru constrangere
[ns]
SETUP_TIME_LH->CK 0.3ns
SETUP_TIME_HL->CK 0.4ns
K
HOLD_TIME_LH->CK 0.3ns
HOLD_TIME_HL->CK 0.4ns
MINPW_HIGH
CK
MINPW_LOW
Partea II - VHDL
Denumirea circuitului: decodor binar
Descriere: Decodorul identifică un cod de intrare de width biţi de la
portul de intrare A, activând o ieşire din cele 2width ale portului de ieşire B, în
conformitate cu valoarea cuvântului de la intrare.
Porturile circuitului
Descrierea funcţionării
Cerinţe:
3 • modelarea comportamentală în VHDL a circuitului.
4 • realizarea unui program de test pentru width=4.
Declaratia de entitate pentru decodor:
-- decodor binar
library ieee;
use ieee.std_logic_1164.all;
entity decodor is
port(A: in std_logic_vector(3 downto 0);
B:out std_logic_vector(15 downto 0));
end decodor;
--decodor testbench
library ieee;
use ieee.std_logic_1164.all;
entity decodortest is
end decodortest;
begin
UnitUnderTest: decodor port map (A, B);
process
begin
A<="0000";
wait for 5 ns;
A<="0110";
wait for 5 ns;
A<="1001";
wait for 5 ns;
A<="1101";
wait for 5 ns;
A<="0100";
wait for 5 ns;
A<="0001";
wait for 5 ns;
A<="1111";
wait for 5 ns;
A<="1100";
wait for 5 ns;
A<="1011";
wait for 5 ns;
A<="1010";
wait for 5 ns;
A<="1000";
wait for 5 ns;
A<="0111";
wait for 5 ns;
A<="0101";
wait for 5 ns;
A<="0011";
wait for 5 ns;
A<="0010";
wait for 5 ns;
A<="1110";
wait for 5 ns;
end process;
end testbench;