Рис. 34. Схема замещения иерархического символа
Схема замещения, естественно, не отличается от выше приведенных схем замещений. Для элементов К155ЛН1 и К155ЛА4 были разработаны PML-модели, которые приведены ниже. Схема верификации и временная диаграмма результата работы иерархического символа приведены в п. 4.4 и п.4.6 соответственно.
********************** Элемент К155ЛА4 *********************
#la4 source
INPUTS VCC, GND, A2,A1,A0;
OUTPUTS VCC_LD,A2_LD,A1_LD,A0_LD,Q;
INTEGERS tblIndex;
REALS tplh_val, tphl_val, tt_val,ril_val, rih_val, ricc_val;
PWR_GND_PINS(VCC,GND); //set pwr_param and gnd_param values
IO_PAIRS(A2:A2_LD,A1:A1_LD,A0:A0_LD);
IF (init_sim) THEN
BEGIN
tplh_val= (MIN_TYP_MAX(tp_param: NULL, 8.5n,NULL));
tphl_val= (MIN_TYP_MAX(tp_param: NULL,7.5n,NULL));
tt_val= (MIN_TYP_MAX(tt_param: NULL, 1n, NULL));
ril_val= (MIN_TYP_MAX(ld_param: NULL, NULL, 125k));
rih_val= (MIN_TYP_MAX(ld_param: NULL, NULL, 10.5k));
ricc_val= (MIN_TYP_MAX(i_param: NULL, 2500, 1250));
STATE Q=ZERO;
EXIT;
END;
DRIVE Q = (v0=vol_param,v1=voh_param,ttlh=tt_val,tthl=tt_val);
LOAD A2_LD =(v0=vol_param,r0=ril_val,v1=voh_param,r1=rih_val,io=1e9,t=1p);
LOAD A1_LD =(v0=vol_param,r0=ril_val,v1=voh_param,r1=rih_val,io=1e9,t=1p);
LOAD A0_LD =(v0=vol_param,r0=ril_val,v1=voh_param,r1=rih_val,io=1e9,t=1p);
EXT_TABLE tblIndex
A0 A1 A2 Q
0 0 0 H
0 0 1 H
0 1 0 H
0 1 1 H
1 0 0 H
1 0 1 H
1 1 0 H
1 1 1 L;
LOAD VCC_LD = (v0=gnd_param,r0=ricc_val,t=1p);
IF (warn_param) THEN
BEGIN
END;
DELAY Q =
CASE (TRAN_LH) : tplh_val
CASE (TRAN_HL) : tphl_val
END;
EXIT;
******************* Элемент К155ЛН1 *******************
#ln1 source
INPUTS VCC, GND, IN1;
OUTPUTS VCC_LD, IN1_LD, OUT1;
INTEGERS tblIndex;
REALS tplh_val, tphl_val, tt_val,ril_val, rih_val, ricc_val;
PWR_GND_PINS(VCC,GND); //set pwr_param and gnd_param values
IO_PAIRS(IN1:IN1_LD);
IF (init_sim) THEN
BEGIN
tplh_val= (MIN_TYP_MAX(tp_param: NULL, 0.1n, NULL));
tphl_val= (MIN_TYP_MAX(tp_param: NULL,0.1n, NULL));
tt_val= (MIN_TYP_MAX(tt_param: NULL, 0.1n, NULL));
ril_val= (MIN_TYP_MAX(ld_param: NULL, NULL, 125k));
rih_val= (MIN_TYP_MAX(ld_param: NULL, NULL, 10.5k));
ricc_val= (MIN_TYP_MAX(i_param: NULL, 2500, 1250));
STATE OUT1=ZERO;
EXIT;
END;
DRIVE OUT1 = (v0=vol_param,v1=voh_param,ttlh=tt_val,tthl=tt_val);
LOAD IN1_LD =(v0=vol_param,r0=ril_val,v1=voh_param,r1=rih_val,io=1e9,t=1p);
EXT_TABLE tblIndex
IN1 OUT1
0 H
1 L;
LOAD VCC_LD = (v0=gnd_param,r0=ricc_val,t=1p);
IF (warn_param) THEN
BEGIN
END;
DELAY OUT1 =
CASE (TRAN_LH) : tplh_val
CASE (TRAN_HL) : tphl_val
END;
EXIT;
4.2. Условное графическое обозначение узла для PML модели
Рис. 35. УГО узла на основе PML-модели
Рис. 36. УГО узла на основе PML-модели с выводом MDL-атрибутов
Для проверки правильности выполненных операций по созданию элемента, приводятся две секции элемента КР1554ИД14.
4.3. Поведенческая модель на языке PML
************************ КР1554ИД14 **********************
//Директива начала модели
#id14 source
//входы и выходы, указанные в соответствии с атрибутом SimPins
INPUTS VCC, GND, E,A0,A1;
OUTPUTS VCC_LD,E_LD,A0_LD,A1_LD,Q0,Q1,Q2,Q3;
//внутрен. переменная
INTEGERS tblIndex;
//переменные для временных соотношений
REALS tplh_val, tphl_val, tt_val,ril_val, rih_val, ricc_val;
PWR_GND_PINS(VCC,GND); //set pwr_param and gnd_param values
//связывание внутр. переменных и входов
IO_PAIRS(E:E_LD,A0:A0_LD,A1:A1_LD);
IF (init_sim) THEN
BEGIN
//имитация задержек
tplh_val= (MIN_TYP_MAX(tp_param: NULL, 8.5n,NULL));
tphl_val= (MIN_TYP_MAX(tp_param: NULL,7.5n,NULL));
tt_val= (MIN_TYP_MAX(tt_param: NULL, 1n, NULL));
//нагрузочная способность элемента
ril_val= (MIN_TYP_MAX(ld_param: NULL, NULL, 125k));
rih_val= (MIN_TYP_MAX(ld_param: NULL, NULL, 10.5k));
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.