Скачиваний:
163
Добавлен:
10.12.2013
Размер:
2.95 Mб
Скачать

5.4.7. Программа для плис

САПР MAX+PLUSII предоставляет разработчику широкий набор средств для программирования : введение структуры ПЛИС в графической форме, в виде функциональной схемы, в виде программы, а программу в свою очередь, можно писать либо в примитивах - на уровне элементарных логических функций и ячеек памяти, либо в макрофункциях либо в мегафункциях - универсальных логических функциях [ 18, 19 ]. Сущностью введения структуры ПЛИС является перечисление всех элементов структуры, указание их параметров и связей. Как можно видеть на функциональной схеме, в графической форме это довольно громоздко. В текстовом же виде описание получается компактным, не теряя при этом своей информативности и ясности. И для проектировщика гораздо легче работать с текстом, тем более, что работа с большими графическими образами на компьютере составляет определенную сложность в виду того, что все изображение поместиться на экране не может и приходится работать с отдельными его кусками. Поэтому для данной ПЛИС программное обеспечение разработано в текстовом редакторе в виде программы. Она написана в мегафункциях, так как написание программы в примитивах довольно громоздко и потребовало бы больших временных затрат, а мегафункции представляют собой очень удобный инструмент для работы : с помощью мегафункций можно задать практически любое устройство. Например, мегафункция lpm_counter - счетчик произвольной разрядности, объединенный с дешифратором. Он имеет входы синхронной и асинхронной установки и сброса, синхронной и асинхронной загрузки начальных значений, разрешения счета, установки направления счета; выходы обычные - двоичный код, дешифрованные (для счетчиков разрядностью до 4) и выход переноса. Мегафункция lpm_dff - универсальный регистр произвольной разрядности с возможностью работы как режиме регистра сдвига так и в режиме обычного регистра с параллельной записью. Сброс и установка могут осуществляться как синхронно, так и асинхронно.

Структура программы.

В первой строке программы стоит заголовок, который служит в большей степени в качестве комментария для разработчика. Далее идет описание используемых функций, название проекта. После этого следует описание входных и выходных переменных. Каждая из них снабжена подробным комментарием. После этого располагается секция, где описаны все элементы схемы на уровне мегафункций : счетчики, регистры, мультиплексоры, триггеры, константы (описание компонентов схемы). Для удобства работы сделано описание внутренних узлов схемы, которые соответствуют выходам блока формирования сигналов разрешения. Каждый элемент имеет свое собственное, уникальное название содержащее символы латинского алфавита и цифры. Для повышения информативности названия элементов сделаны достаточно длинные, с учетом выполняемых компонентом функций. Напрмер, dff_tr_adrboard - триггер определения адреса платы, mlt_ctrl_out - мультиплексор вывода данных на шину CTRLI. Все обозначения элементов совпадают с обозначеними на функциональной схеме.

Программа, т.е. непосредственно описание связей в схеме, начинается словом BEGIN. Первым блоком описаны счетчики, так как это один из блоков, выходы которого используются всеми элементами. Затем следует схема чтения адреса платы и адреса чипа, дешифратор адреса чипа. Далее идет описание всех регистров схемы. Все регистры обычные, за исключением регистра команд - он составлен из отдельных триггеров. Это сделано для того, чтобы избежать явления, когда при последовательной записи в регистр, изменяются на выходе - “сигнал бежит”. Затем следует описние мультиплексоров и промежуточных точек. Вконце программы присваиваются значения выходным переменным. Заканчивается программа словом END.

Объем программы - 500 строк.