![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Программные средства foundation Но не вся необходимая информация может находиться в библиотеке wor к . Например, разработчик может опираться на определения и функциональные модули, общие для некоторого семейства различных проектов. У каждого проекта есть своя собственная библиотека work (обычно это подкаталог внутри всего каталога, относящегося к данному проекту), но в нем должны быть ссылки на общую библиотеку, содержащую совместно используемые определения. Даже в малых проектах может использоваться библиотека, которая содержит, например, стандартные определения ШЕЕ. Разработчик может присвоить имя такой библиотеке с помощью предложения 1 ibra гу{1 ibra г у clause) в начале соответствующего файла. Например, библиотеку IEEE можно задать фразой: library ieee; Предложение library work; помещается в начале каждого файла VHDL-проекта неявно. Присвоение имен библиотекам проекта обеспечивает доступ к любым ранее проанализированным и запомненным объектам и архитектурам, но не к определениям типов и тому подобному. Эту функцию выполняют пакеты и предложения use . WUDh-пакет (package) - это файл, содержащий определения элементов, которые могут быть использованы другими программами. В пакет можно включить элементы такого рода, как сигнал, тип, константа, функция, процедура и объявления компонентов. Помещенные в пакет сигналы являются глобальными и доступны любому VHDL-объекту, использующему этот пакет. Типы и константы, упомянутые в пакете, известны в любом файле, использующем этот пакет. Аналогично, из файлов, использующих данный пакет, можно вызвать перечисленные в нем функции и процедуры, а архитектуры, опирающиеся на этот пакет, могут обрабатывать включенные в него компоненты, описываемые в следующем разделе. Проект может использовать тот или иной пакет, если в начало файла, относящегося к данному проекту, помещено предложение use (use clause). Например, чтобы воспользоваться всеми определениями пакета, содержащего стандарт IEEE И 64, нам следует написать: use ieee.std logic 1164.all; Здесь ieee - это имя библиотеки, ранее введенное предложением library. В этой библиотеке файл с именем std logic ll 64 содержит желаемые определения. Приставка all велит компилятору использовать все определения этого файла. Вместо all можно написать имя какого-то одного элемента, когда необходимо использовать только его определение, например: use ieee.std logic 1164.std ulogic; Эта фраза обеспечит доступ только к определению типа std ulogic, приведенному в табл. 4.32, без учета всех других родственных типов и функций. Однако, записывая подряд несколько предложений use , можно добавить использование и других определений. VHDL-СТАНДАРТЫ IEEE Язык VHDL предоставляет замечательную возможность расширять типы данных и множество функций. Это важное свойство, поскольку встроенные типы BIT и BIT VECTOR, в действительности, вовсе не адекватны требованиям моделирования реальных схем, когда обрабатьшаемые сигналы могут соответствовать третьему состоянию, а также быть неизвестными, безразличными и меняющейся интенсивности. Поэтому вскоре после формализации языка в стандарте IEEE 1076 коммерческие поставщики начали вводить свои собственные встроенные типы данных, чтобы оперировать логическими величинами, отличающимися от О и L У разных поставщиков были, конечно, различные определения для этих расширенных типов, из-за чего началось возведение Вавилонской башни . Чтобы избежать этого. Институтом инженеров по электротехнике и элек-тронике был разработан стандартный логический пакет 1164 (std logic 1164), девятизначная логическая система которого удовлетворяет большую часть потребностей проектировщиков. За этим пакетом позднее последовал стандарт 1076-3, описываемый в разделе 5.9.6, который содержит несколько пакетов со стандартными типами и операциями для векторов STD LOGIC, интерпретируемых как целые числа со знаком и без знака. Эти пакеты включают std logic arith, std logic signed и std logic unsigned. Следование стандартам ШЕЕ гарантирует разработчикам высокую степень переносимости их проектов и возможность их взаимодействия. Последнее становится все более важным, так как переход на очень большие специализированные ИС делает необходимой кооперацию не только многих проектировщиков, но также и многих поставщиков, каждый из которых вносит свой вклад в создаваемую по кусочкам систему в одном кристалле . Табл. 4.40. Синтаксис определения package package-name is VHDL-пакета type declarations signal declarations constant declarations component declarations function declarations procedure declarations end package-name; package body package-name is type declarations constant declarations function definitions procedure definitions end package-name; Стандартными пакетами не исчерпываются все возможности. Любой разработчик может написать свой собственный пакет согласно синтаксису, приведенному в табл. 4.40. Все элементы, объявленные между package и первым оператором end , видны из любого файла проекта, использующего этот пакет; элементы, следующие за ключевым словом package body , являются локальными. Заметьте, в частности, что первая часть содержит объявления функций , но не определения. В объявлении функции (function declaration) перечислены только имя функции, аргументы и тип вплоть до ключевого слова is в табл. 4.35, но не включая его. Полное определение функции приводится в теле пакета и пользователи функции его не видят. 4.7.6. Элементы структурного проектирования Теперь мы, наконец, готовы взглянуть на внутренности VHDL-проекта, на исполняемую часть архитектуры. Вспомним, что согласно табл. 4.28 тело архитектуры представляет собой ряд параллельных операторов (concurrent statements). В языке VHDL каждый параллельный оператор исполняется одновременно с другими параллельными операторами в теле данной архитектуры. Такой режим исполнения заметно отличается от последовательного выполнения операторов в программном обеспечении, написанном на одном из обычных языков программирования. Параллельные операторы необходимы для того, чтобы отобразить поведение схемы, у которой соединенные между собой элементы воздействуют друг на друга непрерывно, а не в отдельные моменты времени, следующие один за другим в определенном порядке. Таким образом, правило моделирования состоит в том, что в случае, когда последним оператором в теле VHDL-архитектуры изменяется сигнал, используемый в первом операторе данной архитектуры, программа должна вернуться назад к первому оператору и скорректировать его результаты, приведя их в соответствие с только что изменившимся сигналом. На самом деле моделирующая профамма будет осуществлять множественные изменения и обновления результатов до тех пор, пока моделируемая схема не стабилизируется; подробнее мы рассмотрим этот вопрос в разделе 4.7.9. В языке VHDL есть несколько параллельных операторов, а также механизм связывания в один узел набора последовательных операторов с тем, чтобы они исполнялись, как один параллельный оператор. Различное использование параллельных операторов привело к возникновению трех стилей проектирования и описания схем, слегка отличающихся один от другого; об этом и пойдет речь в данном разделе и двух следующих. Самым главным параллельным оператором в языке VHDL является оператор сотропеп t (сотропеп t statement), синтаксис которого указан в табл. 4.41. Здесь component-name - имя определенного ранее объекта, который должен быть использован или подвергнут обработке (instantiate) в теле данной архитектуры. Для каждого оператора component с обращением к названному объекту создается одна копия этого объекта; каждая копия должна иметь уникальную метку label. ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |