Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Проектирование цифровых устройств на языке vhdl

Содержание

Комбинационные схемыСдвиговыеСдвиг влево / вправоВращение влево / вправоЛогическиеРеализация булевых функцийАрифметическиеСложение, вычитаниеУмножение, делениеСхемотехническиеМультиплексоры, демультиплексорыШифраторы, дешифраторыКлассификация условная
Проектирование цифровых устройств на языке VHDLОписание комбинационных схем Комбинационные схемыСдвиговыеСдвиг влево / вправоВращение влево / вправоЛогическиеРеализация булевых функцийАрифметическиеСложение, вычитаниеУмножение, делениеСхемотехническиеМультиплексоры, демультиплексорыШифраторы, дешифраторыКлассификация условная Структура цифрового устройстваКомбинационная логикаРегистры Стили описания на VHDLСтильПотоков данных (dataflow)Структурный(structural)«параллельные» операторыкомпоненты и связи«последовательные» операторы Арифметические и логические операторы, операторы отношений Основные операторыnot*  /+  -  &sll srl sla sra ror Арифметические операторыУмножение (*)Деление (/)Сложение (+)Вычитание (–)Приоритет операций обычный (арифметический)Результат синтеза – комбинационная схема Пакеты IEEEstd_logic_1164Стандарт IEEEОпределяет типы std_logic и std_logic_vectorПример: std_logic_vector(7 downto 0)Описывает логические операцииstd_logic_arithНе Пакеты IEEEstd_logic_unsignedНе является стандартом (разработан Synopsys)Заставляет компилятор интерпретировать std_logic_vector как unsignedstd_logic_signedНе является Пакеты IEEEnumeric_stdСтандарт IEEEОпределяет типы signed и unsignedОписывает арифметические операцииНесовместим с пакетом std_logic_arith Подключение арифметических пакетов IEEEРабота с беззнаковыми целыми числами (unsigned)Работа со знаковыми целыми Преобразование типов данных Присваивание ПрисваиваниеПростое присваиваниеУсловное присваивание (when-else)Выборочное присваивание (with-select-when) Простое присваиваниеОператор Простое присваивание – примерСдвиг влево (дополнение нулем)a_shl Простое присваивание – примерВращение вправоa_ror Условное присваиваниеОператор Условное присваиваниеsig_name Условное присваивание – примерlibrary ieee;use ieee.std_logic_1164.all;entity tri_state is	port (	ena:		in std_logic;				input:		in std_logic_vector(7 downto Управляемое присваиваниеОператор Управляемое присваиваниеwith choise_expression select	sig_name Описание вариантов выбора (choisei)Указание одиночного значенияПеречисление нескольких значенийЗадание диапазона значенийКлючевое слово others Простые правилаДля описания чисто комбинационной логики используйте только параллельные операторы Генерация выражений Генерация выраженийКонструкция for-generateКонструкция if-generatelabel:		for var in range generate					concurrent statements				end generate;label:		if condition generate					concurrent statements				end generate; Генерация выражений – примерПодсчет четности вектораИнтерфейс объекта:Вход – 8-разрядный вектор dataВыход – бит четности parityФункциональность объекта: Генерация выражений – примерlibrary ieee;use ieee.std_logic_1164.all;entity par_count is	port (	data:		in std_logic_vector(7 downto 0);			parity:	out
Слайды презентации

Слайд 2 Комбинационные схемы

Сдвиговые
Сдвиг влево / вправо
Вращение влево / вправо
Логические
Реализация

Комбинационные схемыСдвиговыеСдвиг влево / вправоВращение влево / вправоЛогическиеРеализация булевых функцийАрифметическиеСложение, вычитаниеУмножение, делениеСхемотехническиеМультиплексоры, демультиплексорыШифраторы, дешифраторыКлассификация условная

булевых функций

Арифметические
Сложение, вычитание
Умножение, деление
Схемотехнические
Мультиплексоры, демультиплексоры
Шифраторы, дешифраторы

Классификация условная


Слайд 3 Структура цифрового устройства
Комбинационная логика
Регистры

Структура цифрового устройстваКомбинационная логикаРегистры

Слайд 4 Стили описания на VHDL
Стиль
Потоков данных (dataflow)
Структурный
(structural)
«параллельные» операторы
компоненты и

Стили описания на VHDLСтильПотоков данных (dataflow)Структурный(structural)«параллельные» операторыкомпоненты и связи«последовательные» операторы

связи
«последовательные» операторы


Слайд 5 Арифметические и логические операторы, операторы отношений

Арифметические и логические операторы, операторы отношений

Слайд 6 Основные операторы
not
* /
+ - &
sll

Основные операторыnot* /+ - &sll srl sla sra ror rol= /=

srl sla sra ror rol
= /=

<= > >=
and or nand nor xor xnor

не равно

VHDL-93

конкатенация


Слайд 7 Арифметические операторы
Умножение (*)
Деление (/)
Сложение (+)
Вычитание (–)

Приоритет операций обычный

Арифметические операторыУмножение (*)Деление (/)Сложение (+)Вычитание (–)Приоритет операций обычный (арифметический)Результат синтеза – комбинационная схема

(арифметический)
Результат синтеза – комбинационная схема


Слайд 8 Пакеты IEEE
std_logic_1164
Стандарт IEEE
Определяет типы std_logic и std_logic_vector
Пример: std_logic_vector(7

Пакеты IEEEstd_logic_1164Стандарт IEEEОпределяет типы std_logic и std_logic_vectorПример: std_logic_vector(7 downto 0)Описывает логические

downto 0)
Описывает логические операции
std_logic_arith
Не является стандартом (разработан Synopsys)
Определяет типы

signed (знаковое целое) и unsigned (беззнаковое целое)
Пример: unsigned(7 downto 0)
Описывает арифметические операции


Слайд 9 Пакеты IEEE
std_logic_unsigned
Не является стандартом (разработан Synopsys)
Заставляет компилятор интерпретировать

Пакеты IEEEstd_logic_unsignedНе является стандартом (разработан Synopsys)Заставляет компилятор интерпретировать std_logic_vector как unsignedstd_logic_signedНе

std_logic_vector как unsigned
std_logic_signed
Не является стандартом (разработан Synopsys)
Заставляет компилятор интерпретировать

std_logic_vector как signed
Не используйте одновременно std_logic_unsigned и std_logic_signed
Преобразования типов можно выполнять явно

Слайд 10 Пакеты IEEE
numeric_std
Стандарт IEEE
Определяет типы signed и unsigned
Описывает арифметические

Пакеты IEEEnumeric_stdСтандарт IEEEОпределяет типы signed и unsignedОписывает арифметические операцииНесовместим с пакетом std_logic_arith

операции
Несовместим с пакетом std_logic_arith


Слайд 11 Подключение арифметических пакетов IEEE
Работа с беззнаковыми целыми числами

Подключение арифметических пакетов IEEEРабота с беззнаковыми целыми числами (unsigned)Работа со знаковыми

(unsigned)


Работа со знаковыми целыми числами (signed)


Работа как с беззнаковыми,

так и со знаковыми целыми числами

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all; -- определение арифметических операций
use ieee.std_logic_unsigned.all; -- std_logic_vector <=> unsigned

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all; -- определение арифметических операций
use ieee.std_logic_signed.all; -- std_logic_vector <=> signed

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all; -- определение арифметических операций


Слайд 12 Преобразование типов данных

Преобразование типов данных

Слайд 13 Присваивание

Присваивание

Слайд 14 Присваивание
Простое присваивание
Условное присваивание (when-else)
Выборочное присваивание (with-select-when)

ПрисваиваниеПростое присваиваниеУсловное присваивание (when-else)Выборочное присваивание (with-select-when)

Слайд 15 Простое присваивание
Оператор

Простое присваиваниеОператор

Слайд 16 Простое присваивание – пример
Сдвиг влево (дополнение нулем)
a_shl

Простое присваивание – примерСдвиг влево (дополнение нулем)a_shl

a(2 downto 0) & ‘0’;


Слайд 17 Простое присваивание – пример
Вращение вправо
a_ror

Простое присваивание – примерВращение вправоa_ror

a(3 downto 1);


Слайд 18 Условное присваивание
Оператор

Условное присваиваниеОператор

if-else
Присваивается первое значение, для которого условие истинно
Если все условия

ложны, используется безусловная ветвь else
Если все условия ложны и безусловная ветвь else отсутствует, синтезируется триггер-защелка

sig_name <= expression1 when condition1 else

expressionN-1 when conditionN-1 else
expressionN;

безусловная ветвь else


Слайд 19 Условное присваивание
sig_name

Условное присваиваниеsig_name

else
expressionN;


Слайд 20 Условное присваивание – пример
library ieee;
use ieee.std_logic_1164.all;

entity tri_state is
port

Условное присваивание – примерlibrary ieee;use ieee.std_logic_1164.all;entity tri_state is	port (	ena:		in std_logic;				input:		in std_logic_vector(7

( ena: in std_logic;
input: in std_logic_vector(7 downto 0);
output: out std_logic_vector(7 downto 0));
end tri_state;

architecture

dataflow of tri_state is
begin
output <= input when ena = ‘0’ else
(others => ‘Z’);
end architecture;

все явно не указанные компоненты вектора


Слайд 21 Управляемое присваивание
Оператор

Управляемое присваиваниеОператор

switch-case
Присваиваемое значение зависит от управляющего выражения
with choise_expression select
sig_name

when choise1,

expressionN-1 when choiseN-1,
expressionN when others;

разделяются запятыми


Слайд 22 Управляемое присваивание
with choise_expression select
sig_name

Управляемое присваиваниеwith choise_expression select	sig_name

choiseN-1,
expressionN when others;


Слайд 23 Описание вариантов выбора (choisei)
Указание одиночного значения
Перечисление нескольких значений

Задание

Описание вариантов выбора (choisei)Указание одиночного значенияПеречисление нескольких значенийЗадание диапазона значенийКлючевое слово

диапазона значений

Ключевое слово others – все остальные случаи
Всегда используйте

others – возможных вариантов больше, чем ‘0’ и ‘1’

with sel select
result <= a when “000”,
b when “011” to “110”,
c when “001” | “111”,
d when others;

… when choise1 | choise2 | … | choiseN,

… when choise1 to choise2,


Слайд 24 Простые правила
Для описания чисто комбинационной логики используйте только

Простые правилаДля описания чисто комбинационной логики используйте только параллельные операторы

параллельные операторы


Слайд 25 Генерация выражений

Генерация выражений

Слайд 26 Генерация выражений
Конструкция for-generate
Конструкция if-generate

label: for var in range generate
concurrent

Генерация выраженийКонструкция for-generateКонструкция if-generatelabel:		for var in range generate					concurrent statements				end generate;label:		if condition generate					concurrent statements				end generate;

statements
end generate;
label: if condition generate
concurrent statements
end generate;


Слайд 27 Генерация выражений – пример
Подсчет четности вектора
Интерфейс объекта:
Вход –

Генерация выражений – примерПодсчет четности вектораИнтерфейс объекта:Вход – 8-разрядный вектор dataВыход – бит четности parityФункциональность объекта:

8-разрядный вектор data
Выход – бит четности parity
Функциональность объекта:


  • Имя файла: proektirovanie-tsifrovyh-ustroystv-na-yazyke-vhdl.pptx
  • Количество просмотров: 73
  • Количество скачиваний: 0