Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
схемотехника / Введение в инструментальные средства.pdf
Скачиваний:
145
Добавлен:
27.03.2016
Размер:
1.94 Mб
Скачать

Функция EXT добавляет к операнду типа std_logic_vector слева столько нулей, чтобы в результирующем векторе было общее число разрядов, равное второму операнду типа integer. Аналогично функция SXT добавляет слева разряды, равные старшему — знаковому разряду операнда. Например:

ЕХТ("10",5) = "00010",

SXT("10",5) = "11110"

Пакеты std_logic_signed и std_logic_unsigned

включают, в основном, такие же функции, как и пакет std_logic_arith, но относящиеся к операндам типа signed и unsigned соответственно. Но другим операндом функции двух аргументов может быть операнд типа std_logic_vector. Эти пакеты обычно применяют в тех объектах проекта, в которых используется или тип signed или тип unsigned.

Библиотеки и пакеты

VHDL-библиотека (library) — место, где компилятор VHDL хранит информацию об отдельном варианте проекта, включая промежуточные файлы, используемые при анализе, моделировании и синтезе в рамках данной разработки. Место библиотеки в файловой системе компьютера зависит от реализации. Для очередного VHDL-проекта компилятор автоматически создает библиотеку под именем "work" и использует ее.

У законченного VHDL-проекта обычно бывает много файлов, каждый из которых содержит различные компоненты проекта, включая объекты и архитектуры. Анализируя отдельные файлы, компилятор помещает результаты в библиотеку "work", а также ищет в этой библиотеке необходимые определения, например другие объекты. С учетом этого большой проект можно разбить на несколько файлов; компилятор найдет все, что нужно, по внешним указателям.

Но не вся необходимая информация может находиться в библиотеке "work". Например, разработчик может опираться на определения и функциональные модули, общие для некоторого семейства различных проектов. У каждого проекта есть своя собственная библиотека "work" (обычно это подкаталог внутри всего каталога, относящегося к данному проекту), но в нем должны быть ссылки на общую библиотеку, содержащую совместно используемые определения. Даже в малых проектах может использоваться библио-

134

тека, которая содержит, например, стандартные определения IEEE. Разработчик может присвоить имя такой библиотеке с помощью предложения library (library clause) в начале соответствующего файла. Например, библиотеку IEEE можно задать фразой:

library ieee;

Предложение "library work;" помещается в начале каждого файла VHDL-проекта неявно.

Присвоение имен библиотекам проекта обеспечивает доступ к любым ранее проанализированным и запомненным объектам и архитектурам, но не к определениям типов и тому подобному. Эту функцию выполняют «пакеты» и «предложения use».

VHDL-пакет (package) — файл, содержащий определения элементов, которые могут быть использованы другими программами. В пакет можно включить элементы такого рода, как сигнал, тип, константа, функция, процедура и объявления компонентов.

Помещенные в пакет сигналы являются «глобальными» и доступны любому VHDL-объекту, использующему этот пакет. Типы и константы, упомянутые в пакете, известны в любом файле, использующем этот пакет. Аналогично, из файлов, использующих данный пакет, можно вызвать перечисленные в нем функции и процедуры, а архитектуры, опирающиеся на этот пакет, могут «обрабатывать» включенные в него компоненты, описываемые в следующем разделе.

Проект может «использовать» тот или иной пакет, если в начало файла, относящегося к данному проекту, помещено предложение use (use clause). Например, чтобы воспользоваться всеми определениями пакета, содержащего стандарт IEEE 1164, следует написать:

use ieee.std_logic_1164.all;

Здесь "ieee" — имя библиотеки, ранее введенное предложением library. В этой библиотеке файл с именем "std_logic_l164" содержит желаемые определения. Приставка "all" велит компилятору использовать все определения этого файла. Вместо "all" можно написать имя какого-то одного элемента, когда необходимо использовать только его определение, например:

use ieee.std_logic_1164.std_ulogic;

Эта фраза обеспечит доступ только к определению типа std_ulogic, без учета всех других родственных типов и функций. Однако, записывая подряд несколько предложений "use", можно добавить использование и других определений.

135

Приложение 1

БИБЛИОТЕЧНЫЕ ЭЛЕМЕНТЫ СХЕМНОГО РЕДАКТОРА

Данное приложение содержит краткие сведения по тем функциональным группам библиотечных элементов, которые используются при выполнении технического задания на проектирование процессора.

Библиотечные элементы схемного редактора САПР XILINX FOUNDATION разбиты на следующие основные группы (см.

рис. 10):

Gate — логические элементы; Flip-Flop/Latch — триггеры/защелки; MUX/DMUX — мультиплексоры; Coder/Decoder — дешифраторы;

Arithmetic Circuit — арифметические устройства; Counter — счетчики;

Register — регистры; Memory — память.

Элементы, включенные в библиотеку, являются либо базовыми элементами, либо макроэлементами. Базовый элемент (Primitive) — такой элемент, который не может быть разбит на меньшие компоненты. Макроэлемент (Macro) — элемент, имеющий внутреннюю структуру, состоящую из базовых элементов. Внутреннюю структуру макроэлемента всегда можно увидеть в схемном редакторе, используя команду Hierarchy Push/Pop.

Рассмотрим отдельные элементы, входящие в состав указанных групп. Как правило, в состав каждой группы входят элементы одного типа, различающиеся разрядностью или количеством входов. Разрядность указывается цифрой в обозначении компонента.

Логические элементы

Группа Gate содержит следующий набор логических элементов:

инвертор НЕ (INV);

элементы И (конъюнктор, AND) с инверсными и не инверсными входами от 2 до 9;

136

элементы ИЛИ (дизъюнктор, OR) с инверсными и не инверсными входами от 2 до 9;

элементы ИНЕ (NAND) с инверсными и не инверсными входами от 2 до 9;

элементы ИЛИНЕ (NOR) с инверсными и не инверсными входами от 2 до 9;

элементы “Исключающее ИЛИ” (сложение по модулю 2, XOR) с числом входов от 2 до 9;

элементы, выполняющие функцию логическая равнозначность (XNOR) с числом входов от 2 до 9;

элементы 2-2И-2ИЛИ (SOP4) с инверсными и не инверсными входами;

элементы 1-2И-2ИЛИ (SOP3) с инверсными и не инверсными входами.

Расшифровка обозначений эементов этой группы достаточно проста, поскольку тип элемента явно указан в его названии, а число обозначает количество входов. Кроме того, у элементов некоторые входы могут быть проинвертированы, что отмечается символом B в обозначении элемента. Пример соглашения, принятого для обозначения логических элементов, приведен на рис. П.1.1.

Рис. П.1.1. Обозначение логических элементов

Инвертор НЕ (INV)

Условное графическое обозначение инвертора, приведено на рис. П.1.2. Инвертор является базовым элементом.

Рис. П.1.2. Условное графическое обозначение инвертора

137

Элементы И (AND)

Условные графические обозначения элементов AND приведены на рис. П.1.3. Элементы AND до 5 входов включительно являются базовыми элементами и могут иметь инверсные входы в любой комбинации (см. рис. П.1.3).

Рис. П.1.3. Условное графическое обозначение элементов AND

Элементы AND с числом входов от 6 до 9 не имеют инверсных входов и являются макроэлементами.

Элементы ИЛИ (OR)

Условные графические обозначения элементов OR приведены на рис. П.1.4. Элементы OR до 5 входов включительно являются базовыми элементами и могут иметь инверсные входы в любой комбинации (см. рис. П.1.4).

Элементы OR с числом входов от 6 до 9 не имеют инверсных входов и являются макроэлементами.

138

Рис. П.1.4. Условное графическое обозначение элементов OR

Элементы ИНЕ (NAND)

Условные графические обозначения элементов NAND приведены на рис. П.1.5. Элементы NAND до 5 входов включительно являются базовыми элементами и могут иметь инверсные входы в любой комбинации.

Рис. П.1.5. Условное графическое обозначение элементов NAND

Элементы ИЛИНЕ (NOR)

Условные графические обозначения элементов NOR приведены на рис. П.1.6. Элементы NOR до 5 входов включительно являются

139

базовыми элементами и могут иметь инверсные входы в любой комбинации (см. рис. П.1.6). Элементы NOR с числом входов от 6 до 9 не имеют инверсных входов и являются макроэлементами.

Рис. П.1.6. Условное графическое обозначение элементов NOR

Элементы 2-2И-2ИЛИ (SOP4)

Условные графические обозначения элементов SOP4 приведены на рис. П.1.7. Элементы SOP4 являются макроэлементами и могут иметь инверсные входы в любой комбинации (см. рис. П.1.7).

Рис. П.1.7. Условное графическое обозначение элементов SOP4

140

Элементы 1-2И-2ИЛИ (SOP3)

Условные графические обозначения элементов SOP3 приведены на рис. П.1.8. Элементы SOP3 являются макроэлементами и могут иметь инверсные входы в любой комбинации (см. рис. П.1.8).

Рис. П.1.8. Условное графическое обозначение элементов SOP3

ЭлементыИСКЛЮЧАЮЩЕЕИЛИ(XOR)

иИСКЛЮЧАЮЩЕЕИЛИ-НЕ(XNOR)

Вбиблиотеке элементы «Исключающее ИЛИ» (сложение по модулю 2, XOR) и элементы «Исключающее ИЛИ-НЕ» (логическая равнозначность, XNOR) имеют число входов от 2 до 9.

Условное графическое обозначение элементов XOR2, XNOR2 с двумя входами приведено на рис. П.1.9, а их таблица истинности представлена табл. П.1.1.

Рис. П.1.9. Условное графическое обозначение элементов XOR и XNOR

141