Моделирование дискретных устройств в системе PCAD. Асинхронное троичное моделирование дискретных устройств, позволяющее проверять правильность функционирования устройств, страница 8

Файл, содержащий описание поведенческой модели, состоит из двух частей: заголовка и списка предложений и имеет расширение .PML.

В языке PML алфавит – латинский, но комментарии можно писать русскими буквами. Формат свободный, большие и малые буквы воспринимаются одинаково. Ниже приводятся основные конструкции языка PML.

1.2.1. Специальные символы

, – разделитель,

; – конец предложения,

/* – начало комментария,

*/ – конец комментария,

{,} – фигурные скобки (для объединения двух и более предложений в список) – операторные скобки типа begin – end,

"0" – логический 0,

"1" – логическая 1,

"Х" – логически неопределенное состояние Х,

"/" – фронт сигнала (переход из состояния "0" или "X" в состояние "1"),

"\" – срез сигнала (переход из состояния "1" или "X" в состояние "0").

Символы "/" и "\" можно применять для входных, двунаправленных и внутренних узлов.

Для описания времени задержки и типа логического сигнала используется специальная запись PCL–атрибут, имеющая следующий формат:

PCL=(R,F,Dh,Dl)  (Подробнее см. выше).

1.2.2. Переменные

Переменные языка PML – это имена узлов и шин.

Узел – это входной, выходной или двунаправленный вывод примитива, а также некоторая фиктивная внутренняя точка примитива (внутренний узел), которая применяется для упрощения записи функций, выполняемых примитивом. Каждый узел должен иметь имя. Имена узлов указываются в соответствующих списках заголовка файла (INPUT, OUTPUT, INOUT, LOCAL). Над узлами определены операции: ~, &, |, ^, ==, != (обозначения операций см. ниже).

Шина – это фиктивное объединение (конкатенация) узлов. Шина обозначается именем или списком входящих в нее узлов, разделенных запятыми и заключенных в прямые скобки, например, [A1,A2,...An]. Количество узлов в списке не более 31. Первым в списке указывается старший разряд, последним – младший разряд. Отдельный k–ый разряд шины имеет обозначение <имя шины>[k]. Имя шины должно быть указано в заголовке файла в списке LOCAL. В других списках его запись не допускается. Кроме операций, указанных для узлов, над шинами определены также операции: + – конкатенация, <<, >> – сдвиг влево, вправо, ==, !=, >, <, >=, <= (обозначения см. ниже), которые выполняются над числами, представляющими состояния разрядов шины.

Имена узлов и шин могут содержать до 8 алфавитноцифровых символов и не должны разделяться пробелами.

В подсистеме моделирования системы PCAD программа PCLOGS, реализует асинхронное троичное моделирование дискретных устройств, поэтому каждый узел, включая и отдельные узлы шины, может находиться в одном из трех состояний: логический ноль – "0", логическая единица – "1" и логически неопределенное состояние "X" (возможно "0", возможно "1").

1.2.3. Константы

Константа всегда заключается в двойные кавычки " " и может быть записана в виде числа:

"255" – десятичная константа,

"0ХC8F" – шестнадцатеричная константа,

"0255" – восьмеричная константа (префикс 0 обязателен),

"0B101101" – двоичная константа, или в виде отдельных символов:

"s", "S", "d", "D", "z", "Z", "r", "R", "0", "1", "X", "/", "\".

1.2.4. Операторы

Вот операторы языка PML в порядке понижения их приоритета:

( ) – скобки,

~ – инверсия,

+ – конкатенация,

<<, >> – сдвиг влево или вправо,

& – булевское И (логическое умножение),

| – булевское ИЛИ (логическое сложение),

^ – булевское исключающее ИЛИ,

<, <=, >, >=, ==, != – операторы отношения (меньше, меньше или равно, больше, больше или равно, равно, не равно),

&& – операция логического условия "И",