- •Аннотация
- •1.2. Программные модули
- •2.1. Способы описания проектов бис.
- •Техническое задание
- •2.2. Подготовка описания тестовых воздействий для моделирования работы бис.
- •2.3. Этапы отладки проекта плис
- •3.1. Графический ввод и редактирование схемы
- •3.2 Ввод и редактирование тестов
- •3.3. Программа моделирование
- •3.4 Программатор плис.
- •4. Проектирование плис в базисе примитивов.
- •4.1. Мультиплексор Мультиплексор представляют собой логическую схему,имеющуюnсигнальных входов,mвходов адреса и один выходQ.
- •4.2. Шифратор Шифратор представляют собой логическую схему, имеющую nвходов иmвыходов
- •4.3. Демультиплексор Демультиплексор представляют собой логическую схему, имеющую один информационный вход, mвходов адреса иnвыходов.
- •Обычно выполняется соотношение
- •4.5. Сумматоры
- •Выходами одноразрядного сумматора являются выход суммы текущего разряда (s) и выход переноса в следующий разряд (p).
- •4.6. Вычитатели
- •Выходами одноразрядного вычитателя являются выход разности текущего разряда (r) и выход заёма в старшем разряде (z).
- •4.7. Асинхронные счетчики.
- •4.8. Синхронные счетчики
- •4.9. Последовательные сумматоры и вычитатели.
- •4.10. Дешифратор Дешифратор представляют собой логическую схему, имеющую nвходов иmвыходов
- •5. Проектирование плис с использованием lpm модулей
- •5.1 Lpm модуль счетчика
- •5.2 Lpm модуль сдвигового регистра.
- •5.3 Lpm модуль пзу.
- •6. Описание работы схем на поведенческом языке ahdl.
- •6.1. Введение в язык ahdl
- •В языке ahdl допускается числа следующих типов.
- •Выражения
- •6.2. Структура текстового описания бис на языке ahdl
- •6.3. Основные элементы языка.
- •6.3.1 Булевы уравнения, группы.
- •In0, in21, in3 : input;
- •In_f, in_s, in_t : input;
- •If in_f then
- •In[2..0] : input;
- •6.3.3 Проектирование на языке ahdl с помощью таблиц истинности.
- •In[2..0] : input;
- •6.3.4 Операторы If Generate, For Generate
- •Else generate
- •Variable
- •6.3.5. Проектирование на языке ahdl с использованием примитивов.
- •Оператор непосредственного обращения к примитиву имеет следующий вид:
- •Variable
- •7.5. Сумматоры
- •Subdesign suma
- •Variable
- •7.6. Вычитатели
- •Variable
- •7.7. Шинные формирователи
- •Subdesign shina
- •Variable
- •7.8. Счетчики
- •Variable
- •7.9. Дешифраторы
- •7.10. Компараторы
6.3. Основные элементы языка.
6.3.1 Булевы уравнения, группы.
Комбинационная логика реализуется на языке AHDL с помощью булевых выражений и уравнений, таблиц истинности. Булевы выражения являются набором узлов, чисел, констант и других булевых выражений, разделенных операторами. Булево уравнение устанавливает узел или шину равной величине булевого выражения.
Файл template1.tdf, приведенный ниже, демонстрирует два простых булевых выражения, представляющие два логических вентиля.
SUBDESIGN template1
(
In0, in21, in3 : input;
out1, out2 : OUTPUT;
)
BEGIN
out1 = in0 OR in1;
out2 = out1 & !in3;
END;
В этом файле выход out1 является логическим ИЛИ входов in0 и in1, а выход out2 логическим И out1 и НЕ in3. Следует заметить, что порядок следования их в файле не важен.
В языке AHDL можно определять группы, включающие в свой состав до 256 бит и работающие, как одно целое.
В булевых уравнениях группа может приравниваться булеву выражению, другой группе, единственному узлу, VCC, GND, 1 или 0. В каждом из этих случаев значение группы различно. Оператор Options можно использовать для определения того, каким будет самый младший бит: наиболее значимым битом (MSB) или наименее значимым битом(LSB) или каким-либо другим.
Как только группа определена, скобки [ ] являются коротким способом определения всего диапазона. Например, in0[4..1] можно также указать как in0[]; out0[5..4][3..2] можно представить как out0[][].
Следует заметить, что :
1) Если группа приравнивается к VCC или GND, все биты шины соединяются с этим значением.
2) Если группа приравнивается к 1, только наименее значимый бит шины соединяется со значением VCC. Остальные биты шины соединяются с GND.
3) Если группа приравнивается к другой группе того же самого размера, то каждый член справа приравнивается каждому члену слева в соответствующей позиции.
4) Когда приравниваются группы не одинакового размера, количество битов шины с левой стороны уравнения должно точно делиться на количество битов шины с правой стороны уравнения.
Пример : out[6..3] = in[2..1]. В этом уравнении биты отображаются следующим образом: out6 = in2, out5 = in1, out4 = in2, out3 = in1.
6.3.2 Операторы IF THEN, CASE.
Операторы If Then и Case в основном используются для реализации условной логики. Операторы If Then оценивают одно или несколько булевых выражений и описывают поведение для различных значений выражения. Операторы Case являются списком альтернатив, которые доступны для каждого значения выражения. Они оценивают выражение, а затем выбирают направление действия на основе значения выражения.
Следует помнить, что условную логику, реализуемую с помощью операторов If Then и Case, не следует путать с логикой, создаваемой условно оператором If Generate, так как эта логика не обязательно является условной.
Файл if_then.tdf, демонстрирует приоритетный шифратор, который преобразует уровень активного входа с наивысшим приоритетом в значение с использованием оператора If Then.
SUBDESIGN if_then
(
In_f, in_s, in_t : input;
out[1..0] : OUTPUT;
)
BEGIN
