- •Аннотация
- •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. Компараторы
5.1 Lpm модуль счетчика
LPM модуль счетчика имеет возможность изменять параметры и использовать различные комбинации выводов ввода-вывода. В этом модуле возможны следующие выводы:
data[]- входная шина, используемая в качестве данных для инициализации счетчика во время сигналов сброса или установки, разрядность определяется параметром LPM_WIDTH;
clock – входной сигнал синхронизации, срабатывающий по положительному фронту;
clk_en – входной сигнал, разрешающий работу синхронных узлов;
cnt_en – сигнал разрешения счета, отключает счет при cnt_en = “0”;
updown - вход управляющий направления счета, при updown =1 счет выполняется по возрастанию, при updown =0 счет выполняется по убыванию;
cin - вход переноса из младшего бита;
aset - вход асинхронной установки счетчика;
aclr - вход асинхронного сброса, если активны оба сигнала aset и aclr то сигнал aclr доминирует;
aload – вход, асинхронной загрузки счетчика значением с входа data;
sclr – вход синхронного сброса счетчика;
sset – вход синхронной установки счетчика, если активны оба сигнала sclr и sset, то sclr преобладает;
sload – вход синхронной загрузки счетчика значением входа data.
q[] – выходные сигналы счетчика, разрядность определяется параметром LPM_WIDTH;
eq[15..0] – выходные сигналы встроенного дешифратора, дешифратор имеет 16 выходных шин и может работать только с четырьмя младшими разрядами счетчика;
cout – выход переноса в старший разряд.
На рисунке 5.1.1 показана схема LPM модуля счетчика, реализованная в среде MAXPLUSII., а на рисунке 5.1.2. его временная диаграмма работы.
Рисунок 5.1.1.
Рисунок 5.1.2.
5.2 Lpm модуль сдвигового регистра.
LPM модуль сдвигового регистра позволяет формировать сдвиговые регистры различного типа. В модуле можно использовать следующие входные и выходных выводы:
data[] - вход, который используется в качестве данных для инициализации регистра во время сигналов сброса или установки, разрядность определяется параметром LPM_WIDTH;
clock – сигнал синхронизации, срабатывающий положительным фронтом;
enable – вход разрешения сдвига , отключает сдвиг при enable = 0;
aset - вход асинхронной установки сдвигового регистра;
acl - вход асинхронного сброса, если активны оба сигнала aset и aclr то сигнал aclr доминирует.
sclr – вход синхронного сброса сдвигового регистра;
sset – вход синхронной установки сдвигового регистра, если активны оба сигнала sclr и sset, то sclr преобладает;
load – сигнал выбора операций загрузки и сдвига, при load=1 осуществляется а при load=0 – сдвиг.
shiftin – информационный вход.
На рисунке 5.2.1. показана схема LPM модуля сдвигового регистра, реализованная в среде MAX+PLUSII, а на рисунке 5.2.2. его временная диаграмма работы.
Рисунок 5.2.1.
Рисунок 5.2.2.
5.3 Lpm модуль пзу.
С помощью LPM модуля ПЗУ можно реализовывать ПЗУ различной конфигурации, которые широко применяются для хранения данных.
В модуле можно использовать следующие входные и выходных выводы:
address[] – вход адреса информации, записанной в ПЗУ, разрядность определяется параметром LPM_WIDTHAD;
inclock– вход синхронизации адреса, если этот вывод задействован, входной адрес синхронизируется, иначе вход является асинхронными;
outclock - вход синхронизации выхода, если этот вывод задействован, выходные данные синхронизируется, иначе выход является асинхронными;
memenab- вход разрешения выдачи данных, при memenab=1 выходная информация появляется на выходе q[], при memenab=0 выход находится в третьем состоянии;
q[] – выход данных ПЗУ, разрядность определяется параметром LPM_WIDTH.
На рисунке показана 5.3.1. показана схема LPM модуля ПЗУ, реализованная в среде MAX+PLUSII, а на рисунке 5.3.2. его временная диаграмма работы.
Рисунок 5.3.1
Рисунок 5.3.2
Информация, записываемая в ПЗУ, хранится в специальном файле, имеющем расширение .mif. Ниже приведено содержимое файла, для примера, рассмотренного выше. В примере присутствуют комментарии, наглядно показывающие как сформировать этот файл для различной конфигурации ПЗУ.
DEPTH = 32; % Memory depth and width are required %
WIDTH = 8; % Enter a decimal number %
ADDRESS_RADIX = DEC; % Address and value radixes are optional %
DATA_RADIX = BIN; % Enter BIN, DEC, HEX, or OCT; unless %
CONTENT
BEGIN
0:00001111;
1:00110011;
2:01010101;
3:00000000;
4:10000000;
5:01000000;
6:00100000;
7:00010000;
8:00001000;
9:00000100;
10:00000010;
11:00000001;
12:11000000;
13:01100000;
14:00110000;
15:00011000;
16:00001100;
17:00000110;
18:00000011;
19:11100000;
20:01110000;
21:00111000;
22:00011100;
23:00001110;
24:00000111;
25:11110000;
26:01111000;
27:00111100;
28:00011110;
29:00001111;
30:11111000;
31:01111100;
END;