Учебник по языку ahdl оглавление Введение 2 Элементы языка ahdl 3 Структура описания проекта на языке ahdl 25
Скачать 0.61 Mb.
|
1.12.Прототипы логических функций1.12.1.ПримитивыMAX+PLUS II обеспечивает большое многообразие примитивных функций для разработки схем. Так как AHDL и VHDL логические операторы, порты и некоторые операторы замещают примитивы в AHDL и VHDL файлах, то примитивы являются подмножеством их, доступных для GDF файлов, как показано ниже. Примитив - один из основных функциональных блоков, применяющийся для проектирования схем с помощью программы MAX+PLUS II. Примитивы используются в графических файлах (.gdf), текстовых файлах (.tdf), и VHDL файлах (.vhd). Символы примитивов для графического редактора поставляются в директории \maxplus2\max2lib\prim, созданной во время инсталляции. Прототипы функций встроены в программу MAX+PLUS II. 1.12.2.Массивы примитивовМассив примитивов - это примитив, который представляет несколько идентичных примитивов. Вы можете использовать примитивные массивы для создания более компактных GDF или OrCAD Schematic файлов путем ввода единственного примитива, который экстрактор списков связей компилятора переведет в несколько примитивов. Вы можете создать примитивный массив двумя способами:
Рис. 1. Массив примитивов (вариант 1) В этом примере примитивный массив создается при соединении трех шин A[0..2], B[0..2], и C[0..2] с двумя выводами INPUT, выводом OUTPUT и вентилем AND2. Во время обработки компилятор переводит этот примитивный массив в 6 выводов INPUT, 3 вывода OUTPUT и 3 вентиля AND2 следующим образом: Один AND2 вентиль соединяется с узлами A0, B0, и C0. Один AND2 вентиль соединяется с узлами A1, B1, и C1. Один AND2 вентиль соединяется с узлами A2, B2, и C2. Входные выводы A0, A1, и A2 соединяются с узлами A0, A1, и A2, соответственно. Входные выводы В0, В1, и В2 соединяются с узлами В0, В1, и В2, соответственно. Выходные выводы С0, С1, и С2 соединяются с узлами С0, С1, и С2, соответственно. Примитивы выводов INPUT, INPUTC, OUTPUT, OUTPUTC, BIDIR, или BIDIRC, которым даны шинные имена переводятся в массив примитивов. Вы не можете использовать перечислимое имя шины для обозначения примитива вывода.
Рис. 2. Массив примитивов (вариант 2) Для создания массива примитивов необходимо обозначить все используемые узлы и шины, за исключением тех случаев, где имена узлов и шин не обязательны:
Рис. 3. Массив примитивов (вариант 3) Вы не можете вводить присваивания для проб и ресурсов символов примитивов, которые используются для создания примитивных массивов. Обратитесь в раздел Принципы работы с присваиваниями. Проба - уникальное имя, связанное с любым узлом, например, вход или выход примитива, мегафункции или макрофункции, которое можно использовать вместо полного иерархического имени узла в любом месте MAX+PLUS II. Таким образом пробное имя обеспечивает быструю идентификацию узла. Примитивы буферов CARRY OPNDRN CASCADE SOFT EXP TRI GLOBAL (SCLK) WIRE (только GDF) LCELL (MCELL) Примитивы триггеров и защелок DFF SRFF DFFE SRFFE JKFF TFF JKFFE TFFE LATCH Примитивы/Порты входов и выходов BIDIR или INOUT BIDIRC (только GDF) INPUT или IN INPUTC (только GDF) OUTPUT или OUT OUTPUTC(толькоGDF) Логические примитивы AND NOR BAND (только GDF) NOT BNAND (только GDF) OR BNOR (только GDF) VCC (только GDF) BOR (только GDF) XNOR GND (только GDF) XOR NAND Другие примитивы (только GDF) CONSTANT PARAM Title Block Прототипы функций для примитивов в TDF файлах не нужны. Однако Вы можете переопределить порядок вызова входов примитива, вводя оператор Function Prototype в Ваш TDF. 1.12.3.МакрофункцииMAX+PLUS II предлагает свыше 300 макрофункций. Имена шинных макрофункций оканчиваются на букву В. Они функционально идентичны с соответствующими не шинными макрофункциями, но имеют сгруппированные входные и/или выходные выводы. Для просмотра схемы или AHDL файла содержащего макрофункцию, укажите символ макрофункции в графическом редакторе или имя макрофункции в текстовом редакторе и выберите Hierarchy Down (меню File). Категории макрофункций: Сумматоры Триггеры-защелки АЛУ Умножители Буферы Мультиплексоры Компараторы Генераторы четности Конвертеры Быстрые умножители Счетчики Регистры Декодеры Сдвиговые регистры Цифровые Регистры хранения фильтры EDAC SSI функции Шифраторы Элементы ввода/вывода Делители частоты 1.12.4.Мегафункции и библиотеки параметризуемых модулейПараметризуемая функция - логическая функция, использующая параметры для достижения масштабируемости, адаптируемости и эффективной реализации в кремнии. Библиотека параметризуемых функций (LPM) - технологически-независимая библиотека логических функций, параметризуемая для достижения масштабируемости и адаптируемости. Altera реализовала параметризуемые модули (называемые также параметризуемые функции) из LPM в версии 2.1.0, которые предлагают архитектурно-независимый ввод проекта для всех, поддерживаемых MAX+PLUS II устройств. Компилятор включает встроенную поддержку компиляции LPM для функций, используемых во входных файлах (схемном, AHDL, VHDL, и EDIF). Мегафункция - сложный или высокоуровневый строительный блок, который можно использовать совместно с примитивами вентилей и триггеров и/или с макрофункциями старого типа в файлах проекта. Altera поставляет библиотеку мегафункций, включая функции из библиотеки параметризуемых модулей (LPM) версии 2.1.0, в директории \maxplus2\max2lib\mega_lpm, созданной во время инсталляции. Для просмотра файла, содержащего логику мегафункции, укажите символ мегафункции в графическом редакторе или ее имя в текстовом редакторе и выберите Hierarchy Down (меню File). Мегафункции Мегаядра - предварительно проверенные HDL файлы для сложных функций системного уровня, которые можно приобрести у Altera. Они оптимизированы под архитектуры FLEX 10K, FLEX 8000, FLEX 6000, MAX 9000, и MAX 7000 устройств. Мегафункции Мегаядра состоят из нескольких файлов. Файл для последующего синтеза используется для реализации проекта (подгонки) в заданном устройстве. Кроме этого прилагаются VHDL или Verilog HDL функциональные модели для проектирования и отладки со стандартными EDA средствами моделирования. Altera поставляет библиотеку мегафункций, включая любые приобретаемые мегафункции Мегаядра в директории \maxplus2\max2lib\mega_lpm, созданной во время инсталляции. Если Ваш код доступа для мегафункции Мегаядра содержит разрешение просмотра источника файла проекта, Вы можете просмотреть его, указывая символ мегафункции в графическом редакторе или имя в текстовом редакторе и выбирая Hierarchy Down (меню File). MAX+PLUS II предлагает большое разнообразие мегафункций, включая LPM функции а также параметризуемые функции. Ниже приводится список мегафункций. Таблица 9. Мегафункции логических вентилей
Таблица 10. Мегафункции арифметических компонентов
Таблица 11. Мегафункции запоминающих компонентов
Таблица 12. Другие мегафункции
Таблица 13. Мегафункции мегаядра
Ниже приводится описание наиболее часто применяемых мегафункций. Полные сведения по всем мегафункциям можно найти в системе помощи (меню Help, команда Megafunctions/LPM). lpm_and (вентиль И) Altera рекомендует использовать примитивы вентилей И или их операторы вместо lpm_and для более легкой реализации и улучшения времени компиляции. Тем не менее lpm_and могут быть полезны при необходимости иметь параметризуемые входы. Прототип функции FUNCTION lpm_and (data[LPM_SIZE-1..0][LPM_WIDTH-1..0]) WITH (LPM_WIDTH, LPM_SIZE) RETURNS (result[LPM_WIDTH-1..0]) Порты : Таблица 14. Порты входа
Таблица 15. Порты выхода
Параметры
Таблица 16. Функции вентилей "И"
Используемый ресурс: Простые вентили lpm_and используют приблизительно одну логическую ячейку на вентиль. 1.12.5.Не используемые входы примитивов, мегафункций и макрофункцийК не подсоединенным входным портам примитива, мегафункции, символов макрофункций и экземпляров применяются следующие правила.
CLRN: VCC (неактивный) PRN: VCC (неактивный) ENA: VCC (активный)
|