- •Аннотация
- •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. Компараторы
Variable
TRI_A[1..0]:TRI;
TRI_B[1..0]:TRI;
BEGIN
CASE (CS,ADR) IS
WHEN B"11" =>TRI_A[].OE=VCC;
WHEN B"10" =>TRI_B[].OE=VCC;
END CASE;
TRI_A[].IN= (IN2,IN1);
TRI_B[].IN= (DB2,DB1);
(DB2,DB1)= TRI_A[].OUT;
(OUT2,OUT1)= TRI_B[].OUT;
END;
Временная диаграмма работы шинного типичного приёмо-передатчика, представлена на рис 7.7.2.
Рис 7.7.2. Временная диаграмма работы шинного приёмо-передатчика,
7.8. Счетчики
Счетчики являются широко распространёнными электронными узлами, позволяющими организовать подсчёт импульсов. На языке AHDL счетчики наиболее просто построить, используя обращения к примитивам триггеров. Чаше всего используют триггеры типа DFF или DFFE .
Для организации счёта по различным модулям и с различными условиями сброса-установки можно использовать операторы CASE или IF THEN.
Ниже приведен пример счетчика, считающего импульсы от 3 до 12. Переход при счёте от значения 12 до значения 3 организован с помощью оператора CASE.
SUBDESIGN CNT3_15
( CLK :INPUT;
R :INPUT=GND;
Q[4..0]:OUTPUT;
)
Variable
RG[4..0]: DFF;
BEGIN
RG[].CLRN=!R;
RG[].CLK=CLK;
case Q[] IS
WHEN B"01111"=> RG[].D=B"00011";
WHEN OTHERS => RG[].D =RG[].Q+1;
END CASE;
Q[] = RG[].Q;
END;
Временная диаграмма работы счетчика приведена на рис 7.8.
Рис 7.8. Временная диаграмма работы счетчика.
7.9. Дешифраторы
Дешифраторы принадлежат к одним из наиболее распространённых типов узлов цифровой аппаратуры. Дешифратор работает по следующему алгоритму. Из всех выходных шин Qi только одна, номер которой определяется кодом адреса А[m..1], имеет значение, равное 1. Все остальные имеют состояние, равное 0.
На языке дешифраторы удобно реализовывать с помощью оператора CASE, либо с помощью таблицы истинности.
Ниже приведен пример восьмиразрядного дешифратора, реализованного с помощью таблицы истинности:
SUBDESIGN Desh8
( A[2..0] : INPUT;
Dec[7..0] :OUTPUT; )
BEGIN
TABLE
A[] => Dec[];
B"000" => B"00000001";
B"001" => B"00000010";
B"010" => B"00000100";
B"011" => B"00001000";
B"100" => B"00010000";
B"101" => B"00100000";
B"110" => B"01000000";
B"111" => B"10000000";
END TABLE;
END;
Временная диаграмма работы дешифратора приведена на рис 7.9.
Рис 7.9. Временная диаграмма работы дешифратора.
7.10. Компараторы
Компараторы позволяют решать задачу определения отношения между двумя двоичными числами. Отношения могут быть следующих типов: «>», «<», «>=», «<=», «==», «!=». Компараторы работают по сканирующему алгоритму. Они последовательно анализирую одноимённые разряды двух чисел, начиная со старших. При анализе разрядов формируются код сравнения Ki, который может иметь значение «больше», «меньше», «равно» (m, b, r). Если на текущем шаге Ki=m или Ki=b, отношение определено и анализ заканчивается. Если Ki=r, то анализ продолжается на следующем разряде.
На языке AHDL компараторы удобно реализовывать с помощью оператора IF THEN.
Ниже приведен пример компаратора трехразрядных чисел, который выдает «1», если A>B и «0» в противном случае.
SUBDESIGN comp
( A[2..0],B[2..0] : INPUT;
Q : output; )
BEGIN
IF A2 & !B2==1
THEN Q=B"1";
ELSIF B2 & !A2==1
THEN Q=B"0";
ELSIF A1 & !B1==1
THEN Q=B"1";
ELSIF B1 & !A1==1
THEN Q=B"0";
ELSIF A0 & !B0==1
THEN Q=B"1";
ELSE Q=B"0";
END IF;
END;
Временная диаграмма работы компаратора представлена на рисунке 7.10
Рис 7.10. Временная диаграмма работы компаратора.
Литература
1. Комолов Д.А., Мяльк Р.А., Зобенко А.А., Филиппов А.С. Системы автоматизированного проектирования фирмы Altera MAX+PLUS II и QUARTUS II. –Москва: ИП РадиоСофт, 2002-352с.: ил.
2. Антонов А.П., ЯЗЫК ОПИСАНИЯ ЦИФРОВЫХ УСТРОЙСТВ AlteraHDL. Москва, РадиоСофт, 2002. – 224с.
3. Стешенко В.Б. ПЛИС фирмы ALTERA: проектирование устройств обработки сигналов. – Москва: ДОДЭКА, 2002 – 128с.