Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемИлья Трапезников
1 ЯЗЫКИ ОПИСАНИЯ ДИСКРЕТНЫХ УСТРОЙСТВ 1
2 HDL-программа как модель проектируемого устройства 2 Языковое описание устройства - это текст, сохраняемый в одном или нескольких файлах, которые в совокупности составляют представление разработчика о проекте и используются на всех последующих этапах проектирования, в том числе при синтезе устройства и его моделировании. HDL (Hardware Description Language ) – язык описания аппаратуры. VHDL (Very high speed integrated circuits) Hardware Description Language). HDL-программа может рассматриваться как знаковая модель дискретного устройства – это способ представления реального или проектируемого объекта, который отражает лишь их существенные свойства с использованием принятых формальных обозначений. Типы данных В языках основными являются данные сигнального типа, которые по свойствам близки к обычным логическим данным. Сигналы обладают временными характеристиками. Сигналы HDL-проекта отображают проводники и линии соединений реальных схем цифровых устройств. Сигналы в логических схемах передаются и обрабатываются параллельно, а потоки сигналов проходят через логические блоки одновременно. Сигналы в схеме идут от своих источников, каждый источник имеет свой драйвер. Драйвер – это понятие языка HDL, которое связано с моделированием. Драйвер можно представить как некоторую область памяти для хранения значения сигнала. Значение сигнала в такой области памяти изменяет только система моделирования в процессе моделирования HDL-описания.
3 HDL-программа как модель проектируемого устройства 3 Структура и поведение Модель, отражающая объект проектирования в форме правил преобразования входных данных в выходные, называется поведенческой. Рис. 1 Поведенческое (а) и структурное (б) представление проекта Y = F(A, В) Назовем модуль F - PROJECT ENTITY (дословный перевод сущность проекта), входы и выходы назовем портами (PORT). Программные модули на языке VHDL, описывающие проекты в поведенческой форме, именуют поведенческими архитектурными телами. Структурная модель описывает проект в виде совокупности модулей, каждый из которых реализует определенную часть задачи, и набора связей между ними. F(A, В) = I(G(A, В), Н(А, В)) Функциональное преобразование данных внутри модуля реализуется в специальном подразделе проекта, который называется архитектурным телом.
4 HDL-программа как модель проектируемого устройства 4 Рис. 2 Иерархическое поведение проекта ENTITY PROJECT – первичный модуль, описывающий интерфейс проекта; ВB (Behavioral Body) - вторичный модуль, описывающий поведение проекта; SB (Structural Body) – структурное архитектурное тело. На любом этапе декомпозиции (в том числе на заключительном и на всех промежуточных этапах) конечными вершинами являются только поведенческие тела, а промежуточные вершины представлены структурными телами.
5 HDL-программа как модель проектируемого устройства 5 Структурную модель (SB) тестирующей установки (Test-Bench), компонентами которой, в общем случае, являются: проектируемый модуль, генератор тестирующего воздействия (Stimulator) и анализатор результатов. Рис. 3 Структура модулей для тестирования проекта
6 HDL-программа как модель проектируемого устройства 6 Стили описания проекта Последовательный стиль описания соответствует традиционным подходам к составлению компьютерных программ. Расположение и порядок исполнения операторов в тексте описания соответствует порядку прохождений данных через информационный граф. Параллельный стиль предполагает асинхронное и, по возможности, одновременное исполнение операторов в реализуемом устройстве. Обычно блок, реализующий некоторый оператор, непосредственно реагирует на признак исполнения действия любым из его предшественников. Потоковый стиль отличается от предыдущего тем, что оператор исполняется после готовности всех предшественников данного оператора. Автоматный стиль, в отличие от предыдущих, опирается не на модель передачи данных, а на модель переключения состояний. Стиль основан на определении некоторого множества состояний проектируемого устройства и правил перехода из одного состояния в другое в зависимости от входных сигналов. Каждому состоянию или переходу соответствует определенный набор действий. Рис. 4 Информационный граф алгоритма: каскадная форма (а) и конвейерная форма (б)
7 Принципы интерпретации поведения дискретных устройств средствами моделирования 7 Моделирование и реальное время При сквозном моделировании время делится на кванты, длительность которых выбирается как наибольший общий делитель времен задержек компонентов. Недостатки: 1) нерациональные затраты машинного времени, вызванные потребностью достаточно мелкой дискретизации времени и необходимостью воспроизведения на каждом шаге поведения всех компонентов; 2) нерациональный расход памяти, а это, в сущности, тоже потеря производительности. Практически все развитые системы моделирования реализуют событийный подход, или, как говорят, дискретную событийную модель. На каждом шаге моделирования переопределяются состояния только тех компонентов, на входе которых в данный момент происходят изменения. Изменения логических переменных, как входных, так и промежуточных, называют событиями. Любое событие может вызвать цепочку других событий. Моделирование системы производится не для равномерно отстоящих моментов реального времени, а лишь для моментов, для которых ранее были предсказаны события.
8 Принципы интерпретации поведения дискретных устройств средствами моделирования 8 Алфавит моделирования Важной характеристикой метода моделирования цифровых устройств является количество различимых состояний сигнала. Каждому состоянию сопоставляется индивидуальный символ, совокупность символов составляет алфавит моделирования. Простейший алфавит - двоичный, содержащий набор {0, '1}. Функционирование элементов описывается по правилам алгебры логики. Распространен алфавит из четырех символов {'0, 'X', 1,Z}. Здесь 'X' означает неопределенное состояние. Символ Z представляет высокоимпедансное состояние порта или отключенную линию. Девятиэлементный алфавит, в котором приняты следующие символы для представления состояний связей: U - не инициализировано; Z - отключено; 'X' - активное неопределенное состояние; 0 - активный ноль; 1 - активная единица; L - слабый ноль; 'Н - слабая единица; 'w' - слабое неопределенное состояние; '- - не важно (разработчик может запрограммировать переход в это состояние, если реализация алгоритма не зависит от результата; выбор конкретного значения предоставляется компилятору с целью оптимизации реализации устройства).
9 Принципы интерпретации поведения дискретных устройств средствами моделирования 9 Алфавит моделирования Рис. 5 Иллюстрация состояния сигналов
10 Лексические элементы языка 10 Известно, что программы составляются из лексических элементов, к которым относят имена (идентификаторы), ключевые (зарезервированные) слова, специальные символы, числа, текстовые символы и строки символов. При записи программ необходимо строго придерживаться синтаксических стандартов языков. В противном случае компилятор не сможет интерпретировать предложения и будет выдавать сообщение об ошибке. Синтаксические конструкции определяются с помощью формализованных правил их записи - формул Бэкуса Науэра (BNF). Такие формулы представляют некоторые трафареты, в которые разработчик подставляет правильно оформленные конструкции. Сразу за определяемой конструкцией ставится знак : :=, который трактуется как "записывается в форме. Метасимвол | определяет альтернативные возможности записи конструкции. Пара метасимволов « » кавычки-"елочки" ограничивают конструкцию, которую можно повторить сколько угодно раз, в том числе ни одного раза. Пара метасимволов [ ] квадратные скобки будет служить для отображения необязательного элемента синтаксической конструкции VHDL. Например: ::= « I » ::= ) ] ::= « »
11 ОСНОВЫ ЯЗЫКА VHDL 11
12 Язык VHDL как программная система 12
13 Структура проекта 13 Проект в системе проектирования на основе VHDL представлен совокупностью иерархически связанных текстовых фрагментов, называемых проектными модулями. Различают первичные и вторичные проектные модули, при этом :: = I I
14 Структура проекта 14 Типовой текст программы на языке VHDL имеет следующую структуру: :: = « « » » « » ::= LIBRARY ::= USE.. | USE..ALL
15 Структура проекта 15 :: = ENTITY IS [ ] [BEGIN ] END [ENTITY] ; :: = GENERIC ( : [ : = ] «; : [ := ] » ); : : = PORT ( : [:= ] «; : [:= = ]») ; ::= IN | OUT | INOUT Архитектурные тела представляют содержательное описание проекта. Архитектурное тело в некотором смысле подчинено соответствующему ENTITY. Различают структурные архитектурные тела (описывающие проект в виде совокупности компонентов и их соединений), поведенческие архитектурные тела (описывающие проект как совокупность исполняемых действий) и смешанные тела. : : = ARCHITECTURE OF IS BEGIN END [ARCHITECTURE ] ;
16 Структура проекта 16 LIBRARY ieee; USE ieee.std_logic_1164.ALL; -- пакет, содержащий определение -- преобразований данных в многозначном алфавите USE ieee.std_logic_arith.ALL; --пакеты, содержащие функции преобразования USE ieee.std_logic_unsigned.ALL; -- форматов из битового вектора -- в эквивалентное число и наоборот ENTITY bit_count IS PORT( input : IN std_logic_vector (15 DOWNTO 0); -- битовый вектор -- в многозначном представлении output: OUT integer RANGE 0 TO 15); целое в объявленном диапазоне END bit_count; ARCHITECTURE pure_behave OF bit_count IS -- декларация встроенной подпрограммы FUNCTION bits_in_word( x:std_logic_vector (15 DOWNTO 0)) RETURN integer IS VARIABLE i,z : integer RANGE 0 TO 15; BEGIN z:=0; FOR i IN 0 TO 15 LOOP -- цикл просмотра всех разрядов IF x(i)=1' THEN если разряд установлен в единицу z:=z+1; -- прибавить к результату END IF; END LOOP; RETURN z; END bits_in_word;, -- конец декларации подпрограммы BEGIN output
17 Структура проекта 17 ARCHITECTURE four_channel_behave OF bit_count IS SIGNAL vl,v2,v3,v4: std_logic_vector (3 DOWNTO 0); FUNCTION ones_in_word (n: integer; x:std_logic_vector (3 DOWNTO 0)) RETURN integer IS VARIABLE i,z : integer; BEGIN z:=0; FOR i IN 0 TO n LOOP IF x(i)=1' THEN z:=z+1; END IF; END LOOP; RETURN z; END ones_in_word; BEGIN v1
18 Структура проекта 18 ARCHITECTURE comb_logic OF bit_count IS FUNCTION ones_in_the,trade( x:std logic vector (3 DOWNTO 0)) RETURN integer IS VARIABLE z:integer RANGE 0 TO 4; TYPE LUT IS ARRAY (0 TO 15) OF integer; CONSTANT result: LUT:= (0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4); -- таблица истинности для функции -- "число единиц в четырехразрядном коде" BEGIN z:=conv_integer(х); -- преобразование код номер в таблице RETURN result(z); -- выборка значения из таблицы END ones_in_thetrade; SIGNAL number1, number2, number3, number4: integer RANGE 0 TO 4; BEGIN number1
19 СПАСИБО ЗА ВНИМАНИЕ
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.