Инфоурок Другое ПрезентацииОсновы языка VHDL

Основы языка VHDL

Скачать материал
Скачать материал "Основы языка VHDL"

Получите профессию

Няня

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Психолог-перинатолог

Описание презентации по отдельным слайдам:

  • Основы языка VHDLМосковский Государственный Университет Приборостроения и Инф...

    1 слайд

    Основы языка VHDL
    Московский Государственный Университет Приборостроения и Информатики

  • Цели и задачиПолучение навыков создания моделей при помощи языка VHDL
Описани...

    2 слайд

    Цели и задачи
    Получение навыков создания моделей при помощи языка VHDL
    Описание цифровых систем при помощи логических функций
    Иерархическое описание цифровых систем средствами языка VHDL


  • Структура курсаВведение
Основные элементы языка VHDL
Методы моделирования на...

    3 слайд

    Структура курса
    Введение
    Основные элементы языка VHDL
    Методы моделирования на VHDL
    Синтез цифровых систем
    Иерархический дизайн цифровых систем


  • Основы языка VHDLВведение

    4 слайд

    Основы языка VHDL
    Введение

  • Основы VHDLЯзык VHDL утвержден на уровне отраслевых стандартов (IEEE) как про...

    5 слайд

    Основы VHDL
    Язык VHDL утвержден на уровне отраслевых стандартов (IEEE) как программное средство для описания аппаратных систем.
    Язык высокого уровня применимый как для моделирования так и для синтеза.


  • Основные определенияHDL – Hardware description language, язык описания аппара...

    6 слайд

    Основные определения
    HDL – Hardware description language, язык описания аппаратных средств
    Поведенческое моделирование: (Behavior modeling) – описание компонента на основе вход-выходных зависимостей
    Структурное моделирование (Structural modeling): описание системы на уровне компонентов и связей между ними

  • Register Transfer Layer (RTL) – Уровень  проектирования (Уровень регистрового...

    7 слайд

    Register Transfer Layer (RTL) – Уровень проектирования (Уровень регистрового обмена)‏
    Синтез – трансляция с уровня описания на языке HDL на уровень электрических цепей
    Процесс – исполняемая единица в языке VHDL
    Основные определения (продолжение)‏

  • Поведенческое моделированиеИспользуется описание поведения элемента
Не исполь...

    8 слайд

    Поведенческое моделирование
    Используется описание поведения элемента
    Не используется информация о связях между компонентами



  • Структурное моделированиеФункциональное и структурное описание объекта модели...

    9 слайд

    Структурное моделирование
    Функциональное и структурное описание объекта моделирования
    Возможно использование аппаратно зависимых ресурсов


  • RTL Синтез

    10 слайд

    RTL Синтез

  • VHDL в сравнении с другими HDL языкамиVHDL: 
«Создать устройство выход которо...

    11 слайд

    VHDL в сравнении с другими HDL языками
    VHDL:
    «Создать устройство выход которого изменяется только в момент когда возникает переход с низкого на высокий уровень на определенном входе. В этот момент выход должен получить значение сигнала на входе»
    Результат: процедура синтеза создаст триггер с синхронизацией «по фронту».
    ABEL, PALASM, AHDL:
    «Создать D-триггер»
    Результат: в зависимости от средств синтеза будет создан D-триггер с синхронизацией по фронту или по срезу.

  • Некоторые особенности VHDLДва подмножества конструкций языка:
Синтезируемые к...

    12 слайд

    Некоторые особенности VHDL
    Два подмножества конструкций языка:
    Синтезируемые конструкции
    Конструкции для моделирования
    Язык VHDL нечувствителен к регистру.
    Операторы языка VHDL разделяются символом ;
    Нечувствителен к количеству пробелов
    Коментарии в VHDL начинаются с символа - -

  • Типовые последовательности VHDL

    13 слайд

    Типовые последовательности VHDL

  • Основы языка VHDLОсновные конструкции VHDL

    14 слайд

    Основы языка VHDL
    Основные конструкции VHDL

  • Основные элементы языка VHDLEntity
Используется для описания интерфейса модел...

    15 слайд

    Основные элементы языка VHDL
    Entity
    Используется для описания интерфейса модели.
    Architecture
    Используется для описания поведения модели.
    Configuration
    Используется для связывания объектов Entity и Architecture.
    Package
    Набор конструкций, которые могут быть использованы другими VHDL модулями (аналог библиотек)‏
    Содержит две части:
    Package declaration
    Package body

  • Объявление ENTITYENTITY   IS
	Generic declarations
	Port declarations
END ; (...

    16 слайд

    Объявление ENTITY
    ENTITY <Имя_Entity> IS
    Generic declarations
    Port declarations
    END <Имя_Entity>; (Версия 1076-1987)‏
    END ENTITY <Имя_Entity>; (Версия 1076-1993)
    Аналогия: символ
    Generic declarations
    Используется для параметризации модели
    Port declarations
    Используется для описания входов и выходов модели

  • Entity: объявления GENERICСинтаксис:  имя_объекта::=;
ENTITY  IS
	





GENER...

    17 слайд

    Entity: объявления GENERIC
    Синтаксис: <Модификатор> имя_объекта:<тип>:=<начальное значение>;

    ENTITY <имя_entity> IS







    GENERIC (
    CONSTANT tplh, tphl: time := 5ns ;
    -- слово CONSTANT можно не указывать
    tphz, tplz: TIME := 3 ns ;
    default_value : INTEGER := 1 ;


  • Entity: объявление внешних сигналовENTITY  IS
	Generic declarations
	PORT (...

    18 слайд

    Entity: объявление внешних сигналов
    ENTITY <имя_entity> IS
    Generic declarations
    PORT (
    SIGNAL clk, clr: IN BIT;
    -- слово SIGNAL можно не указывать
    q: OUT BIT;
    ) ;
    END ENTITY <имя_entity>;

  • ArchitectureАналогия: схема
Описывает функциональную и временную модель
Должн...

    19 слайд

    Architecture
    Аналогия: схема
    Описывает функциональную и временную модель
    Должна быть ассоциирована с ENTITY
    ENTITY может ассоциироваться с несколькими архитектурами
    Процессы внутри архитектуры выполняются параллельно
    Архитектурные стили
    Поведенческое описание
    RTL
    Функциональное (без определения задержек)
    Структурное (Netlist)
    На уровне gates
    Смешанное описание

  • АрхитектураARCHITECTURE  OF  IS
 -- Декларации
 SIGNAL temp: INTEGER := 1;
 C...

    20 слайд

    Архитектура
    ARCHITECTURE <Имя_Архитектуры> OF <имя_Entity> IS
    -- Декларации
    SIGNAL temp: INTEGER := 1;
    CONSTANT load: BOOLEAN := true ;
    TYPE states IS ( S1, S2, S3, S4 ) ;
    -- Декларации компонентов ;
    -- Декларации подтипов ;
    -- Декларации атрибутов ;
    -- Спецификации атрибутов ;
    -- Декларации подпрограмм ;
    -- Спецификации подпрограмм ;
    BEGIN
    Определение процессов ;
    Параллельные вызовы процедур ;
    Параллельные присваивания сигналов ;
    Инстанциирование и привязка компонентов ;
    Операторы GENERATE
    END ARCHITECTURE <имя_архитектуры> ;


  • ConfigurationИспользуется для установления связей внутри проекта
Связывание E...

    21 слайд

    Configuration
    Используется для установления связей внутри проекта
    Связывание ENTITY и ARCHITECTURE
    Связывание COMPONENT и ENTITY+ARCHITECTURE
    Широко используется при моделировании
    Предоставляет гибкие возможности при сравнении альтернативных дизайнов

    CONFIGURATION <имя_конфигурации> OF <имя_ENTITY> IS
    FOR <имя_архитектуры>
    END FOR ;
    END CONFIGURATION <имя_конфигурации> ;

  • Собираем все вместеENTITY cmpl_sig IS    PORT (        a, b, sel: IN BIT ;...

    22 слайд

    Собираем все вместе
    ENTITY cmpl_sig IS
    PORT (
    a, b, sel: IN BIT ;
    x, y, z : OUT BIT
    ) ;
    END ENTITY cmpl_sig ;
    ARCHITECTURE logic OF cmpl_sig IS
    BEGIN
    -- простое присваивание сигнала
    x <= ( a AND NOT sel) OR (b AND sel) ;
    -- условное присваивание
    y <= a WHEN sel=‘0’ ELSE b ;
    -- параметрическое присваивание
    WITH sel SELECT
    z <= a WHEN ‘0’,
    b WHEN ‘1’,
    ‘0’ WHEN OTHERS ;
    END ARCHITECTURE logic ;
    CONFIGURATION cmpl_sig_conf OF cmpl_sig IS
    FOR logic
    END FOR ;
    END CONFIGURATION cmpl_sig_conf ;

  • PackagesПакеты предоставляют удобную возможность для сохранения и повторного...

    23 слайд

    Packages
    Пакеты предоставляют удобную возможность для сохранения и повторного использования кода
    Пакет состоит из:
    Декларации пакета (обязательная часть)
    Деклараций типов
    Деклараций подпрограмм
    Тела пакета (может отсутствовать)
    Определение подпрограмм
    Язык VHDL имеет два встроенных пакета:
    Standard
    TEXTIO

  • Пример использования пакетаLIBRARY IEEE ;USE IEEE.std_logic_1164.all ;PACKAG...

    24 слайд

    Пример использования пакета
    LIBRARY IEEE ;
    USE IEEE.std_logic_1164.all ;
    PACKAGE filt_cmp IS
    TYPE state_type IS (idle, tap1, tap2, tap3, tap4) ;
    FUNCTION compare (variable a,b : integer) RETURN boolean ;
    END PACKAGE filt_cmp ;
    PACKAGE BODY filt_cmp IS
    FUNCTION compare ( variable: a,b : INTEGER ) IS
    VARIABLE temp : BOOLEAN ;
    BEGIN
    IF a < b THEN
    temp := true ;
    ELSE
    temp := false ;
    END IF ;
    RETURN temp ;
    END FUNCTION compare ;
    END PACKAGE BODY filt_cmp ;

  • LibrariesБиблиотека объединяет от одного до нескольких пакетов
Библиотеки рес...

    25 слайд

    Libraries
    Библиотека объединяет от одного до нескольких пакетов
    Библиотеки ресурсов
    Стандартные пакеты
    Пакеты IEEE
    Пакеты производителя (Xilinx, Altera и т.п.)
    Любые другие внешние библиотеки на которые ссылается проект
    Рабочая библиотека
    Библиотека, в которой размещается результат компиляции текущего проекта

  • Использование пакетов и библиотекВсе пакеты должны быть скомпилированы
Неявно...

    26 слайд

    Использование пакетов и библиотек
    Все пакеты должны быть скомпилированы
    Неявное использование библиотек
    Библиотеки WORK и STD не требуют специальных объявлений
    Оператор LIBRARY
    Определяет имя библиотеки которую мы собираемся использовать
    Использует символическое имя директории с файлами библиотеки
    Определяется настройками проекта
    Оператор USE
    Определяет конкретный пакет или/и объект который мы будем использовать

  • 27 слайд

  • Стандартные библиотекиБиблиотека STD
Содержит следующие пакеты
Standard (Типы...

    28 слайд

    Стандартные библиотеки
    Библиотека STD
    Содержит следующие пакеты
    Standard (Типы: Bit, Boolean, Integer, Real, Time и функции для поддержки этих типов)
    Textio (Файловые операции)
    Встроенные библиотеки

  • Пакет StandardТип BIT
Принимает одно из двух значений ‘0’ или ‘1’SIGNAL a_te...

    29 слайд

    Пакет Standard
    Тип BIT
    Принимает одно из двух значений ‘0’ или ‘1’
    SIGNAL a_temp: BIT ;
    Типы данных оканчивающиеся на _VECTOR позволяют работать с массивами
    SIGNAL temp : BIT_VECTOR (3 DOWNTO 0) ;
    SIGNAL temp : bit_vector (0 TO 3) ;
    Тип BOOLEAN
    (false, true)
    Тип INTEGER
    Положительные и отрицательные целые числа
    SIGNAL int_tmp: INTEGER ; -- 32-битовое целое
    SIGNAL int_tmp1: INTEGER RANGE 0 to 255 ; -- 8 бит

  • Другие типы из пакеты StandardТип NATURAL
Целое в диапазоне от 0 до 232
Тип P...

    30 слайд

    Другие типы из пакеты Standard
    Тип NATURAL
    Целое в диапазоне от 0 до 232
    Тип POSITIVE
    Целое в диапазоне от 1 до 232
    Тип CHARACTER
    ASCII символы
    Тип STRING
    Массив символов
    Тип TIME
    Интервал времени с единицами измерения (ps, us, ns, ms, sec, min, hr)



  • Стандартные библиотекиБиблиотека IEEE ;
 Содержит следующие пакеты:
std_logic...

    31 слайд

    Стандартные библиотеки
    Библиотека IEEE ;
    Содержит следующие пакеты:
    std_logic_1164 (тип std_logic и функции для работы с ним)
    std_logic_arith (арифметические функции)
    std_logic_signed (арифметические операции со знаком)
    std_logic_unsigned (беззнаковые арифметические операции)

  • Типы данных из пакета std_logic_1164Тип STD_LOGIC  
 9-значная логика
‘1’ – л...

    32 слайд

    Типы данных из пакета std_logic_1164
    Тип STD_LOGIC
    9-значная логика
    ‘1’ – лог. 1
    ‘0’ – лог. 0
    ‘X’ – неопределенность
    ‘Z’ – выс.импеданс
    ‘-’ – Don’t care
    Поддержка нескольких источников сигнала
    Тип STD_ULOGIC
    То же что и STD_LOGIC но без поддержки нескольких источников
    ‘H’ – слабая единица
    ‘L’ – слабый ноль
    ‘W’ – слабая неопределенность

  • 33 слайд

  • Основы языка VHDLМоделирование цифровых систем

    34 слайд

    Основы языка VHDL
    Моделирование цифровых систем

  • Основные конструкции для моделированияКонстанты
Сигналы
Операторы
Присваивани...

    35 слайд

    Основные конструкции для моделирования
    Константы
    Сигналы
    Операторы
    Присваивание сигналов
    Процессы
    Последовательные операторы
    Переменные
    Определяемые пользователем типы

  • КонстантыПрисваивают имя константе
Объявление константы
CONSTANT  :  :=  ;
Ко...

    36 слайд

    Константы
    Присваивают имя константе
    Объявление константы
    CONSTANT <имя_константы> : <тип> := <значение> ;
    Константа не может изменять свое значение
    Повышает читаемость кода
    Упрощает переносимость

  • СигналыСигналы описывают физические соединения (проводники) между процессами...

    37 слайд

    Сигналы
    Сигналы описывают физические соединения (проводники) между процессами (функциями)
    Сигналы могут быть объявлены в пакетах, Entity или в архитектуре
    Функциональный блок
    MUX

    сигналы
    сигналы
    Процесс
    Функциональный блок
    (РЕГИСТРЫ)

    Процесс
    сигналы
    сигналы

  • Присваивание значение сигналамSIGNAL temp: std_logic_vector (7 DOWNTO 0)
Прис...

    38 слайд

    Присваивание значение сигналам
    SIGNAL temp: std_logic_vector (7 DOWNTO 0)
    Присваивание всех битов:
    temp <= “10101010” ;
    temp <= x”AA” ;
    Один бит:
    temp(7) <= ‘1’ ;
    Группа битов:
    temp(7 downto 4) <= “1010” ;

  • Присваивание сигналовПрисваивание сигналов осуществляется с помощью оператора

    39 слайд

    Присваивание сигналов
    Присваивание сигналов осуществляется с помощью оператора <=
    Присваивание сигнала подразумевает создание неявного процесса (функции) с элементом памяти

  • Операторы VHDL

    40 слайд

    Операторы VHDL

  • Сигналы для межсоединенийENTITY simp IS    PORT (        i1, i2 : IN BIT ;...

    41 слайд

    Сигналы для межсоединений
    ENTITY simp IS
    PORT (
    i1, i2 : IN BIT ;
    o: OUT BIT
    ) ;
    END ENTITY simp ;
    ARCHITECTURE logic OF simp IS
    int <= i1 AND i2 ;
    o <= NOT int ;
    SIGNAL int : BIT ;
    BEGIN
    END ARCHITECTURE logic ;

  • Перегрузка операторовVHDL определяет арифметические и логические функции толь...

    42 слайд

    Перегрузка операторов
    VHDL определяет арифметические и логические функции только для встроенных типов данных (определенных в стандартных пакетах)
    Как использовать такие функции с другими типами данных?
    Перегрузка операторов – определение арифметических и логических функций для других типов данных
    Операторы перегружаются путем определения функции с именем соответствующего оператора

  • Функции и пакеты перегрузки операцийПакеты содержащие следующие операторы мог...

    43 слайд

    Функции и пакеты перегрузки операций
    Пакеты содержащие следующие операторы могут быть найдены в библиотеке LIBRARY IEEE
    std_logic_arith (арифметические функции)
    std_logic_signed (знаковые арифметические функции)
    std_logic_unsigned (беззнаковые арифметические функции)
    numeric_std (знаковые и беззнаковые функции)
    Например пакет std_logic_unsigned определяет некоторые из этих функций

    FUNCTION “+” (l: std_logic_vector; r:std_logic_vector) return std_logic_vector ;
    FUNCTION “+” (l: std_logic_vector; r:INTEGER) return std_logic_vector ;
    FUNCTION “+” (l: INTEGER; r:std_logic_vector) return std_logic_vector ;
    FUNCTION “+” (l: std_logic_vector; r:std_logic) return std_logic_vector ;
    FUNCTION “+” (l: std_logic; r:std_logic_vector) return std_logic_vector ;


  • Использование перегруженных операторовLibrary IEEE ;USE IEEE.std_logic_1164....

    44 слайд

    Использование перегруженных операторов
    Library IEEE ;
    USE IEEE.std_logic_1164.ALL ;
    USE IEEE.std_logic_unsigned.ALL ;
    Entity overload IS
    PORT (
    a: IN std_logic_vector (4 DOWNTO 0) ;
    b: IN std_logic_vector (4 DOWNTO 0) ;
    sum: OUT std_logic_vector (4 DOWNTO 0) ;

  • Параллельное присваивание сигналовИспользуется для присваивания значений сигн...

    45 слайд

    Параллельное присваивание сигналов
    Используется для присваивания значений сигналу с использованием различных выражений
    Подразумевает создание неявного процесса, выполняемого параллельно с другими процессами
    (список чувствительности такого процесса – все переменные справа от знака присваивания)
    Три типа оператора параллельного присваивания:
    Простой оператор присваивания
    Условный оператор присваивания
    Case-оператор присваивания

  • Простой оператор присваиванияФормат:

    46 слайд

    Простой оператор присваивания
    Формат: <имя_сигнала> <= <выражение> ;
    Пример:

    qa <= r or t ;
    qb <= ( qa and not (g xor h) ) ;

  • Условный оператор присваиванияФормат:
Пример: 
qa

    47 слайд

    Условный оператор присваивания
    Формат:






    Пример:

    qa <=


    <имя_сигнала> <= <выражение1> when <условие1> else
    <выражение2> when <условие2> else

    <выражениеn> when <условиеn> else
    <выражениеn+1>
    a WHEN sela = ‘1’ ELSE
    b WHEN selb = ‘1’ ELSE
    c ;

    Неявный процесс

  • Оператор присваивания WITHФормат:
Пример: 
WITH sel SELECT 
q

    48 слайд

    Оператор присваивания WITH
    Формат:




    Пример:

    WITH sel SELECT
    q <= a WHEN “00”,
    b WHEN “01”,
    c WHEN “10”,
    d WHEN OTHERS ;
    WITH <выражение> SELECT
    <имя_сигнала> <= <выражение1> WHEN <условие1>,
    <выражение2> WHEN <условие2>,

    <выражениеn> WHEN OTHERS ;

    Неявный процесс

  • 49Задержка в операторе присваиванияВ операторе присваивания можно использоват...

    49 слайд

    49
    Задержка в операторе присваивания
    В операторе присваивания можно использовать задержку
    Два типа задержек:
    Инерционная задержка (по умолчанию)
    Импульс длина которого короче указанного значения не будет передан
    Пр. a <= b AFTER 10 ns ;
    Транспортная задержка
    любой импульс будет передан, несмотря на его длительность
    Пр. a<= TRANSPORT b AFTER 10 ns ;

  • 50Явное описание процессаОператор процесса исполняется до тех пор пока не вст...

    50 слайд

    50
    Явное описание процесса
    Оператор процесса исполняется до тех пор пока не встретит оператор WAIT или список чувствительности процесса.
    Список чувствительности подобен оператору WAIT в конце процесса
    Процесс может иметь несколько операторов WAIT
    Процесс не может иметь единовременно и список чувствительности и оператор WAIT
    Процесс содержит последовательные операторы
    Параллельное исполнение
    Архитектура может включать в себя несколько процессов
    Все процессы исполняются параллельно
    метка: PROCESS (<список_чув.>)
    <объявления констант>
    <объявления типов>
    <объявления переменных>
    BEGIN
    <последовательный оператор>

    <последовательный оператор>
    END PROCESS ;

  • 51Примеры процессовproc1: PROCESS (a,b)BEGIN	-- последовательные операторы...

    51 слайд

    51
    Примеры процессов
    proc1: PROCESS (a,b)
    BEGIN
    -- последовательные операторы
    END PROCESS ;
    proc1: PROCESS
    BEGIN
    -- последовательные операторы
    WAIT ON (a,b) ;
    END PROCESS ;

  • 52Последовательные операторыПоследовательные операторы
Простое присваивание с...

    52 слайд

    52
    Последовательные операторы
    Последовательные операторы
    Простое присваивание сигнала
    Оператор IF-THEN
    Оператор CASE
    Оператор цикла
    Оператор WAIT

  • 53Оператор IF-THENФормат
IF  THEN
	
ELSIF  THEN 
	
ELSE
	
END IF ;PROCESS (se...

    53 слайд

    53
    Оператор IF-THEN
    Формат

    IF <условие> THEN
    <последовательность операторов>
    ELSIF <условие2> THEN
    <последовательность операторов>
    ELSE
    <последовательность операторов>
    END IF ;
    PROCESS (sela, selb, a, b, c)
    BEGIN
    IF sela=‘1’ THEN
    q<=a ;
    ELSIF selb=‘1’ THEN
    q <= b ;
    ELSE
    q <= c ;
    END IF ;
    END PROCESS ;
    Пример

  • 54Оператор CASEФормат
CASE  IS
	WHEN  =&gt; 
			
	WHEN  =&gt; 
			
			…
	WHEN OTHER...

    54 слайд

    54
    Оператор CASE
    Формат

    CASE <выражение> IS
    WHEN <условие1> =>
    <посл. операторы>
    WHEN <условие2> =>
    <посл. операторы>

    WHEN OTHERS => -- (опц.)
    <посл. операторы>
    END CASE ;

    PROCESS (sela, selb, a, b, c)
    BEGIN

    Пример

    CASE sel IS
    WHEN “00” => q<=a ;WHEN “01” => q<=b ;WHEN “10” => q<=c ;WHEN OTHERS =>q<=d ;
    END CASE ;

    END PROCESS ;

  • 55Последовательные операторы циклаОператор LOOP
повторяется бесконечно пока н...

    55 слайд

    55
    Последовательные операторы цикла
    Оператор LOOP
    повторяется бесконечно пока не встретится оператор EXIT

    Оператор WHILE
    Выход по условию в конце цикла

    Оператор FOR
    Цикл на основе счетчика


    [метка] LOOP
    -- последовательные операторы
    NEXT метка WHEN … ;
    EXIT метка WHEN … ;
    END LOOP ;
    WHILE <условие> LOOP
    -- последовательные операторы
    END LOOP ;
    FOR <идент.> IN <range> LOOP
    -- послед. операторы
    END LOOP ;

  • 56Оператор WAITWAIT ON 
Приостанавливает исполнение до события, связанного с...

    56 слайд

    56
    Оператор WAIT
    WAIT ON <сигнал>
    Приостанавливает исполнение до события, связанного с сигналом
    WAIT ON a,b ;
    WAIT UNTIL <логическое_выражение>
    Останавливает исполнение до момента, когда выражение станет истиной
    WAIT UNTIL (int < 100) ;
    WAIT FOR <интервал>
    приостанавливает выполнение на указанный интервал
    WAIT FOR 20 ns ;
    Смешанный WAIT
    WAIT UNTIL (a=‘1’) FOR 5 us ;



  • 57Событие(Event) – любое изменение сигнала
Цикл моделирования
модельное время...

    57 слайд

    57
    Событие(Event) – любое изменение сигнала
    Цикл моделирования
    модельное время
    Дельта-задержка
    Фаза выполнения процесса
    Фаза обновления сигналов
    Цикл моделирования заканчивается когда выполнены все процессы и обновлены все сигналы

    VHDL-симуляция

  • 58Эквивалентные функцииLIBRARY IEEE ;USE IEEE.Std_logic_1164.ALL ;
ENTITY si...

    58 слайд

    58
    Эквивалентные функции
    LIBRARY IEEE ;
    USE IEEE.Std_logic_1164.ALL ;
    ENTITY simp IS
    PORT (
    a,b : IN std_logic ;
    y : OUT std_logic ;
    ) ;
    END ENTITY simp ;
    ARCHITECTURE logic OF simp IS
    SIGNAL c : std_logic ;
    BEGIN
    c <= a AND b ;
    y <= c ;
    END ARCHITECTURE logic ;
    LIBRARY IEEE ;
    USE IEEE.Std_logic_1164.ALL ;
    ENTITY simp IS
    PORT (
    a,b : IN std_logic ;
    y : OUT std_logic ;
    ) ;
    END ENTITY simp ;
    ARCHITECTURE logic OF simp IS
    SIGNAL c : std_logic ;
    BEGIN
    Process1: PROCESS(a,b)
    BEGIN
    c <= a AND b ;
    END PROCESS process1 ;
    Process2: PROCESS(c)
    BEGIN
    y <= c ;
    END PROCESS Process2 ;
    END ARCHITECTURE logic ;

  • 59Неэквивалентные функцииLIBRARY IEEE ;USE IEEE.Std_logic_1164.ALL ;
ENTITY...

    59 слайд

    59
    Неэквивалентные функции
    LIBRARY IEEE ;
    USE IEEE.Std_logic_1164.ALL ;
    ENTITY simp IS
    PORT (
    a,b : IN std_logic ;
    y : OUT std_logic ;
    ) ;
    END ENTITY simp ;
    ARCHITECTURE logic OF simp IS
    SIGNAL c : std_logic ;
    BEGIN
    c <= a AND b ;
    y <= c ;
    END ARCHITECTURE logic ;
    LIBRARY IEEE ;
    USE IEEE.Std_logic_1164.ALL ;
    ENTITY simp IS
    PORT (
    a,b : IN std_logic ;
    y : OUT std_logic ;
    ) ;
    END ENTITY simp ;
    ARCHITECTURE logic OF simp IS
    SIGNAL c : std_logic ;
    BEGIN
    PROCESS( a, b)
    BEGIN
    END PROCESS
    END ARCHITECTURE logic ;
    c <= a AND b ;
    y <= c ;

  • 60Объявление переменныхПеременные объявляются внутри процесса
Для присваивани...

    60 слайд

    60
    Объявление переменных
    Переменные объявляются внутри процесса
    Для присваивания используется оператор :=
    Объявление переменных
    VARIABLE <имя>: <Тип_данных> := <выражение> ;
    VARIABLE temp: std_logic_vector (7 DOWNTO 0) ;
    Обновление переменной происходит немедленно
    Не вносит задержку

  • 61Присваивание значений переменнымVARIABLE temp : std_logic_vector ( 7 DOWNTO...

    61 слайд

    61
    Присваивание значений переменным
    VARIABLE temp : std_logic_vector ( 7 DOWNTO 0 ) ;
    Все биты
    temp := “10101010” ;
    temp := x”AA” ;
    Один бит
    temp(7) := ‘1’ ;
    Группа битов
    temp(7 DOWNTO 4) := “1010” ;
    Один бит: апостроф ‘
    Несколько бит (строка): кавычки “

  • 62Эквивалентные функцииLIBRARY IEEE ;USE IEEE.Std_logic_1164.ALL ;
ENTITY si...

    62 слайд

    62
    Эквивалентные функции
    LIBRARY IEEE ;
    USE IEEE.Std_logic_1164.ALL ;
    ENTITY simp IS
    PORT (
    a,b : IN std_logic ;
    y : OUT std_logic ;
    ) ;
    END ENTITY simp ;
    ARCHITECTURE logic OF simp IS
    SIGNAL c : std_logic ;
    BEGIN
    c <= a AND b ;
    y <= c ;
    END ARCHITECTURE logic ;
    LIBRARY IEEE ;
    USE IEEE.Std_logic_1164.ALL ;
    ENTITY simp IS
    PORT (
    a,b : IN std_logic ;
    y : OUT std_logic ;
    ) ;
    END ENTITY simp ;
    ARCHITECTURE logic OF simp IS
    SIGNAL c : std_logic ;
    BEGIN
    PROCESS( a, b)
    VARIABLE c: std_logic ;
    BEGIN
    END PROCESS
    END ARCHITECTURE logic ;
    c <= a AND b ;
    y <= c ;

  • 63Сигналы против переменных

    63 слайд

    63
    Сигналы против переменных

  • 64Определяемые пользователем типыМассивы Arrays
Перечислимые типы данных

    64 слайд

    64
    Определяемые пользователем типы
    Массивы Arrays
    Перечислимые типы данных

  • 65Массив (Array)Создает двумерный тип данных
Созданный тип необходимо использ...

    65 слайд

    65
    Массив (Array)
    Создает двумерный тип данных
    Созданный тип необходимо использовать при объявлении констант, сигналов или переменных такого типа
    Используется для резервирования памяти и размещения тестовых векторов или данных
    Объявление типа памяти

    TYPE <имя_типа> IS ARRAY (<диапазон_целых>) OF
    <тип_данных_элемента> ;

  • 66Пример использования массиваARCHITECTURE logic OF my_memory IS 		TYPE mem I...

    66 слайд

    66
    Пример использования массива
    ARCHITECTURE logic OF my_memory IS
    TYPE mem IS ARRAY (0 to 63) OF std_logic_vector (7 DOWNTO 0) ;
    -- создается новый тип данных «массив» с именем mem который
    -- использует 64 адресных позиции по 8 бит каждая
    SIGNAL mem_64x8_a, mem_64x8_b : mem ;
    -- создается 2 64x8бит массива
    mem_64x8_a(12) <= x”A4” ;
    mem_64_8_b(50) <= “11110000” ;
    BEGIN
    END ARCHITECTURE logic ;

  • 67Enumerated Data TypeПозволяет перечислить все значения определяемого типа д...

    67 слайд

    67
    Enumerated Data Type
    Позволяет перечислить все значения определяемого типа данных
    Используется при определении констант, сигналов или переменных этого типа
    Используется для
    Повышения читаемости кода
    При описании конечных автоматов
    Объявление перечислимого типа данных
    TYPE <имя_типа> IS (перечисление значений через запятую) ;

    TYPE enum IS (idle, fill, heat_w, wash, drain) ;
    SIGNAL dshwshr_st : enum ;

    drain_led <= ‘1’ WHEN dshwsher_st = drain ELSE ‘0’ ;

  • Основы языка VHDLСинтез цифровых систем

    68 слайд

    Основы языка VHDL
    Синтез цифровых систем

  • 69RTL синтезProcess( a,b,c,d,sel )begin 	case (sel) is 		when “00” =&gt; mux_...

    69 слайд

    69
    RTL синтез
    Process( a,b,c,d,sel )
    begin
    case (sel) is
    when “00” => mux_out <= a;
    when “01” => mux_out <= b;
    when “10” => mux_out <= c;
    when “11” => mux_out <= d;
    end case ;

  • 70Два типа синтеза процессаКомбинаторный процесс
Список чувствительности вклю...

    70 слайд

    70
    Два типа синтеза процесса
    Комбинаторный процесс
    Список чувствительности включает все входы логических элементов
    Пример


    Последовательный процесс
    Чувствителен только к сигналам такирования и к управляющим сигналам
    Пример

    PROCESS( a,b,sel )
    PROCESS( clr, clk )

  • 71D-триггер на основе функции rising_edgeLIBRARY IEEE ;USE IEEE.Std_logic_11...

    71 слайд

    71
    D-триггер на основе функции rising_edge
    LIBRARY IEEE ;
    USE IEEE.Std_logic_1164.ALL ;
    ENTITY dff_b IS
    PORT (
    clk,d : IN std_logic ;
    q : OUT std_logic
    ) ;
    END ENTITY dff_b ;
    ARCHITECTURE rtl OF dff_b IS
    SIGNAL c : std_logic ;
    BEGIN
    PROCESS(clk)
    BEGIN
    IF rising_edge(clk) THEN
    q <= d ;
    END IF ;
    END PROCESS ;
    END ARCHITECTURE logic ;

  • 72D-триггер с асинхронным сбросомLIBRARY IEEE ;USE IEEE.Std_logic_1164.ALL ;...

    72 слайд

    72
    D-триггер с асинхронным сбросом
    LIBRARY IEEE ;
    USE IEEE.Std_logic_1164.ALL ;
    ENTITY dff_aclr IS
    PORT (
    d,clk,clr : IN std_logic ;
    q : OUT std_logic
    ) ;
    END ENTITY dff_aclr ;
    ARCHITECTURE rtl OF dff_aclr IS
    BEGIN
    PROCESS(clk)
    BEGIN
    IF clr=‘0’ THEN
    q <= ‘0’ ;
    q <= d ;
    END IF ;
    END PROCESS ;
    END ARCHITECTURE logic ;
    ELSIF rising_edge(clk) THEN

  • 73D-триггер с синхронным сбросомLIBRARY IEEE ;USE IEEE.Std_logic_1164.ALL ;...

    73 слайд

    73
    D-триггер с синхронным сбросом
    LIBRARY IEEE ;
    USE IEEE.Std_logic_1164.ALL ;
    ENTITY dff_aclr IS
    PORT (
    d,clk,clr : IN std_logic ;
    q : OUT std_logic
    ) ;
    END ENTITY dff_aclr ;
    ARCHITECTURE rtl OF dff_aclr IS
    BEGIN
    PROCESS(clk)
    BEGIN
    IF rising_edge(clk) THEN

    ELSE q <= d ;
    END IF ; END IF ;
    END PROCESS ;
    END ARCHITECTURE logic ;
    IF clr=‘0’ THEN
    q <= ‘0’ ;

  • 74D-триггер с асинхронным сбросом и управлением синхронизациейLIBRARY IEEE ;...

    74 слайд

    74
    D-триггер с асинхронным сбросом и управлением синхронизацией
    LIBRARY IEEE ;
    USE IEEE.Std_logic_1164.ALL ;
    ENTITY dff_aclr_ena IS
    PORT (
    d,clk,clr, ena : IN std_logic ;
    q : OUT std_logic
    ) ;
    END ENTITY dff_aclr_ena ;
    ARCHITECTURE rtl OF dff_aclr_ena IS
    BEGIN
    PROCESS(clk,clr)
    BEGIN
    IF clr=‘0’ THEN
    q <= ‘0’ ;
    END IF ;
    END IF ;
    END PROCESS ;
    END ARCHITECTURE rtl ;
    ELSIF rising_edge(clk) THEN
    IF ena=‘1’ THEN
    q <= d ;

  • 75Синтез регистраПрисваивание сигнала внутри оператора IF-THEN с условием про...

    75 слайд

    75
    Синтез регистра
    Присваивание сигнала внутри оператора IF-THEN с условием проверки сигнала тактирования приводит к синтезу регистра

    PROCESS (clk)
    BEGIN
    IF rising_edge( clk ) THEN
    q <= d ;
    END IF ;
    END PROCESS ;

  • 76Синтез счетчикаLIBRARY IEEE ;USE IEEE.Std_logic_1164.ALL ;USE IEEE.Std_lo...

    76 слайд

    76
    Синтез счетчика
    LIBRARY IEEE ;
    USE IEEE.Std_logic_1164.ALL ;
    USE IEEE.Std_logic_unsigned.ALL ;
    ENTITY counter IS
    PORT (
    clk, rst : IN std_logic ;
    q : OUT std_logic_vector (15 DOWNTO 0)
    ) ;
    END ENTITY counter ;
    ARCHITECTURE logic OF counter IS
    SIGNAL tmp_q : std_logic_vector (15 DOWNTO 0) ;
    BEGIN
    PROCESS(clk, rst)
    BEGIN
    IF rst=‘0’ THEN
    tmp_q <= (OTHERS => ‘0’ ) ;
    ELSIF rising_edge(clk) THEN

    tmp_q < = tmp_q + 1 ;
    END IF ;
    END PROCESS ;
    q <= tmp_q ;
    END ARCHITECTURE ;

  • Основы языка VHDLСтруктурное описание

    77 слайд

    Основы языка VHDL
    Структурное описание

  • 78Иерархический дизайн – дизайн в нескольких файлахИерархический дизайн испол...

    78 слайд

    78
    Иерархический дизайн – дизайн в нескольких файлах
    Иерархический дизайн использует объявление (Declaration) и размещение (Instantiation) компонентов

  • Объявление и размещение компонентовОбъявление компонента используется для ука...

    79 слайд

    Объявление и размещение компонентов
    Объявление компонента используется для указания типов данных и портов другого ENTITY


    COMPONENT <имя_подключаемого_entity>
    PORT (
    <имя_порта> : <тип_порта> <тип_данных> ;

    <имя_порта> : <тип_порта> <тип_данных>
    ) ;
    END COMPONENT ;

    Размещение компонента – параллельный оператор, используемый для вставки и привязки компонента в текущую архитектуру


    <имя_размещения> : <имя_подключаемого_entity>
    PORT MAP (<имя_порта_подключаемого_entity> => <сигнал>
    ...
    <имя_порта_подключаемого_entity> => <сигнал>
    ) ;

  • Объявление и размещение компонентовLIBRARY IEEE ;USE IEEE.Std_logic_1164.ALL...

    80 слайд

    Объявление и размещение компонентов
    LIBRARY IEEE ;
    USE IEEE.Std_logic_1164.ALL ;
    ENTITY tollv IS
    PORT (
    tclk, tcross, tnickel, tdime, tquarter : IN std_logic ;
    tgreen, tred : OUT Std_logic
    ) ;
    END ENTITY tollv ;
    ARCHITECTURE tollv_arch OF tollv IS
    COMPONENT tollc
    PORT (
    clk, cross, nickel, dime, quarter : IN std_logic ;
    green, red : OUT std_logic
    ) ;
    END COMPONENT ;
    BEGIN
    U1: tollc PORT MAP (clk=>tclk, cross=>tcross, nickel=>tnickel, dime=>tdime,
    quarter => tquarter, green => tgreen, red => red )
    END ARCHITECTURE tollv_arch ;

  • Основы языка VHDLДополнительные операторы языка VHDL

    81 слайд

    Основы языка VHDL
    Дополнительные операторы языка VHDL

  • Оператор GENERATE: FOR  IN  GENERATE :  		[ PORT MAP ]END GENERATE ;COMPON...

    82 слайд

    Оператор GENERATE
    <метка_группы>: FOR <индекс> IN <диапазон> GENERATE
    <метка_компонента>: <имя_компонента>
    [ PORT MAP ]
    END GENERATE ;
    COMPONENT register_4 IS
    PORT (
    data_in: IN std_logic_vector (3 DOWNTO 0) ;
    data_out : OUT std_logic_vector (3 DOWNTO 0) ;
    clk: IN std_logic
    ) ;
    END COMPONENT ;
    BEGIN
    registers: for i from 0 to 3 generate
    Reg: register_4
    port map (
    data_in=>data_16_in((i+1)*4-1 downto i*4),
    data_out=> data_16_out ((i+1)*4-1 downto i*4),
    clk=>clk16 ) ;
    END GENERATE Registers ;
    END ARCHITECTURE Registers_Arch ;

  • Типы данных

    83 слайд

    Типы данных

  • Спасибо за внимание

    84 слайд

    Спасибо за внимание

Получите профессию

Менеджер по туризму

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 668 184 материала в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 03.11.2020 979
    • PPTX 1.7 мбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Расева Светлана Ивановна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Расева Светлана Ивановна
    Расева Светлана Ивановна
    • На сайте: 3 года и 4 месяца
    • Подписчики: 0
    • Всего просмотров: 94743
    • Всего материалов: 244

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Интернет-маркетолог

Интернет-маркетолог

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Библиотечно-библиографические и информационные знания в педагогическом процессе

Педагог-библиотекарь

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 496 человек из 71 региона
  • Этот курс уже прошли 2 331 человек

Курс профессиональной переподготовки

Руководство электронной службой архивов, библиотек и информационно-библиотечных центров

Начальник отдела (заведующий отделом) архива

600 ч.

9840 руб. 5600 руб.
Подать заявку О курсе
  • Этот курс уже прошли 25 человек

Курс профессиональной переподготовки

Организация деятельности библиотекаря в профессиональном образовании

Библиотекарь

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 285 человек из 66 регионов
  • Этот курс уже прошли 851 человек

Мини-курс

Управление проектами и стоимостная оценка в современном бизнесе

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Детские и взрослые эмоции

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Этот курс уже прошли 10 человек

Мини-курс

Цифровые инструменты и безопасность в интернете

4 ч.

780 руб. 390 руб.
Подать заявку О курсе