ЛАБОРАТОРНАЯ РАБОТА # 12 (4 часа)
ИССЛЕДОВАНИЕ РАЗНЫХ ЛОГИЧЕСКИХ ВЕНТИЛЕЙ (CML gates)
Цель работы
Исследование характеристик и параметров логических элементов CML И-НЕ и ИЛИ-НЕ с помощью программного средства схемотехнического моделирования HSpice и оценка значений последних вычислительными способами.
Лабораторные задания
2.1. (NAND02 gate) схема и входные файлы логических элементов CML И-НЕ.
2.1.1. Составить схему логического элемента И-НЕ с тремя входами, используя данные из таблицы 2 в размерах, приведенных в таблице 1 (Рис.1):
Рис. 7.1. Условный знак, электрическая схема и виды входного и выходного сигналов логического элемента
Таблица 7.1. Размеры транзисторов
Транзистор | W | L |
мкм | мкм | |
MP1 | 0.40 | |
MP2 | 0.40 | |
MN1 | 0.38 | |
MNA1 | 1.9 | 0.38 |
MNA2 | 0.38 | |
MNB1 | 1.2 | 0.38 |
MNB2 | 1.2 | 0.38 |
2.1.2. Получить описание схемы (nand02_cml.netl файл) и расположить его по следующему адресу:
/student_lab/digital_ic/variant_val/...
2.1.3. Необходимые входные файлы для моделирования.
Для входных файлов принять:
· Продолжительность входного фронта: 50 псек
· Значение выходной емкостной нагрузки: Cload=5 фФ
2.1.3.1. Необходимый входной файл для логического элемента CML И-НЕ, используемый для измерения задержек и времени переключения при статическом режиме с применением программного средства схемотехнического моделирования HSpice, следующий:
*CML NAND02 Gate
*Propagation Delay, Transition Time
* HSPICE Netlist
.options POST=1 parhier=local
* Models section
* Include models
.include '/student_lab/digital_ic/all_models/model_val'
* Design variables section
* Define parameters
.param vdd = VDD_val
.param tr=TR_val
.param freq=FREQ_val
.param per=’1/freq’
.param tst=’0.5*per’
.temp Temp_val
* Structural netlist section
.include '/student_lab/digital_ic/variant_val/nand02_cml.netl'
vvss vss gnd dc=0
vvdd vdd gnd dc='vdd'
***Input Signals
va ina 0 pulse (vdd 0 'tst+1.0*per' tr tr '0.5*per-tr' '2.0*per')
va2 inan 0 pulse (0 vdd 'tst+1.0*per' tr tr '0.5*per-tr' '2.0*per')
vb inb 0 pulse (vdd 0 'tst+2.0*per' tr tr '0.5*per-tr' '2.0*per')
vb2 inbn 0 pulse (0 vdd 'tst+2.0*per' tr tr '0.5*per-tr' '2.0*per')
vrfp rfp 0 rfp
vrfn rfn 0 rfn
cloadcml_out1 cml_out1 0 LOAD_val
cloadcml_out2 cml_out2 0 LOAD_val
* Analysis section
* Transient Analyses
.tran ‘0.01*tr’ ‘5*per’
.probe v(*)
*Options
.option post probe
.option autostop
***Measures
***Propagation Delay
.meas tran tplh_ina_cml_out1 trig v(ina) val='0.5*vdd' fall=1 targ v(cml_out1) val='0.5*vdd' rise=1
.meas tran tphl_ina_cml_out1 trig v(ina) val='0.5*vdd' rise=1 targ v(cml_out1) val='0.5*vdd' fall=1
.meas tran tplh_inb_cml_out1 trig v(inb) val='0.5*vdd' fall=1 targ v(cml_out1) val='0.5*vdd' rise=2
.meas tran tphl_inb_cml_out1 trig v(inb) val='0.5*vdd' rise=1 targ v(cml_out1) val='0.5*vdd' fall=2
.meas tran tplh_ina_cml_out2 trig v(ina) val='0.5*vdd' rise=1 targ v(cml_out2) val='0.5*vdd' rise=1
.meas tran tphl_ina_cml_out2 trig v(ina) val='0.5*vdd' fall=1 targ v(cml_out2) val='0.5*vdd' fall=1
.meas tran tplh_inb_cml_out2 trig v(inb) val='0.5*vdd' rise=1 targ v(cml_out2) val='0.5*vdd' rise=2
.meas tran tphl_inb_cml_out2 trig v(inb) val='0.5*vdd' fall=1 targ v(cml_out2) val='0.5*vdd' fall=2
***Transition Time
.meas tran ttlh_ina_cml_out1 trig v(cml_out1) val='0.3*vdd' rise=1 targ v(cml_out1) val='0.7*vdd' rise=1
.meas tran tthl_ina_cml_out1 trig v(cml_out1) val='0.7*vdd' fall=1 targ v(cml_out1) val='0.3*vdd' fall=1
.meas tran ttlh_inb_cml_out1 trig v(cml_out1) val='0.3*vdd' rise=2 targ v(cml_out1) val='0.7*vdd' rise=2
.meas tran tthl_inb_cml_out1 trig v(cml_out1) val='0.7*vdd' fall=2 targ v(cml_out1) val='0.3*vdd' fall=2
.meas tran ttlh_ina_cml_out2 trig v(cml_out2) val='0.3*vdd' rise=1 targ v(cml_out2) val='0.7*vdd' rise=1
.meas tran tthl_ina_cml_out2 trig v(cml_out2) val='0.7*vdd' fall=1 targ v(cml_out2) val='0.3*vdd' fall=1
.meas tran ttlh_inb_cml_out2 trig v(cml_out2) val='0.3*vdd' rise=2 targ v(cml_out2) val='0.7*vdd' rise=2
.meas tran tthl_inb_cml_out2 trig v(cml_out2) val='0.7*vdd' fall=2 targ v(cml_out2) val='0.3*vdd' fall=2
.end
2.2. (CML MUX21) схема и входные файлы мультиплексора 2-1.
2.2.1. Составить схему CML мультиплексора 2-1 с тремя входами, используя данные из таблицы 3 в размерах, приведенных в таблице 2. (Рис.2):
Рис. 7.2. Условный знак, электрическая схема и виды входного и выходного сигналов CML мультиплексора 2-1
Таблица 7.2. Размеры транзисторов
Транзистор | W | L |
мкм | мкм | |
MP1 | 0.40 | |
MP2 | 0.40 | |
MN1 | 0.38 | |
MND0 | 1.5 | 0.38 |
MND0N | 1.5 | 0.38 |
MND1 | 1.5 | 0.38 |
MND1N | 1.5 | 0.38 |
MNS | 2.0 | 0.38 |
MNSN | 2.0 | 0.38 |
2.2.2. Получить описание схемы (nor02_cml.netl файл) и расположить его по следующему адресу:
/student_lab/digital_ic/variant_val/...
2.2.3. Необходимые входные файлы для моделирования.
Для входных файлов принять:
· Продолжительность входного фронта: 50 псек
· Значение выходной емкостной нагрузки: Cload=5 фФ
2.2.3.1. Необходимый входной файл для CML мультиплексора 2-1, используемый для измерения задержек и времени переключения при статическом режиме с применением программного средства схемотехнического моделирования HSpice, следующий:
*CML MUX 21 *Propagation Delay, Transition Time * HSPICE Netlist .options POST=1 parhier=local * Models section * Include models .include '/student_lab/digital_ic/all_models/model_val' * Design variables section * Define parameters .param vdd = VDD_val .param tr=TR_val .param freq=FREQ_val .param per=’1/freq’ .param tst=’0.5*per’ .temp Temp_val * Structural netlist section .include '/student_lab/digital_ic/variant_val/dshrg4.netl' vvss vss gnd dc=0 vvdd vdd gnd dc='vdd' ***Input Signals vd0 d0 0 pulse (0 vdd 'tst+0.0*per' tr tr '0.5*per-tr' '3.0*per') vd0n d0n 0 pulse (vdd 0 'tst+0.0*per' tr tr '0.5*per-tr' '3.0*per') vd1 d1 0 pulse (vdd 0 'tst+1.5*per' tr tr '0.5*per-tr' '3.0*per') vd1n d1n 0 pulse (0 vdd 'tst+1.5*per' tr tr '0.5*per-tr' '3.0*per') vs s 0 pulse (0 vdd 'tst+1.0*per' tr tr '1.5*per-tr' '3.0*per') vsn sn 0 pulse (vdd 0 'tst+1.0*per' tr tr '1.5*per-tr' '3.0*per') vrfp rfp 0 rfp vrfn rfn 0 rfn cloadcml_out1 cml_out1 0 LOAD_val cloadcml_out2 cml_out2 0 LOAD_val * Analysis section * Transient Analyses .tran ‘0.01*tr’ ‘5*per’ .probe v(*) *Options .option post probe .option autostop ***Measures ***Propagation Delay .meas tran tplh_d0_cml_out1 trig v(d0) val='0.5*vdd' rise=1 targ v(cml_out1) val='0.5*vdd' rise=1 .meas tran tphl_d0_cml_out1 trig v(d0) val='0.5*vdd' fall=1 targ v(cml_out1) val='0.5*vdd' fall=1 .meas tran tplh_d1_cml_out1 trig v(d1) val='0.5*vdd' rise=1 targ v(cml_out1) val='0.5*vdd' rise=3 .meas tran tphl_d1_cml_out1 trig v(d1) val='0.5*vdd' fall=1 targ v(cml_out1) val='0.5*vdd' fall=2 .meas tran tplh_s_cml_out1 trig v(s) val='0.5*vdd' rise=1 targ v(cml_out1) val='0.5*vdd' rise=2 .meas tran tphl_s_cml_out1 trig v(s) val='0.5*vdd' fall=1 targ v(cml_out1) val='0.5*vdd' fall=3 .meas tran tphl_d0_cml_out2 trig v(d0) val='0.5*vdd' rise=1 targ v(cml_out2) val='0.5*vdd' fall=1 .meas tran tplh_d0_cml_out2 trig v(d0) val='0.5*vdd' fall=1 targ v(cml_out2) val='0.5*vdd' rise=1 .meas tran tphl_d1_cml_out2 trig v(d1) val='0.5*vdd' rise=1 targ v(cml_out2) val='0.5*vdd' fall=3 .meas tran tplh_d1_cml_out2 trig v(d1) val='0.5*vdd' fall=1 targ v(cml_out2) val='0.5*vdd' rise=2 .meas tran tphl_s_cml_out2 trig v(s) val='0.5*vdd' rise=1 targ v(cml_out2) val='0.5*vdd' fall=2 .meas tran tplh_s_cml_out2 trig v(s) val='0.5*vdd' fall=1 targ v(cml_out2) val='0.5*vdd' rise=3 ***Transition Time .meas tran ttrlh_d0_cml_out1 trig v(cml_out1) val='0.3*vdd' rise=1 targ v(cml_out1) val='0.7*vdd' rise=1 .meas tran ttrhl_d0_cml_out1 trig v(cml_out1) val='0.7*vdd' fall=1 targ v(cml_out1) val='0.3*vdd' fall=1 .meas tran ttrlh_d1_cml_out1 trig v(cml_out1) val='0.3*vdd' rise=3 targ v(cml_out1) val='0.7*vdd' rise=3 .meas tran ttrhl_d1_cml_out1 trig v(cml_out1) val='0.7*vdd' fall=2 targ v(cml_out1) val='0.3*vdd' fall=2 .meas tran ttrlh_s_cml_out1 trig v(cml_out1) val='0.3*vdd' rise=2 targ v(cml_out1) val='0.7*vdd' rise=2 .meas tran ttrhl_s_cml_out1 trig v(cml_out1) val='0.7*vdd' fall=3 targ v(cml_out1) val='0.3*vdd' fall=3 .meas tran ttrhl_d0_cml_out2 trig v(cml_out2) val='0.7*vdd' fall=1 targ v(cml_out2) val='0.3*vdd' fall=1 .meas tran ttrlh_d0_cml_out2 trig v(cml_out2) val='0.3*vdd' rise=1 targ v(cml_out2) val='0.7*vdd' rise=1 .meas tran ttrhl_d1_cml_out2 trig v(cml_out2) val='0.7*vdd' fall=3 targ v(cml_out2) val='0.3*vdd' fall=3 .meas tran ttrlh_d1_cml_out2 trig v(cml_out2) val='0.3*vdd' rise=2 targ v(cml_out2) val='0.7*vdd' rise=2 .meas tran ttrhl_s_cml_out2 trig v(cml_out2) val='0.7*vdd' fall=2 targ v(cml_out2) val='0.3*vdd' fall=2 .meas tran ttrlh_s_cml_out2 trig v(cml_out2) val='0.3*vdd' rise=3 targ v(cml_out2) val='0.7*vdd' rise=3 .end |
Порядок выполнения работы
3.1. Исследование параметров и характеристик логического элемента CML И-НЕ с двумя входами с помощью моделирования.
3.1.1. При переходном режиме -
а) Получить виды входного и выходного сигналов, при:
1. LOAD_val = 0
2. LOAD_val = CLoad
б) Измерить задержки tPHL и tPLH и определить их среднее значение (tP=tPHL+tPLH/2) (Таблица 9, пункт 3,4), при:
1. LOAD_val = 0
2. LOAD_val = CLoad
в) Измерить времена передачи tTHL, tTLH, и определить их средние значения (tT=tTHL+ tTLH /2) (Таблица 9, пункт 1,2), при:
1. LOAD_val = 0
2. LOAD_val = CLoad
3.2. Исследование параметров и характеристик CML мультиплексора 2-1 с помощью моделирования.
3.2.1. При переходном режиме -
а) Получить виды входного и выходного сигналов, при:
1. LOAD_val = 0
2. LOAD_val = CLoad
б) Измерить задержки tPHL и tPLH и определить их среднее значение (tP=tPHL+tPLH/2) (Таблица 9, пункт 3,4), при:
1. LOAD_val = 0
2. LOAD_val = CLoad
в) Измерить времена передачи tTHL, tTLH, и определить их средние значения (tT=tTHL+ tTLH /2) (Таблица 9, пункт 1,2), при:
1. LOAD_val = 0
2. LOAD_val = CLoad
3.2.2. При переходном режиме –
а) Получить виды входного и выходного сигналов.
б) Измерить задержки tpHL, tpLH и их среднее значение (tP=tPHL+ tPLH /2) (Таблица 9, пункт 3,4).