Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Генераторы цифровых сигналов
Генераторы цифровых сигналов можно задать двумя способами. 1. Определение формы цифрового сигнала в задании на моделирование по формату (устройства STIM): Uxxx STIM(< количество сигналов>, < формат>) + < +узел источника питания> < -узел источника питания> + < список узлов> * < имя модели вход/выход> + [IO_LEVEL-< номер макромодели интерфейса вход/выход> ] + [ STIMULUS =< имя воздействия> ] [TIMESTEP=< шаг по времени> ] + < команды описания формы сигнала> * Переменная < количество сигналов> определяет количество выходов генератора, равное количеству генерируемых разных цифровых сигналов. Переменная < формат> - это спецификация формата переменной < данные>, в которой представлены логические уровни сигналов генератора. Эта переменная представляет собой последовательность цифр, общее число которых равно значению переменной < количество сигналов>. Каждая цифра принимает значения 1, 3 или 4, что означает двоичную, восьмеричную и шестнадцатеричную систему счисления. Подключение источника питания задается номерами узлов < + узел источника питания>, < -узел источника питания>. Номера подключения выходов генератора к схеме задаются < списком узлов>. Имя модели вход/выход задается параметром < имя модели вход/ выход>, как для любого цифрового устройства. STIMULUS - необязательный параметр, обозначающий имя сигнала; IO_LEVEL - необязательный параметр для выбора одной из четырех макромоделей интерфейса вход/выход (по умолчанию 0); TIMESTEP - не обязательный параметр для задания периода квантования (или шага). При задании моментов времени номером шага (имеют суффикс «С») он умножается на величину шага. По умолчанию устанавливается TIMESTEP=0. Этот параметр не принимается во внимание, если заданы абсолютные значения моментов времени (имеют суффикс «S»). Параметр < описание формы- сигнала> представляет собой произвольную комбинацию одной или нескольких следующих строк: < t>, < логический уровень> LABEL=< UMH метки> < t> GOTO < имя'#етки> < п> TIMES < t> GOTO < имя метки> UNTIL GT < данные> < t> GOTO < имя метки> UNTIL GE < данные> < t> GOTO < имя метки> UNTIL LT < данные> < t> GOTO < имя метки> UNTIL LE < данные> < t> INCR BY < данные> < t> DECR BY < данные> REPEAT FOREVER REPEAT < n> TIMES ENDREPEAT FILЕ=< имя файла> Каждая цифра переменной < данные> представляет собой логический уровень соответствующего выходного сигнала, который представлен в системе счисления 2т, где т - соответствующая цифра переменной < формат>. Количество узлов в < списке узлов> должно быть равно значению переменной < количество сигналов>. Переменная < t> определяет моменты времени, в которые задаются логические уровни сигнала. Если перед значением переменной < t> имеется символ «+», то эта переменная задает приращение относительно предыдущего момента времени; в противном случае она определяет абсолютное значение относительно начала отсчета времени t = 0. Суффикс «S» указывает размерность времени в секундах (допускается суффикс «nS» - наносекунды и т.п.). Суффикс «С» означает измерение времени в количестве циклов, размер которых определяется параметром TIMESTEP (переменная < шаг по времени>). Переменная < данные> состоит из символов «0», «1», «X», «R», «F» или «Z», интерпретируемых в заданном формате. Переменная < п> задает количество повторяющихся циклов GOTO; значение п = -1 задает бесконечное повторение цикла. Переменная < имя метки> используется при организации цикла с помощью оператора перехода GOTO, который передает управление на строку, следующую за оператором LABEL=< имя метки>. REPEAT FOREVER - начало бесконечно повторяющегося цикла (эквивалентно конструкции REPEAT -1 TIMES). REPEAT < n> TIMES - повторение п раз. ENDREPEAT - - конец цикла REPEAT. FILE - указание имени файла, в котором находится описание одного или нескольких входных сигналов. Приведем пример: USIGNAL STIM(2, 11) $G_DPWR $G_DGND 1 2 IO_STM TIMESTEP=1ns + ОС 00; В момент времени t=0 состояния обоих узлов равны «О» + LABEL=M + 1C 01; При t=1 не состояние узла 1 равно «0», узла 2 - «1» + 2С 11; При t=2 не состояние обоих узлов равны «1» + ЗС GOTO M 3 TIMES; В момент времени t=3 не переход на метку М и выполняется + первая инструкция без дополнительной задержки. Цикл повторяется 3 раза 2. Считывание временной диаграммы цифрового сигнала из файла (устройства FSTIM). Устройства FSTIM задаются по формату: Uxxx FSTIM(< количество выходов>) < +узел источника питания> + < -узел источника питания> < список узлов> * + < имя модели вход/выход> FIL Е=< имя файла сигналов> + [IO_LEVEL=< ножер макромодели интерфейса вход/выход> ] + [SIGNАМЕS=< имя воздействия> ] Параметр < количество выходов> определяет количество узлов, к которым подключаются сигналы. Остальные параметры имеют тот же смысл, что в п. 1. Обратим внимание, что задание с помощью параметра FILE имени файла, в котором описаны сигналы, обязательно. Файл цифрового сигнала может быть получен путем редактирования файла результатов моделирования или составлен вручную с помощью любого текстового редактора. Файл цифрового сигнала имеет две секции:
Приведем сначала пример файла цифровых сигналов:
*Начало описания сигналов; отделяется от заголовка пустой строкой 0 0000; двоичные коды сигналов 10ns 1100 20ns 0101 30ns 1110 40ns 0111 Заголовок имеет следующий формат: Переменная < имя метки> используется при организации цикла с помощью оператора перехода GOTO, который передает управление на строку, следующую за оператором LAEEL=< uмя метки>. REPEAT FOREVER - начало бесконечно повторяющегося цикла (эквивалентно конструкции REPEAT -1 TIMES). REPEAT < n> TIMES - повторение п раз. ENDREPEAT - конец цикла REPEAT. FILE - указание имени файла, в котором находится описание одного или нескольких входных сигналов. Приведем пример: USIGNAL STIM(2, 11) $G_DPWR $G_DGND 1 2 IO_STM TIMESTEP=1ns + ОС 00; В момент времени t=0 состояния обоих узлов равны «О» + LABEL=M + 1C 01; При t=1 не состояние узла 1 равно «О», узла 2 - «1» + 2С 11; При t=2 не состояние обоих узлов равны «1» + ЗС GOTO M 3 TIMES; В момент времени t=3 не переход на метку М и выполняется + первая инструкция без дополнительной задержки. Цикл повторяется 3 раза 2. Считывание временной диаграммы цифрового сигнала из файла (устройства FSTIM). Устройства FSTIM задаются по формату: Uxxx FSTIM(< количество выходов>) < +узел источника питания> + < -узел источника питания> < список узлов> * + < имя модели вход/выход> FILЕ=< имя файла сигналов> + [IO_LEVEL=< номер макромодели интерфейса вход/выход> ] + [ SIGN AMES =< имя воздействия> ] Параметр < количество выходов> определяет количество узлов, к которым подключаются сигналы. Остальные параметры имеют тот же смысл, что в п. 1. Обратим внимание, что задание с помощью параметра FILE имени файла, в котором описаны сигналы, обязательно. Файл цифрового сигнала может быть получен путем редактирования файла результатов моделирования или составлен вручную с помощью любого текстового редактора. Файл цифрового сигнала имеет две секции:
Приведем сначала пример файла цифровых сигналов:
*Начало описания сигналов; отделяется от заголовка пустой строкой 0 0000; двоичные коды сигналов 10ns 1100 20ns 0101 30ns 1110 40ns 0111 Заголовок имеет следующий формат: [ТIМЕSСАLЕ=< значение> ] < имя сигнала 1>...< имя сигнала п>... ОСТ(< 3-й бит сигнала>...< 1-й бит сигнала>)... НЕХ(< 4-й бит сигнала>...< 1-й бит сигнала> }... Имена сигналов могут разделяться запятыми или пробелами. Они располагаются на одной или нескольких строках, но строки продолжения не имеют в начале знака «+». Максимальное количество сигналов 255, на одной строке могут размещаться не более 300 символов. Имена сигналов перечисляются в том же порядке, в котором их значения приводятся во временных диаграммах. Если перед именем сигнала не указывается название системы счисления, он считается двоичным. Имена сигналов, записанных в восьмеричном коде, предваряются кодом ОСТ и группируются по 3 сигнала (имена групп сигналов заключаются в круглые скобки). Имена шестнадцатеричных сигналов имеют код HEX и группируются по 4 сигнала. Приведем еще один пример файла сигналов: Clock Reset In1 In2 HEX(Addr7 Addr6 Addr5 Addr4) HEX(Addr3 Addr2 Addrl Addr0) ReadWrite 0 0000 00 0; для наглядности между группами можно включать пробелы 10п 1100 4Е 0 20п 0101 4Е 1 ЗОп 1110 4Е 1 40п 0111 FF 0 Здесь сначала приведены имена четырех двоичных сигналов, затем две группы сигналов, задаваемых в шестнадцатеричном виде, и затем еще один бинарный сигнал. В последующем списке значений сигналов даны 7 колонок, соответствующих приведенным в заголовке сигналам. Список значений имеет формат: < время> < значение сигнала> * Список значений отделяется от заголовка пустой строкой. Моменты времени и список значений сигналов должны быть разделены по крайней мере одним пробелом. Для моментов времени изменений сигналов указываются их абсолютные значения (в секундах), например 25ns, 1.2E-9, 5.8 или приращение относительно предыдущего момента времени. Признак приращения - знак «+» перед значением момента времени, например +5ns. Каждое значение сигнала соответствует одиночному бинарному сигналу или группе сигналов, имена которых помещены в группы с указателями системы счисления ОСТ или HEX. Общее количество значащих цифр в значениях сигналов должно быть равно общему количеству бинарных сигналов и групп сигналов, помеченных символами ОСТ и HEX. Разряды данных сигнала могут принимать значения, приведенные в табл. 4.29. Таблица 4.29. Значения сигналов
Заметим, что задний фронт не может в шестнадцатеричной системе обозначаться как F, потому что этот символ занят под численное значение. Приведем примеры генераторов цифровых сигналов типа FSTIM. 1. Пусть имеется файл digl.stm, в котором описана временная диаграмма сигнала IN1. Тогда в задание на моделирование можно включить следующее описание генератора: U1 FSTIM(1) $G_DPWR $G_DGND IN1 IO_STM virtual=DIG1.STM 2. Пусть имеется файл flipflop.stm следующего содержания: J К PRESET CLEAR CLOCK 0 0 0 010 10ns 0 0 111 В задание на моделирование включим описание генератора сигнала U2 FSTIM(4) $G_DPWR $G_DGND CLK PRE J К IO_STM + virtual=flipflop.stm SIGNAMES = CLOCK PRESET В этом примере первым двум узлам CLK и PRE соответствуют сигналы CLOCK и PRESET из файла сигналов, это соответствие устанавливается с помощью опции SIGNAMES. Последним узлам J и К соответствуют одноименные сигналы из файла сигналов, поэтому их имена нет необходимости включать в опцию SIGNAMES. Сигнал CLEAR в данном примере не используется (но на него можно сослаться в другом генераторе FSTIM).
|