Конфигурирование плис
А) Через ПК и спец ПО (на стадии разработки)
Б) Через микроконтроллер
В) Через загрузочную память
В оперативно репрограммируемых ИСПС конфигурация задается с помощью загрузки файла в «теневую» триггерную память, т.е. с помощью операций, не требующих каких-либо специальных режимов (загрузка регистров – типичная для цифровых устройств рабочая операция). В противоположность предыдущим вариантам для программирования не нужны ни специальные программаторы, ни повышенные напряжения, ни длительные воздействия на элементы памяти. Память конфигурации – обычная статическая (триггерная), т.е. типа SRAM (Static Random Access Memory). Загрузка памяти производится последовательным потоком би тов или байтов с высокой скоростью. Элементом с программируемой проводимостью (режимом «замкнуто-разомкнуто») служит обычный МОП- транзистор, управляющий триггером памяти конфигурации.
элемент
| название
| комментарий
| //
| комментарий
| Комментируется только одна строка от символа и до конца. Символ ставиться непосредственно перед той фразой, которую нужно закомментировать
| /* text */
| комментарий
| Используется в случае если необходимо закомментировать несколько строк. Текст, который необходимо закомментировать помещается между знаками.
| wire
| цепь
| Величина по умолчанию: z, разрядность по умолчанию: 1 бит. Разрядность может быть увеличена при объявлении цепи как вектора.
wire [31:0] data; //32 битная цепь
Цепи обеспечивают непрерывное модифицирование сигналов на выходах цифровой схемы относительно изменения сигналов на ее входах.
| reg
| регистр
| Величина по умолчанию: z, разрядность по умолчанию: 1 бит. Разрядность может быть увеличена при объявлении регистров как вектора.
reg [3:0] output; // выход 4-разрядного регистра.
Значение регистра должно быть назначено явно. Эта величина сохраняется до тех пор, пока не сделано новое назначение.
| module <name>(<outs>,<ins>);
…
endmodule
| модуль
| Модуль является основным элементом языка. Данная конструкция ограничивает в текстовом пространстве описание модуля.
| input <names>
output <names>
inout <names>
| Входы/выходы
| Операторы, с помощью которых осуществляется объявление линии назначения входа или выхода модуля. Обязательно использование данных операторов при описании модуля.
| *, /, +, -, %
| Бинарные арифметические операторы
| Умножение, деление, сложение, вычитание, определение остатка от деления.
| &&, ||,!
and, or, not
| Логические операторы
| Результат логической операции может принимать значения истинно (true, 1) или ложно (false, 0), а также иметь неопределенное состояние (unknown, x). При выполнении логического оператора все неопределенные величины, как и операнды в третьем состоянии принимаются как имеющие низкий логический уровень (false). В качестве операнда может выступать как переменная (variable), так и логическое выражение (expression).
| >, <, >=, <=.
| Операторы отношения
| К оператора м отношения относятся операторы «больше», «меньше», «больше или равно», «меньше или равно». Результат операции – истина или ложь. Если хотя бы один операнд неопределен, то и результат операции будет неопределен.
| ==,!=, ===,!==.
| Операторы эквивалентности
| К операторам эквивалентности (equality operators) относятся оператор логического равенства (logical equality), неравенства (logical inequality), выборочного равенства (case equality) и неравенства (inequality). Эти операторы сравнивают операнды побитно. Логические операторы возвращают неопределенный результат, если операнд содержит неопределенные биты, в отличие от выборочных операторов. В случае неравной длины операндов, более короткий дополняется нулями.
| ~, &, |, ^, (~^, ^~).
| Поразрядные операторы
| К поразрядным операторам относятся поразрядное отрицание, поразрядные логические И, ИЛИ, исключающее или, исключающее ИЛИ-НЕ. Поразрядные операторы выполняются только над операндами, имеющими одинаковую разрядность. В том случае, если разрядность одного операнда меньше другого, недостающие разряды дополняются нулямиы. Ниже приведен пример использования поразрядных операторов.
| &, ~&, |, ~|, ^, ~^, ^~.
| Операторы приведения
| Операторы приведения – И, ИЛИ, И-НЕ, ИЛИ-НЕ, исключающее или, исключающее ИЛИ-НЕ (два варианта). Они выполняются над многоразрядным операндом пошагово, бит за битом, начиная с двух крайних левых разрядов, выдавая на выходе одноразрядный результат. Очевидно, что такой подход позволяет реализовать проверку на четность (нечетность). Ниже приведены примеры использования операторов приведения.
| >>, <<.
| Операторы сдвига
| Операторы сдвига позволяют осуществить сдвиг операнда как вправо, так и влево.
| {, }
| Конкатенация (объединение)
| Объединение позволяет увеличить разрядность (size) цепей (nets), регистров (registers) и т.д.
| initial
| Инициализация
| Блок инициализации состоит из группы операторов, заключенных в операторные скобки begin... end и которые будут выполняться с момента старта моделирования.
| always
|
| Блок always означает, что действие выполняется непрерывно. При моделировании процесс может быть остановлен директивой $finish or $stop.
| posedge negedge
| Событийный контроль
| При событийном контроле происходит вычисление результата при каждом изменении входных сигналов.
Данными командами задается по какому фронту (по переднему или по заднему) будет осуществляться контроль
| if (conditional_expression) statement{ else statement}
| Оператор if
| Как известно, оператор if (if statement) является оператором услового перехода и выполняется стандартным для языков высокого уровня способом. Условие вычисляется и в зависимости от результата выполняется либо первый оператор, либо второй. Группы операторов в ветви выделяются операторными скобками (как в языке Паскаль) begin... end.
| case …endcase
| Оператор выбора
| Синтаксис:
conditional::== case (condition) case_item+ endcase
case_item::== expression+ (seperated by commas): statement* | default: statement*
| while, for, repeat и forever
| Операторы циклов
| Циклы возможно использовать только внутри блоков initial и always. Основное назначение циклов:
while: выполнение операторов пока условие истинноe
for: в этом цикле возможно инициализировать, проверять и увеличивать индексную переменную явным способом
repeat: цикл с заданным числом повторений
forever: вечный цикл – повторение до конца процесса моделирования
|
Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...
|
Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...
|
Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...
|
Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...
|
Функциональные обязанности медсестры отделения реанимации · Медсестра отделения реанимации обязана осуществлять лечебно-профилактический и гигиенический уход за пациентами...
Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...
Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор,
если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...
|
САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...
Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1].
65. Безопасность при проведении стрельб обеспечивается...
Весы настольные циферблатные Весы настольные циферблатные РН-10Ц13 (рис.3.1) выпускаются с наибольшими пределами взвешивания 2...
|
|