Главная » Просмотр файлов » Проектирование цифровых устройств с использованием ПЛИС

Проектирование цифровых устройств с использованием ПЛИС (1055366), страница 5

Файл №1055366 Проектирование цифровых устройств с использованием ПЛИС (Проектирование цифровых устройств с использованием ПЛИС) 5 страницаПроектирование цифровых устройств с использованием ПЛИС (1055366) страница 52017-12-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

Параллельные операторыОператоры данной группы описывают взаимосвязанные параллельно функционирующие части устройства. Параллельные операторы выполняются асинхронно по отношению друг к другу. К таким операторам относятся:• блоки (BLOCK);• процессы (PROCESS);• параллельные присваивания сигналов (<=);• параллельные вызовы процедур;• параллельные операторы-ловушки (ASSERT);• экземпляры компонентов (COMPONENT).Оператор BLOCKЭтот оператор позволяет описать группу параллельных операторов:<БЛОК> ::=[<МЕТКА>] : BLOCK [( <ОХРАННОЕ ВЫРАЖЕНИЕ> )] [IS][GENERIC (<ОБЪЯВЛЕНИЕ НАСТРОЕЧНЫХ КОНСТАНТ>);][GENERIC MAP (СПИСОК СВЯЗЫВАНИЯ НАСТРОЕЧНЫХ КОНСТАНТ);][PORT (<ОБЪЯВЛЕНИЕ ПОРТОВ>);][PORT MAP (<СПИСОК СВЯЗЫВАНИЯ ПОРТОВ>)]<ДЕКЛАРАТИВНАЯ ЧАСТЬ>BEGIN<ПАРАЛЛЕЛЬНЫЕ ОПЕРАТОРЫ>END BLOCK [<МЕТКА>];Охранное выражение позволяет задать скрытый локальныйсигнал GUARD, который можно использовать в пределах блока вкачестве разрешающего сигнала при присваиваниях.

Объявлениенастроечных констант и их связывание конкретизируют настроечные значения. Объявление портов и их связывание позволяют ассоциировать порты схемы с внешними сигналами.Пример описания устройства с использованием иерархии блоков:C: BLOCKBEGINX: BLOCK31PORT (P1, P2: INOUT BIT); --объявление портовPORT MAP (P1 => S1, P2 => S2); --связывание портовCONSTANT Delay: DELAY_LENGTH := 1 ms; --декларацииSIGNAL P3: BIT;BEGINP3 <= P1 AFTER Delay; --присвоение•B: BLOCK•BEGIN•END BLOCK B;END BLOCK X;END BLOCK C;Оператор PROCESSЭтот оператор описывает независимые группы последовательных операторов в виде параллельных процессов.Упрощенный синтаксис оператора PROCESS:<ПРОЦЕСС>::=[<МЕТКА:>][POSTPONED] PROCESS(<СПИСОК ЧУВСТВИТЕЛЬНОСТИ>) [IS]<ДЕКЛАРАТИВНАЯ ЧАСТЬ>BEGIN<ПОСЛЕДОВАТЕЛЬНЫЕ ОПЕРАТОРЫ>END [POSTPONED] PROCESS [<МЕТКА>] ;Использование ключевого слова POSTPONED позволяет примоделировании указать на отложенный процесс (исполнение егоотложено относительно всех исполняющихся в данный моментвремени t процессов).

Такой процесс исполняется последним длямомента времени t. Декларативная часть содержит объявленияобъектов, типов, атрибутов, а также тела подпрограмм и альтернативные точки входа в подпрограммы.Список чувствительности представляет собой перечень сигналов, позволяющий моделирующей программе определить моментывремени, в которые процесс должен активизироваться. При синтезе схемы список чувствительности не учитывается.32Пример описания динамического триггера с использованиемпроцесса:FF: PROCESS (CLK,RST,WE)BEGINIF RST='1' THEND<='0';ELSIF ((CLK='1') AND (CLK'event)) THENIF (WE='1') THEND<=D_IN;END IF;END IF;END PROCESS;Оператор параллельного присваивания сигналаЭтот оператор эквивалентен процессу, в котором при определенных условиях происходит присваивание сигналу нового значения.Синтаксис оператора параллельного присваивания сигнала:<ПАРАЛЛЕЛЬНОЕ ПРИСВАИВАНИЕ СИГНАЛА>::=[ <МЕТКА> : ] [ POSTPONED ] <УСЛОВНОЕ ПРИСВАИВАНИЕ СИГНАЛА>| [ <МЕТКА> : ] [ POSTPONED ] <ПРИСВАИВАНИЕ СИГНАЛА><УСЛОВНОЕ ПРИСВАИВАНИЕ СИГНАЛА> ::=<СИГНАЛ><= <ОПЦИИ> { <ОБРАЗЕЦ> WHEN <УСЛОВИЕ> ELSE }<ОБРАЗЕЦ> [ WHEN <УСЛОВИЕ> ];<ПРИСВАИВАНИЕ СИГНАЛА> ::=WITH <ВЫРАЖЕНИЕ> SELECT<СИГНАЛ> <= <ОПЦИИ> { <ОБРАЗЕЦ> WHEN <ЗНАЧЕНИЕ>, }<ОБРАЗЕЦ> WHEN <ЗНАЧЕНИЕ>;<ОПЦИИ> ::= [ GUARDED ] [ <СПОСОБ ЗАДЕРЖКИ> ]<ОБРАЗЕЦ> ::=<ВЫРАЖЕНИЕ> [ AFTER <ВРЕМЯ> ]| NULL [ AFTER <ВРЕМЯ> ]Опция GUARDED обеспечивает использование при присваивании дополнительного разрешающего сигнала c именем GUARD(неявно объявленного в блоке или явно объявленного пользователем).

Все присваивания разрешены по фронту или по уровню сигнала GUARD. Опция AFTER определяет задержку изменения сигнала.33Динамический триггер можно описать с помощью операторапараллельного присваивания сигнала следующим способом:ENTITY ff ISPORT (RST,CLK,WE: IN std_logic;D_IN: IN std_logic;D: OUT std_logic);END ff;ARCHITECTURE DataFlow OF ff ISBEGIND<= '0'WHEN RST='1' ELSED_IN WHEN (CLK='1') AND (CLK'event) AND (WE='1');END DataFlow;Описание дешифратора:LIBRARY ieee; --Описание подключаемых библиотекUSE ieee.std_logic_1164.ALL;ENTITY decoder ISPORT ( inp: IN std_logic_vector(2 DOWNTO 0);outp: OUT std_logic_vector(7 DOWNTO 0));END decoder;ARCHITECTURE DataFlow OF decoder ISBEGINoutp(0) <= '1' WHEN inp = "000" ELSE '0';outp(1) <= '1' WHEN inp = "001" ELSE '0';outp(2) <= '1' WHEN inp = "010" ELSE '0';outp(3) <= '1' WHEN inp = "011" ELSE '0';outp(4) <= '1' WHEN inp = "100" ELSE '0';outp(5) <= '1' WHEN inp = "101" ELSE '0';outp(6) <= '1' WHEN inp = "110" ELSE '0';outp(7) <= '1' WHEN inp = "111" ELSE '0';END DataFlow;Процедуры и функцииДругим способом группировки последовательных действий являются процедуры и функции, которые могут быть вызваны и исполнены в виде параллельных процессов.

Объявленные внутрипроцедуры или функции объекты, как и для других способов груп34пировки (PROCESS и BLOCK), не могут быть использованы за ихпределами, т. е. приобретают свойство локальности.Упрощенный синтаксис объявления процедуры:<ПРОЦЕДУРА> ::=PROCEDURE <ИМЯ> [ ( <СПИСОК ФОРМАЛЬНЫХ ПАРАМЕТРОВ >) ]|[PURE|IMPURE] FUNCTION <ИМЯ> [(< СПИСОК ФОРМАЛЬНЫХПАРАМЕТРОВ> ) ]RETURN <ТИП>Пример объявления и параллельного вызова процедуры:ENTITY sort4 ISGENERIC (top : integer :=3);PORT (a, b, c, d : IN bit_vector(0 TO top);ra, rb, rc, rd : OUT bit_vector(0 TO top));END sort4;ARCHITECTURE muxes OF sort4 ISPROCEDURE sort2(SIGNAL x, y : IN bit_vector(0 TO top);SIGNAL g, l : OUT bit_vector(0 TO top)) ISBEGINIF x > y THENg <= x;l <= y;ELSEl <= x;g <= y;END IF;END sort2;SIGNAL v1,v2,v3,v4,v5,v6,v7,v8,v9,v10 : bit_vector(0 TO top);BEGIN--Параллельные вызовы процедурыsort2(a, c, v1, v2);sort2(b, d, v3, v4);sort2(v1, v3, v5, v6);sort2(v2, v4, v7, v8);sort2(v6, v7, v9, v10);35-- Параллельные присваивания сигналовra <= v8;rb <= v10;rc <= v9;rd <= v5;END muxes;Оператор-ловушка ASSERTДля упрощения отладки в языке VHDL используется операторловушка ASSERT, позволяющий выполнить в ходе моделированияпроверочное сравнение и при обнаружении ошибки (ложном значении выражения) выдать заданное сообщение:<СООБЩЕНИЕ> ::=[<МЕТКА> :] [POSTPONED] ASSERT <ВЫРАЖЕНИЕ>[REPORT <СООБЩЕНИЕ>] [SEVERITY <ТИП СООБЩЕНИЯ>];Пример сообщения:ASSERT D =’1’REPORT “Ошибка, D не равно 1”;Использование компонентовДля использования устройства в виде компонента другого устройства необходимо объявить его в декларативной части конструкции ARCHITECTURE:<ОБЪЯВЛЕНИЕ КОМПОНЕНТА> ::=COMPONENT <ИМЯ КОМПОНЕНТА>[GENERIC <СПИСОК НАСТРОЕЧНЫХ ПАРАМЕТРОВ>;][PORT<СПИСОК ПОРТОВ>;]END COMPONENT;После этого можно создать экземпляр компонента в описательной части ARCHITECTURE с помощью конструкции использования:<ЭКЗЕМПЛЯР КОМПОНЕНТА> ::=<МЕТКА ЭКЗЕМПЛЯРА>: <ИМЯ КОМПОНЕНТА>36[GENERIC MAP ( <ЗНАЧЕНИЯ НАСТРОЕЧНЫХ КОНСТАНТ> )][PORT MAP ( <СПИСОК СООТВЕТСТВИЙ СИГНАЛОВ> )];Пример использования настроечных констант и декларациикомпонентов:-- Пример использования компонентовLIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_arith.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY adder ISGENERIC ( n:INTEGER:=16);PORT ( a,b: IN std_logic_vector (n-1 DOWNTO 0);result: OUT std_logic_vector(n-1 DOWNTO 0));END adder;ARCHITECTURE behave OF adder ISBEGINresult <= a + b;END;LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_arith.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY adders ISGENERIC(op_n: INTEGER := 16;sum_n: INTEGER :=16);PORT(a,b,c: IN std_logic_vector(op_n-1 DOWNTO 0);result: OUT std_logic_vector(sum_n-1 DOWNTO 0));END adders;ARCHITECTURE behave OF adders ISCOMPONENT adderGENERIC ( n:INTEGER:=op_n);PORT ( a,b: IN std_logic_vector(n-1 DOWNTO 0);result: OUT std_logic_vector(n-1 DOWNTO 0));END COMPONENT;SIGNAL rez: std_logic_vector(sum_n-1 DOWNTO 0);BEGINa1:adderPORT MAP (a => a, b=>b, result=>rez);37a2:adderPORT MAP ( a=>rez,b=>c,result => result);END behave;Оператор GENERATEЭтот оператор обеспечивает возможность итеративного илиусловного повторения деклараций и операторов:<ГЕНЕРАЦИЯ> ::=[<МЕТКА>]:<СПОСОБ ГЕНЕРАЦИИ> GENERATE[<ДЕКЛАРАЦИИ> BEGIN][<ПАРАЛЛЕЛЬНЫЕ ОПЕРАТОРЫ>]END GENERATE [<МЕТКА>];<СПОСОБ ГЕНЕРАЦИИ> ::= FOR <ИДЕНТИФИКАТОР> IN<ДИАПАЗОН> | IF <УСЛОВИЕ>При итеративной генерации используется конструкция FOR, после которой указываются идентификатор номера итерации и его диапазон изменения.

Характеристики

Тип файла
PDF-файл
Размер
22,67 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее