1. Trang chủ
  2. » Công Nghệ Thông Tin

lecture about Very High Speed Integrated Circuit

337 975 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lecture About Very High Speed Integrated Circuit
Tác giả Антонов А.П.
Trường học Trường Đại Học Saint Petersburg
Chuyên ngành Kỹ Thuật Điện Tử
Thể loại Bài giảng
Năm xuất bản 2007
Thành phố Saint Petersburg
Định dạng
Số trang 337
Dung lượng 2,47 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

lecture about Very High Speed Integrated Circuit Hardware Description Language lecture about Very High Speed Integrated Circuit Hardware Description Language lecture about Very High Speed Integrated Circuit Hardware Description Language lecture about Very High Speed Integrated Circuit Hardware Description Language

Trang 1

Язык VHDL:

описание цифровых устройств

Trang 2

Литература, средства проектирования

- любые книги по языку VHDL например:

«Ю.Е Шейнин, Е.А Суворова Проектирование

Цифровых Систем на VHDL»

Trang 3

Введение

Trang 4

Предпосылки использования HDL

100 10.000 1.000.000

100.000.000

Использованные транзисторы / чел мес

Транзисторы

/СБИС (без эл-тов

памяти)

10 1.000 100.000 10.000.000

1981 1985 1989 1993 1997 2001 2005 2009

ЗаконМура

Продуктивностьразработки

Предел для опытныхинженеров

Кризис продуктивности разработки

Trang 5

„ Совершенствование элементной базы – создание

функционально законченных и параметризуемых модулей

аппаратно реализованных на кристаллах (умножители,

модули памяти, интерфейстные модули)

Trang 7

b

c

Trang 8

Этапы процесса проектирования

Разработка алгоритма и архитектуры

«Поведенческое моделирование»

Алгоритм OK?

Синтез

«Временное моделирование»

Синтезировано ОК?

Да

Нет Спецификация

Реализация

Да Временные параметры ОК?

Нет

Нет Да

Внедрение Отладка в составе системы

Trang 11

История языка VHDL

Project to Create a Standard Hardware Description

Language Under the Very High Speed Integrated

Circuit (VHSIC) Program

„ 1987 - the Institute of Electrical and Electronics

Engineers (IEEE) Ratified As IEEE Standard 1076

Updated to IEEE 1076 ’93

Trang 13

Поведенческое описание

IF shift_left THEN FOR j IN high DOWNTO low LOOP

Trang 14

Компонент нижнего уровня 2

„ Структура модуля

„ Могут применяться специфические аппаратные элементы

„ Используется для синтеза и моделирования (Synthesis,

Simulation )

Trang 16

Подмножества языка VHDL

Операторы языка

VHDL

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

„ Синтезируемое описание – описание, допускающее

автоматическую реализацию процедуры синтеза на

заданном элементном базисе

Trang 17

Уровни описания проекта

Поведенческий уровень

Уровень регистровых передач

Логический уровень

Физический уровень

Behavioral

RTL

Gate Level

Physical

Trang 19

- Функциональное моделирование (Quartus II)

Trang 20

Процедура проектирования в рамках пакета QuartusII

Временной анализ

- проверка соответствия созданной СБИС требованиям к быстродействию

Моделирование на вентильном уровне

Тестирование и отладка СБИС в составе системы

(ISP, SignalTap II )

tclk

Trang 21

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

Trang 24

Основные элементы проектирования

Package Declaration

Trang 25

Packages & Libraries

Trang 27

Встроенная библиотека

„ Library Std;

– Встроенная библиотека

• Нет необходимости ссылаться на нее в VHDL описании

– Содержит следующие пакеты:

Standard (задает типы объектов: Bit, Boolean, Integer,

Real, and Time; и все операторы и функции для данных объектов)

Textio (файловые операторы)

Trang 28

Типы, определенные в пакете Standard Package

Trang 29

Типы, определенные в пакете Standard Package

– 2 Logic Value System (‘0’, ‘1’)

Signal A_temp : Bit;

– Bit_vector Array of Bits

Signal Temp : Bit_vector(3 Downto 0);

Signal Temp : Bit_vector(0 to 3) ;

Trang 31

Рабочая библиотека

„ Рабочая библиотека - Working Library

Trang 32

Entity (объект); Architecture (архитектура)

A B

Mux_out

Символ (интерфейс)

MUX

inst

Trang 34

Объявление объекта (Entity)

ENTITY <entity_name> IS

Port Declarations

END <entity_name>; (1076-1987 version)

END ENTITY <entity_name> ; ( 1076-1993 version)

Trang 35

END <entity_name>; (1076-1987 version)

END ENTITY <entity_name> ; ( 1076-1993 version)

Trang 36

OR4_GATE

Trang 38

END <Identifier> ; (1076-1987 Version)

END ARCHITECTURE; (1076-1993 Version)

Trang 39

qa <= r or t ;

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

qa

Trang 40

OR4_GATE

Trang 41

END <Identifier> ; (1076-1987 Version)

END ARCHITECTURE; (1076-1993 Version)

Trang 42

Использование сигнала в архитектуре

ENTITY or4_gate ISPORT (

Trang 44

Ожидаемые результаты:

• Отчет, в который включены результаты выполнения всех указанных выше пунктов.

• созданные проекты.

Trang 45

Приложение 1

Trang 46

Package Standard

This is Package STANDARD as defined in the VHDL 1993 Language Reference Manual

It will be compiled into VHDL library 'std'

'(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', del,c128, c129, c130, c131, c132, c133, c134, c135,c136, c137, c138, c139, c140, c141, c142, c143,c144, c145, c146, c147, c148, c149, c150, c151,c152, c153, c154, c155, c156, c157, c158, c159,

Trang 47

Package Standard

the character code for 160 is there (NBSP), but prints as no char

' ', '¡', '¢', '£', '¤', '¥', '¦', '§','¨', '©', 'ª', '«', '¬', '-', '®', '¯','°', '±', '²', '³', '´', 'µ', '¶', '·','¸', '¹', 'º', '»', '¼', '½', '¾', '¿','À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç','È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï','Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', '×','Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'Þ', 'ß','à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç','è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï','ð', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', '÷','ø', 'ù', 'ú', 'û', 'ü', 'ý', 'þ', 'ÿ' );

type severity_level is (note, warning, error, failure);

type integer is range -2147483647 to 2147483647;

type real is range -1.0E308 to 1.0E308;

type time is range -2147483647 to 2147483647

Trang 48

Package Standard

subtype delay_length is time range 0 fs to time'high;

impure function now return delay_length;

subtype natural is integer range 0 to integer'high;

subtype positive is integer range 1 to integer'high;

type string is array (positive range <>) of character;

type bit_vector is array (natural range <>) of bit;

type file_open_kind is (

read_mode, write_mode, append_mode);

type file_open_status is (

open_ok, status_error, name_error, mode_error);

attribute foreign : string;

attribute syn_enum_encoding : string;

attribute syn_enum_encoding of character : type is "sequential";

end standard;

Trang 49

Приложение 2

Trang 50

– Проект может содержать либо несколько логических файлов, образующих иерархическое описание модуля (при этом один

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

умолчанию являющийся файлом верхнего уровня в иерархии описаний).

Trang 51

Quartus II Редактор памяти

Quartus II Текстовый редактор

Quartus II Схемный редактор

Level File

Top-.bdf gdf

Файл верхнего уровня в иерархии описания проекта

- bdf, tdf, vhd, vhdl, v, vlg, edif or edf

Block File

Symbol File

Text File

Text File

.v

Text File

Импортируются из других средств автоматизации

Mentor Graphics, Synopsys,

Synplicity, etc

AHDL

Verilog

.edf edif

Text File

.v, vlg, vhd, vhdl, vqm MegaWizard®

Файлы с описанием проекта

Trang 52

Мастер New Project Wizard – запуск

Trang 53

К проекту можно добавить файлы следующих типов:

•Файлы нижних уровней в иерархии описания проекта, находящиеся в рабочей папке проекта, можно явным образом не добавлять к проекту Они будут автоматически добавлены компилятором

Trang 54

Мастер New Project Wizard - выбор

семейства СБИС для реализации проекта

(demo 1_project_wizard)

2 Укажите режим выбора типа СБИС:

• Автоматический выбор компилятором (NO)

• непосредственное назначение типа СБИС (Yes)

1 Выберите семейство СБИС

Фильтры используются для упрощения поиска конкретной СБИС

Trang 55

Мастер New Project Wizard - Подключение дополнительных

средств автоматизации проектирования (EDA Tool )

(demo 1_project_wizard)

Выберите подключаемое средство проектирования (EDA tools ) из списка.

Trang 56

Мастер New Project Wizard - окно с результатами

сделанных установок (demo 1_project_wizard)

Проверьте результаты сделанных установок и нажмите кнопку FINISH

Trang 58

# The default values for assignments are stored in the file

# ram_assignment_defaults.qdf

# If this file doesn't exist, and for assignments not listed, see file

# assignment_defaults.qdf

# Altera recommends that you do not modify this file This

# file is updated automatically by the Quartus II software

# and any changes you make may be lost or overwritten.

# Project-Wide Assignments

# ========================

set_global_assignment -name ORIGINAL_QUARTUS_VERSION "5.0 SP1.04"

set_global_assignment -name PROJECT_CREATION_TIME_DATE "09:34:31 OCTOBER

09, 2005"

set_global_assignment -name LAST_QUARTUS_VERSION "5.0 SP1.04"

# Analysis & Synthesis Assignments

Trang 59

В меню File пакета Quartus II в разделе Recent Projects выберите проект

из списка тех проектов, которые открывали в последнее время.

Trang 60

– Creates Archive

Activity Log (.QARLOG)

• Design Files

• Settings Files

Trang 61

2 Файл - <имя проекта>.qarlog

-файл с отчетом о результатах архивирования

При выполнении команды

Меню: Restore Archived Project

восстанавливается архивированный проект

Trang 63

Текстовый ввод описания проекта в

пакете Quartus ® II

Trang 65

„ VHDL- VHSIC Hardware Description Language

Trang 66

Создание текстового описания

File extension is bdf

Для создания схемы используйте иконку

или выполните команду: меню File>New>VHDL file

Trang 68

Язык VHDL:

Типы данных

Trang 70

Типы данных библиотеки STD

Trang 72

x_neqx_more

x_or~0

x_and~0

x_eq

x_neq~0b

a

Trang 74

x_neq~0

x_or~0b

x_andx_or

x_more

x_neq

x_eqa

Trang 77

– SIGNAL bit_vector_4 : BIT_VECTOR ( 3 DOWNTO 0);

– SIGNAL bit_vector_UC : BIT_VECTOR ;

Trang 78

B[3 0] OUT

EQUAL

x_and~3x_or~0

x_or~2x_or~3

x_eqx_and[3 0]

a,b : IN BIT_VECTOR (3 downto 0);

x_and : OUT BIT_VECTOR (3 downto 0);

x_or : OUT BIT_VECTOR (3 downto 0);

x_eq : OUT BOOLEAN );

Trang 79

Задание собственных типов

• TYPE my_bit_vector1 IS ARRAY (1 TO 8) of bit;

• TYPE my_bit_vector2 IS ARRAY (7 DOWNTO 0) of bit;

• TYPE my_bit_vector3 IS ARRAY (-3 TO 4) of bit;

• TYPE my_bool_vector1 IS ARRAY (1 TO 8) of BOOLEAN;

• TYPE my_ bool _vector2 IS ARRAY (7 DOWNTO 0) of BOOLEAN;

• TYPE my_ bool _vector3 IS ARRAY (-3 TO 4) of BOOLEAN;

Trang 80

x_and : OUT SHORT_BIT_VECTOR;

x_eq : OUT BOOLEAN );

x_eq

a[7 0]

b[7 0]

x_and[7 0]

Trang 81

x_and : OUT SHORT_BIT_VECTOR;

x_eq : OUT BOOLEAN );

x_and~5 x_and~6 x_and~7

Trang 82

x_and : OUT SHORT_BOOL_VECTOR;

x_eq : OUT BOOLEAN );

x_and~5 x_and~6 x_and~7

Trang 83

• созданный проект.

Trang 84

Использование элементов массива

„ Отдельного элемента – по индексу, указанному в круглых скобках:

– SIGNAL a, b : BIT_VECTOR (3 DOWNTO 0);

– SIGNAL z,x,y : BIT;

– a (3)<= z;

– a (0)<= ‘0’;

– a(2)<=b(3);

„ Части массива (slice)

– SIGNAL a : BIT_VECTOR (3 DOWNTO 0);

– SIGNAL b : BIT_VECTOR (0 DOWNTO 5);

– SIGNAL z,x,y : BIT;

– a (3 downto 2)<=b(0 to 1);

– a (1 downto 0)<= “00”;

„ Конкатенация (concatenation):

– SIGNAL a : BIT_VECTOR (3 DOWNTO 0);

– SIGNAL b : BIT_VECTOR (0 DOWNTO 5);

– SIGNAL z,x,y : BIT;

– a <= z & x & y & b(1);

– a (1 downto 0)<= z & y;

„ Агрегация

– SIGNAL a : BIT_VECTOR (3 DOWNTO 0);

– SIGNAL b : BIT_VECTOR (0 DOWNTO 5);

– SIGNAL z,x,y : BIT;

– a <= (z, x, y, b(1));

– a (1 downto 0)<= (z, y);

Trang 85

1 © 2007 Санкт-Петербург Антонов А.П.

Обращение к элементам массива

Trang 86

2 © 2007 Санкт-Петербург Антонов А.П.

Обращение к отдельному элементу массива

n К отдельному элементу – по индексу, указанному в круглых скобках ENTITY array_index IS

PORT (

a : IN BIT_VECTOR (4 downto 0) ;

x_c : OUT BIT_VECTOR (1 downto 0);

x_d : OUT BIT_VECTOR (1 downto 0)

Trang 87

x_ d [0 ] x_ d [1 ]

x_c : OUT BIT_VECTOR (3 downto 0);

x_d : OUT BIT_VECTOR (3 downto 0) );

END array_slice;

ARCHITECTURE rtl OF array_slice IS

BEGIN

Trang 88

x_c : OUT BIT_VECTOR (3 downto 0);

x_d : OUT BIT_VECTOR (3 downto 0) );

Error (10484): VHDL error at array_slice.vhd(19): range direction of

object slice must be same as range direction of object

Trang 89

5 © 2007 Санкт-Петербург Антонов А.П.

Агрегация

Trang 91

7 © 2007 Санкт-Петербург Антонов А.П.

1

1 0 1 0 1 0 1 0

0 1 0

x_c[0] (opndrn)

x_d[0] (opndrn) x_d[1]

x_d[2] (opndrn) x_d[3]

x_e[0] (opndrn) x_e[1]

x_e[2] (opndrn) x_e[3]

x_c[3]

x_c[2] (opndrn) x_c[1]

Агрегация (пример)

ENTITY array_aggregate IS

PORT (

Trang 92

END array_aggregate1;

ARCHITECTURE rtl OF array_aggregate1 IS

BEGIN

x_c (x_d, x_e) - a(1),a(0),a(1),a(0)

END rtl;

Trang 93

9 © 2007 Санкт-Петербург Антонов А.П.

001

x_e[7]

x_e[1] (opndrn) x_e[2]

x_e <= (a(1), a(0), 2|0 => a(0), 4 downto 3 => '0', others=>'1');

x_e - a(1),a(0), '1', '0', '0', a(0), '1', a(0)

END rtl;

Trang 94

10 © 2007 Санкт-Петербург Антонов А.П.

Операторы, применяемые к массивам

Trang 96

правого»

Trang 97

13 © 2007 Санкт-Петербург Антонов А.П.

0

y

z a[0]

x_c : OUT BIT_VECTOR (1 downto 0);

x_d : OUT BIT_VECTOR (2 downto 0);

x_e : OUT BIT_VECTOR (2 downto 0);

x_f : OUT BIT_VECTOR (1 downto 0);

x_g : OUT BIT_VECTOR (3 downto 0);

x_h : OUT BIT_VECTOR (3 downto 0) );

Trang 99

15 © 2007 Санкт-Петербург Антонов А.П.

00

Trang 101

17 © 2007 Санкт-Петербург Антонов А.П.

Вращение влево логическое(пример)

ENTITY array_operation2 IS

PORT (

Trang 103

19 © 2007 Санкт-Петербург Антонов А.П.

x_ca~0x_ca~1x_ca~2

x_ca~3x_ca~4x_ca~5x_c~1

x_c~2z

xa[2 0]

aa[2 0]

x_ca[2 0]

x_c[2 0]

x_c~0y

);

END array_operation3;

ARCHITECTURE rtl OF array_operation3 IS

BEGIN

x_ca <= (aa or (z, z, z)) and (x & x & x);

x_c <= (z xor y, 0 => a(0) xor x, others=> a(2) xor a(1));

END rtl;

Trang 105

21 © 2007 Санкт-Петербург Антонов А.П.

CIN A[2 0]

x y

x_ca~0

x_c~0 z

END array_operation4;

ARCHITECTURE rtl OF array_operation4 IS

BEGIN

x_ca <= (aa or (z, z, z)) <= (x & x & x);

x_c <= (z < y, 0 => a(0) > x, others=> a(2) = a(1));

END rtl;

Trang 107

23 © 2007 Санкт-Петербург Антонов А.П.

Тип Integer

Trang 111

x_ca : OUT integer range -4096 to 4095;

Trang 112

x_ca : OUT integer range 0 to 8;

Trang 114

ENTITY integer_5 IS

PORT (

x_ca : OUT integer range 0 to 8;

Trang 115

add_sub_cella[0]~66 add_sub_cella[0]~68 add_sub_cella[0]~70 add_sub_cella[0]~72 add_sub_cella[0]~74

add_sub_cella[0]~63 add_sub_cella[0]~65 add_sub_cella[0]~67 add_sub_cella[0]~69 add_sub_cella[0]~71 add_sub_cella[0]~73

add_sub_cella[0]~53 add_sub_cella[0]~55 add_sub_cella[0]~57 add_sub_cella[0]~59 add_sub_cella[0]~61

add_sub_cella[0]~43 add_sub_cella[0]~45 add_sub_cella[0]~47 add_sub_cella[0]~49

DATA A DATA B DATA D

CO M BO

LC ELL (AACC)

DATAA DATAB DATAC DATAD

CB O UT

LCE LL (AAC A)

DATA A DATA B DATA D

CO M BO

LCE LL (AC CC)

DATAA DATAB DATAC DATAD

CB O UT

LCE LL (AAC A)

DATA A DATA B DATA D

CO M BO

DATAB DATAC DATAD

CO M BO

LCE LL (AC CC)

DATAA DATAB DATAC DATAD

CB O UT

LCE LL (AAC A)

DATA A DATA B DATA D

CO M BO

DATAB DATAC DATAD

CO M BO

LCE LL (AC CC)

DATAA DATAB DATAC DATAD

CO M BO

DATAB DATAC DATAD

CO M BO

LCE LL (AC CC)

DATAA DATAB DATAC DATAD

CB O UT

LCE LL (AAC A)

add_sub_5ec:add_sub_5 add_sub_4ec:add_sub_4

Trang 118

1' h0

8' h01

x_c~1x_c~0

Trang 120

Многомерные массивы

Trang 122

TYPE array_type_name IS ARRAY ( integer DOWNTO integer,

integer DOWNTO integer) OF type_name;

Trang 123

a[0][1]

x_a[0][0] (opndrn) x_a[0][1]

x_a[1][0]

x_a[1][1]

x_b[0][0] (opndrn) x_b[0][1]

Trang 124

Атрибуты

Trang 126

FALSE

Trang 127

x_a, x_b : OUT integer range 127 downto 0;

x_c, x_d : OUT integer range 127 downto 0 );

0 0

0 0 0 0 1 1 1 1 1 1 0

0 0 0 0 0 0 1

0 0

Trang 128

Левая граница N-го диапапзона индекса А

A’LEFT(1) - - 8 A’LEFT(2) - - 5

A’right(n) Тип правой

границы N-го диапапзона индекса А

Правая граница N-го диапапзона индекса А

A’RIGHT(1) - - 7 A’RIGHT(2) - - 6

A’low(n) Тип N-го

диапапзона индекса А

Нижняя граница N-го диапапзона индекса А

A’LOW(1) - - 7 A’LOW(2) - - 5

A’high(n) Тип N-го

диапапзона индекса А

Верхняя граница N-го диапапзона индекса А

A’HIGH(1) - - 8 A’ HIGH(2) - - 6

Trang 129

x_low1 : OUT integer range 0 to 15;

x_low2 : OUT integer range 0 to 15;

x_high1 : OUT integer range 0 to 15;

x_high2 : OUT integer range 0 to 15 );

0

1 1 0

1 1 1 0

0

0 1

0 0

x_low2[0] (opndrn)x_low2[1]

x_low2[2] (opndrn)

x_high1[2]

x_high2[1] (opndrn)x_high2[2] (opndrn)x_high2[3]

x_low1[0] (opndrn)x_low1[1] (opndrn)x_low1[2] (opndrn)x_low1[3]

Ngày đăng: 19/08/2014, 19:33

TỪ KHÓA LIÊN QUAN