Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППЛИС_лаб2.doc
Скачиваний:
77
Добавлен:
05.06.2015
Размер:
1.31 Mб
Скачать

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;