Текстовой PML-файл, содержащий функциональное описание цифровой схемы, должен быть преобразован в двоичный файл с помощью программы PCMODEL. Как и любая другая программа системы PCAD, она может быть вызвана двояко: с помощью управляющей оболочки Shell (режим Simulation/Behavioral Modeling) или непосредственно командой:
>pcmodel.
В любом случае после вызова программы на экране дисплея появятся запросы на ввод имени текстового PML-файла и объектного выходного файла:
PML Model Filename: (Filename) .PML
Object Model Filename: (Filename) .MDL.
После ввода имени текстового файла расширение .PML можно не вводить. По умолчанию объектному файлу присваивается то же имя, что и текстовому файлу, и расширение .MDL. При этом необходимо проследить, чтобы объектному файлу было присвоено то же имя, которое указано в атрибуте MDL при создании символического изображения микросхемы. Программа PRESIM прочтет содержимое этого атрибута и подключит соответствующий объектный файл к логическому описанию моделируемого цифрового устрой-ства.
В заключение в качестве примера приведем описание двоично-десятичного четырехразрядного счетчика 133ИЕ2, графическое изображение которого показано на рис. 4.4:
133IЕ2( )
INPUT S1, S2, R1, R2, C1, C2;
OUTPUT Q1 (100, 100, «D», «D»), Q2 (100, 100, «D», «D»),
Q3 (100, 100, «D», «D»), Q4 (100, 100, «D», «D»);
{IF (R1 = = «1»&&R2= = «1») & (S1 = = «0») ¦ ¦ S2 = = «0»)
{Q1=«0»; Q2 = «0»; Q3 = «0»; Q4=«0»;};
IF(S1 = =«1»&&S2= = «1»)
{Q1 = «l»; Q2 = «0»; Q3 = «0»; Q4 = «1»;};
IF (R1 = = «0» ¦ ¦ R2 = = «0»)&(S1 = = «0» ¦ ¦ S2 = = «0»)
{IF(C1 = = « »)
{IF(Q1 = =«0»)
{Q1=«l»;}
IF(Q1 = = «1»)
{Q1 = «0»;}};
IF(C2 == « »)
{IF([Q2, Q3, Q4] = = «0b000»)
{Q2 = «1»; Q3 = «0»; Q4 = «0»;}
IF([Q2, Q3, Q4] = = «0b100»)
{Q2 = «0»; Q3 = «1»; Q4 = «0»;}
IF([Q2, Q3, Q4] = «0b010»)
{Q2 = «l»; Q3 = «l»; Q4 = «0»;}
IF([Q2, Q3, Q4] = = «0b110»)
{Q2 = «0»; Q3 = «0»; Q4=«1»;}
IF([Q2, Q3, Q4] = = «0b001»)
{Q2 = «0»; Q3 = «0»; Q4 = «0»;}}};}.
Двоично-десятичный счетчик состоит из делителя на 2 (вход С1, выход Q1) и делителя на 5 (вход С2, выходы Q2, Q3, Q4). Для образования десятичного счетчика выводы Q1 и С2 соединяются. Нетактируемая установка нуля осуществляется подачей сигнала «1» на оба входа R1, R2 и «0» на один из входов S1, S2, а установка значения девять – подачей «1» на оба входа S1, S2. Во время счета хотя бы на один из каждой пары входов R1, R2 и S1, S2 должен быть подан «0».