Разделы презентаций


Лекция 2

Содержание

Языки описания аппаратурыVHDL – VHSIC (Very High Speed Integrated Circuit) Hardware Description Language. IEEE Std 1076, 2008 EditionVerilog HDL – Verilog Hardware Description Language. IEEE Std 1364, 2005 EditionSystemVerilog, Verilog-ASMAHDL – внутренний

Слайды и текст этой презентации

Слайд 1Лекция 2
Общее понятие о языке VHDL.

Лекция 2Общее понятие о языке VHDL.

Слайд 2Языки описания аппаратуры
VHDL – VHSIC (Very High Speed Integrated Circuit)

Hardware Description Language.
IEEE Std 1076, 2008 Edition
Verilog HDL – Verilog

Hardware Description Language. IEEE Std 1364, 2005 Edition
SystemVerilog, Verilog-ASM
AHDL – внутренний язык компании Altera
Abel – внутренний язык компании Xilinx
SystemC, …


IEEE – Institute of Electrical and Electronics Engineers
Языки описания аппаратурыVHDL – VHSIC (Very High Speed Integrated Circuit) Hardware Description Language.	IEEE Std 1076, 2008 EditionVerilog

Слайд 3Какой язык учить?


Английский!


http://lingualeo.com

Какой язык учить?Английский!http://lingualeo.com

Слайд 4Структура проекта на VHDL

Структура проекта на VHDL

Слайд 5Декларация библиотек
Объявление библиотеки
library ;

Объявление использования
use . .

модуля>; |
use ..all;

Пример:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

Декларация библиотекОбъявление библиотекиlibrary ;Объявление использованияuse . .; | use ..all;Пример:library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;

Слайд 6Интерфейс объекта
Упрощенная структура декларации ENTITY

entity имя_проекта is
port (имя_сигнала: направление_передачи

тип_сигнала;
имя_сигнала: направление_передачи тип_сигнала;

имя_сигнала: направление_передачи тип_сигнала);
end имя_проекта;

Интерфейс объектаУпрощенная структура декларации ENTITYentity имя_проекта is port (имя_сигнала: направление_передачи тип_сигнала;	имя_сигнала: направление_передачи тип_сигнала; 	…	имя_сигнала: направление_передачи тип_сигнала);end имя_проекта;

Слайд 7Декларация портов
port
(имя_сигнала: направление_передачи тип_сигнала;
имя_сигнала: направление_передачи тип_сигнала);

Направления передачи:
in - вход
out

- выход
inout - двунаправленный

Декларация портовport (имя_сигнала: направление_передачи тип_сигнала;имя_сигнала: направление_передачи тип_сигнала);Направления передачи:in - входout - выходinout - двунаправленный

Слайд 8Пример

entity sm is
port (а, в, с: in bit;
s: out

bit);
end sm;

Примерentity sm is		port (а, в, с: in bit;	 s: out bit);end sm;

Слайд 9Декларация архитектуры
architecture имя_архитектуры of имя_entity is
декларация типов
декларация сигналов
декларация констант
декларация функций
декларация

процедур
декларация компонентов
begin
параллельные операторы
параллельные операторы
end имя_архитектуры;
2013

Декларация архитектурыarchitecture имя_архитектуры of имя_entity isдекларация типовдекларация сигналовдекларация константдекларация функцийдекларация процедурдекларация компонентовbeginпараллельные операторыпараллельные операторыend имя_архитектуры;2013

Слайд 10Некоторые правила
Имя файла должно совпадать с именем entity.
Одному интерфейсу (entity)

может быть сопоставлено несколько архитектурных тел или ни одного.

Некоторые правилаИмя файла должно совпадать с именем entity.Одному интерфейсу (entity) может быть сопоставлено несколько архитектурных тел или

Слайд 11Простеший пример

Простеший пример

Слайд 12library ieee;
use ieee.std_logic_1164.all;

entity d_trigger is
port (
d: in std_logic;
clk: in std_logic;
q: out

std_logic);
end d_trigger;

architecture arh of d_trigger is
begin
process (clk)
begin
if (clk'event and

clk = '1')
then q <= d; end if;
end process;
end arh;
library ieee;use ieee.std_logic_1164.all; entity d_trigger is	port (		d: 	in	std_logic;		clk: 	in	std_logic;		q: 	out 	std_logic);end d_trigger; architecture arh of d_trigger isbegin	process

Слайд 13Объекты языка VHDL

Объекты языка VHDL

Слайд 14Предопределенные типы
INTEGER
REAL
BIT
BOOLEAN
CHARACTER
STRING
TIME
BIT_VECTOR
SEVERITY_LEVEL
FILE_OPEN_KIND
FILE_OPEN_STATUS

Предопределенные типыINTEGERREALBITBOOLEANCHARACTERSTRINGTIMEBIT_VECTORSEVERITY_LEVELFILE_OPEN_KINDFILE_OPEN_STATUS

Слайд 15Типы BIT и BOOLEAN
BIT значения {'0', '1'}.

BOOLEAN значения {TRUE,

FALSE}.


Типы BIT и BOOLEAN BIT значения {'0', '1'}.BOOLEAN значения {TRUE, FALSE}.

Слайд 16Разница BIT и BOOLEAN
SELECT определена как BIT:
IF select THEN

... – неправильно
IF select = '1' THEN... – правильно


SELECT определена как BOOLEAN
IF select THEN ... – правильно
IF select = '1' THEN... – неправильно
'0' AND TRUE – недопустимо
Разница BIT и BOOLEAN SELECT определена как BIT:IF select THEN ... – неправильно IF select = '1'

Слайд 17Ограничение длинны типа
type базовый_тип is диапазон;

range граница_1 направление граница_2
Направление: dоwntо

и tо.

signal y: bit_vector (0 to 3);
signal z: bit_vector

(7 downto 0);
Ограничение длинны типаtype базовый_тип is диапазон;range граница_1 направление граница_2Направление: dоwntо и tо. signal y: bit_vector (0 to

Слайд 18Тип BIT_VECTOR
Это массив битов.

ENTITY part2 IS
PORT

( x, y: IN BIT_VECTOR (3 DOWNTO 0);
sel:

IN BIT;
m : OUT BIT_VECTOR (3 DOWNTO 0));
END part2;
Тип BIT_VECTOR Это массив битов. ENTITY part2 IS  PORT ( x, y: IN BIT_VECTOR (3 DOWNTO

Слайд 19Примеры присваиваний
Типы bit и bit_vector.
x

“00010001”;

MSB, LSB

Примеры присваиванийТипы bit и bit_vector.x

Слайд 20Операции для типа bit и integer
Самостоятельно.

Операции для типа bit и integer Самостоятельно.

Слайд 21Типы, определенные пользователем
type имя_типа is определение_типа;

type Unsigned_short is integer range

0 to 255;
type data is integer range 15 downto 0;

Типы, определенные пользователемtype имя_типа is определение_типа;type Unsigned_short is integer range 0 to 255;type data is integer range

Слайд 22Тип std_logic
type std_ulogic is ('U', 'X', '0', '1', 'Z', 'W',

'L', 'Н', '-'};

'U' – не инициализировано (в программе вообще сигналу

не присваивались другие значения);
'X' – активное неопределенное состояние;
'0', '1' – активный ноль, активная единица;
'Z' – отключено (все источники, подключенные к связи в высокоимпедансном состоянии)
'W' – слабое неопределенное состояние;
'L‘, 'H' – слабый ноль, слабая единица;
'-' – не важно (выбор предоставляется компилятору).
Тип std_logictype std_ulogic is ('U', 'X', '0', '1', 'Z', 'W', 'L', 'Н', '-'};'U' – не инициализировано (в

Слайд 23Использование std_logic
library IEEE;
use IEEE.std_logic_1164.all;

Расположение библиотеки:
C:\altera\91\quartus\libraries\vhdl\ieee\std_1164.vhd

Использование std_logiclibrary IEEE;use IEEE.std_logic_1164.all;Расположение библиотеки:C:\altera\91\quartus\libraries\vhdl\ieee\std_1164.vhd

Слайд 24Значения для комбинаций сигналов типа std_logic

Значения для комбинаций сигналов типа std_logic

Слайд 25BIT против STD_LOGIC
Оба типа – стандартные, поддерживаются всеми системами проектирования.
std_logic

поддерживает Z-состояние, которое может синтезироваться.
std_logic поддерживает «слабые» и «сильные» сигналы,

что необходимо при моделировании.
BIT против STD_LOGICОба типа – стандартные, поддерживаются всеми системами проектирования.std_logic поддерживает Z-состояние, которое может синтезироваться.std_logic поддерживает «слабые»

Слайд 26Другие типы, определенные пользователем
Типы, полученные из STD_LOGIC
UNSIGNED – тип для

представления беззнаковых чисел.
SIGNED – тип для представления знаковых чисел.

Определяются как

массивы типа STD_LOGIC
Описаны в библиотеке numeric_std
Другие типы, определенные пользователемТипы, полученные из STD_LOGICUNSIGNED – тип для представления беззнаковых чисел.SIGNED – тип для представления

Слайд 27INTEGER vs SIGNED
INTEGER – число, SIGNED – вектор.
Оба типа

обрабатываются как знаковые числа.
Оба типа синтезируются в схему.

INTEGER vs SIGNEDINTEGER – число, SIGNED – вектор. Оба типа обрабатываются как знаковые числа.Оба типа синтезируются в

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

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

Слайд 29Преобразование типов
TO_INTEGER - преобразование UNSIGNED или SIGNED в INTEGER.
TO_UNSIGNED –

преобразование неотрицательного INTEGER в вектор типа UNSIGNED заданного размера.
TO_SIGNED –

преобразование неотрицательного INTEGER в вектор типа SIGNED заданного размера.

Преобразование типовTO_INTEGER - преобразование UNSIGNED или SIGNED в INTEGER.TO_UNSIGNED – преобразование неотрицательного INTEGER в вектор типа UNSIGNED

Слайд 31Десятичные литералы
[.] []
Целое:
21, 0, 1Е2, 3е4, 452_150
Вещественное:
11.0,

0.0, 0.476, 3.14_15_926
Вещественное с экспонентой:
1.34Е-12, 1.0Е+6, 3.042е+15

Десятичные литералы [.] [] Целое: 21, 0, 1Е2, 3е4, 452_150Вещественное:11.0, 0.0, 0.476, 3.14_15_926Вещественное с экспонентой:1.34Е-12, 1.0Е+6, 3.042е+15

Слайд 32Базовые литералы (13.4.2)
#[] #[]
Базис (система счисления) –

целое число.




Базовые литералы (13.4.2)#[] #[] Базис (система счисления) – целое число.

Слайд 33Литералы «строка бит»
””
Базис: В – бинарный, О –

восьмиричный,
Х – шестнадцатиричный.

B”101010”, b”1001_100”
O”126”, o”236”
X”34f”, x”FC05”

Литералы «строка бит»””Базис: В – бинарный, О – восьмиричный,		  Х – шестнадцатиричный.B”101010”, b”1001_100”O”126”, o”236”X”34f”, x”FC05”

Слайд 34Разница между строкой бит и базовым литералом
Базовый литерал – число,

записанное в определенном базисе.
Строка бит – совокупность отдельных битов, не

связанных в единое целое.
B”01001000” ≠ 2#0100_1000#
Разница между строкой бит и базовым литераломБазовый литерал – число, записанное в определенном базисе.Строка бит – совокупность

Слайд 35Константа
constant список_констант: тип :=выражение;

constant PI: real:= 3.14159;
constant WIDTH: integer:= 32;
constant

DEFAULT: bit_vector (0 to 3):= "0101";

Константаconstant список_констант: тип :=выражение;constant PI: real:= 3.14159;constant WIDTH: integer:= 32;constant DEFAULT: bit_vector (0 to 3):=

Слайд 36Сигнал
signal – это информация, передаваемая между модулями проекта или представляющая

входные и выходные данные проектируемого устройства

signal список_сигналов: тип:= начальное_значение

Сигналsignal – это информация, передаваемая между модулями проекта или представляющая входные и выходные данные проектируемого устройства signal

Слайд 37signal CLK, RESETn: bit;
signal COUNTER: integer range 0 to 31;
signal

INSTRUCTION: bit_vector (15 downto 0);

Присваивание значений:
CLK

+ 2;

signal CLK, RESETn: bit;signal COUNTER: integer range 0 to 31;signal INSTRUCTION: bit_vector (15 downto 0);Присваивание значений:CLK

Слайд 38Переменная
variable – это вспомогательная информационная единица, используемая для описания внутренних

операций в программных блоках

variable список_переменных: тип := начальное_значение

variable ROM:

integer range 0 to 15;
variable count: positive:= 100;
variable a, b, c, d: bit:= '1';

Присваивание значений:
ROM:=10;
Переменнаяvariable – это вспомогательная информационная единица, используемая для описания внутренних операций в программных блоках variable список_переменных: тип

Слайд 39Атрибуты сигналов
Атрибуты записываются в следующем формате:
'

Атрибуты сигналовАтрибуты записываются в следующем формате:	 '

Слайд 40Атрибуты сигналов

Атрибуты сигналов

Слайд 42Массивы
type имя_типа is array (диапазон_значений) of тип_елементов_массива

type ROM_Array is array (0 to 31) of std_logic_vector(7 downto 0);


Массивыtype имя_типа is array (диапазон_значений) of тип_елементов_массиваtype ROM_Array is array (0 to 31) of std_logic_vector(7 downto 0);

Слайд 43Декларация объектов типа массив
signal ROM : ROM_Array;

constant Content: ROM_Array:=

(
0 => "00000001",

1 => "00000010",
2 => "00000011",
. . .
14 => "00001111",
others => "11111111");

Слайд 44Обращение к элементам массива
имя_массива (индекс_элемента)
имя_массива (индекс_элемента to индекс_элемента)
имя_массива (индекс_элемента downto

индекс_элемента)

Пример обращения к элементам массива
memory (5)
byte (7)

Обращение к элементам массиваимя_массива (индекс_элемента)имя_массива (индекс_элемента to индекс_элемента)имя_массива (индекс_элемента downto индекс_элемента)Пример обращения к элементам массиваmemory (5) byte

Слайд 45Обращение к элементам массива
Обращение к нескольким элементам:
memory (5 to 7)


byte (7 downto 5)
Обращение к элементу многомерного массива:
ram_instance (2,

3) := 5;

Обращение к элементам массиваОбращение к нескольким элементам:memory (5 to 7) byte (7 downto 5)Обращение к элементу многомерного

Слайд 46Конкатенация элементов массива
а:= "1001";
b

– строки или битовые вектора
а – переменная, b – сигнал.


Конкатенация элементов массиваа:=

Слайд 47Операции сдвига
имя_массива символ_операции_сдвига целое

Логические сдвиги влево и вправо sll, srl,


Арифметические операции сдвига влево и вправо sla,sra,
Циклические сдвиги влево

и вправо rol, rоr.
Операции сдвигаимя_массива символ_операции_сдвига 	целоеЛогические сдвиги влево и вправо sll, srl, Арифметические операции сдвига влево и вправо sla,sra,

Слайд 48Примеры операций сдвига

Примеры операций сдвига

Слайд 49Внеклассное чтение
И.Каршенбойм Краткий курс HDL-кодирования. Часть 3. О написании кода

«вообще»./Компоненты и технологии, №7.- 2008г.
http://iosifk.narod.ru/hdl_coding/hdl_coding_5_kit_7_08.pdf

http://lifehacker.ru

Внеклассное чтениеИ.Каршенбойм Краткий курс HDL-кодирования. Часть 3. О написании кода «вообще»./Компоненты и технологии, №7.- 2008г.http://iosifk.narod.ru/hdl_coding/hdl_coding_5_kit_7_08.pdfhttp://lifehacker.ru

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

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

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

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


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

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