Лекция No 6 Проектиране на цифрови устройства върху интегрални схеми (ИС) с помощта на



Дата18.11.2017
Размер153.92 Kb.
Размер153.92 Kb.

Проектиране на СГИС Лекция No 6

Проектиране на цифрови устройства върху

интегрални схеми (ИС) с помощта на

езика VHDL – основни понятия. Развойни

среди
Езикът VHDL се причислява към групата на езиците за описание на хардуер (HDL – Hardware Description Languages). Той най-общо е предназначен за създаване на описания, необходими при проектиране и моделиране на цифрови схеми, устройства и системи. За пълнота трябва да се отбележи, че се разработва и съществува вариант на езика, описващ и аналогови схеми. В настоящите лекции този вариант няма да се разглежда, тъй като излиза извън обхвата им.

В първоначалния си вариант езикът е създаден през 1980 г. в САЩ във връзка с проект за разработка на интегрални схеми с много високо бързодействие (VHSIC – Very High Speed Integrated Circuits). Този проект е дал и името на VHDL (VHSIC Hardware Description Language). Поради изключителната нужда в практиката от стандартизиран език за описание на хардуер, VHDL е избран, а по-късно (1987г.) утвърден като стандарт от IEEE под наименованието IEEE Std 1076. В последствие езикът е усъвършенствуван и допълван (последно чрез стандарт IEEE Std 1164) с цел да удовлетворява изискванията на развиващите се автоматизирани системи (така наречените развойни среди) за проектиране на цифрови устройства върху интегрални схеми и особено върху свръхголеми интегрални схеми.

В зависимост от предназначението, за което се съставя, едно описание на цифрово устройство може да изглежда по различен начин. Основно разликите могат да са в нивото на детайлизация (или абстракция) при описанието и в гледната точка (аспекта), от която се прави това описание.

Известната Y - диаграма на Gajski и Kuhn на Фиг.2.1 представя в резюмирана и нагледна форма съвременните нива и аспекти на описание на цифрови устройства, реализирани върху интегрални схеми. Върху диаграмата е обозначена областта на най-често използване в момента на езика VHDL. Вижда се от покритите от областта нива и аспекти на представяне, че с помощта на VHDL е възможно да се описва от една страна структурата, от друга страна поведението на цифрови схеми, устройства и системи на логическо, функционално и системно ниво.

В практиката на проектиране на цифрови устройства върху съвременните интегрални схеми се оказва удобно за решаване на задачите, възникващи при проектирането, моделирането и документирането им, описанието на устройствата да се извършва на така нареченото ниво на междурегистрови прехвърляния. Това ниво влиза в означената използвана област на Фиг.2.1. То е популярно още и съкратено като RTL-ниво (от Register Transfer Level). Това е ниво на описание на устройствата с градивни елементи (компоненти) – регистри, аритметически и логически функционални възли, памети, буфери и шини, синхронизирани с тактови сигнали. Данните представляват съдържанията на регистрите и паметите – най-често двоично представени числа и кодове, а операциите с тях са аритметическите и логически операции, които изпълняват функционалните възли от структурата.

Фигура 2.1

В настоящата лекция ще разглеждаме, както бе споменато и по-горе, използване на езика VHDL при описанието на цифрови устройства, реализирани върху съвременни интегрални схеми. Ще разглеждаме проектирането на устройствата върху потребителски ориентирани интегрални схеми (обобщено още наричани ASICs – от Application-Specific Integrated Circuits). Това са схеми, чиято структура е създадена до определен етап от производителя, а техният потребител довършва този процес чрез реализация на проектираните от него устройства върху непълно изградената структура.

Известно е, че според технологията на реализация на устройства и схеми върху тях, съвременните потребителски ориентирани интегрални схеми се делят на два типа:

В първия тип влизат потребителски ориентираните свръхголеми интегрални схеми, чиято структура се доопределя чрез фотохимични процеси и маски (фотошаблони) съобразно проекта на потребителя. В един клас схеми от този тип се използват съществуващите предварително в структурата конфигурации от несвързани логически елементи (наричани базови матрични кристали – Gate Arrays), между които допълнително се осъществяват връзки чрез маските и фотохимичните процеси. В друг клас схеми от този тип в структурата се разполагат пак чрез фотохимични процеси предварително топологично описани в библиотека блокове, които изпълняват различни по сложност логически функции (блоковете са наричани стандартни клетки – Standard Cells). Ще прилагаме обобщаващото име ASIC като название на потребителски ориентираните интегрални схеми от този тип.

Към втория тип спадат потребителски ориентираните свръхголеми интегрални схеми, чиито функции се доопределят чрез програмиране (електрическо конфигуриране). Тяхната структура обикновено представлява двумерна матрица от логически блокове, шини за връзка между тях, допълнителни блокове памет и функционални блокове (например умножители). Функциите на блоковете и връзките между тях се доопределят (конфигурират) най-често чрез файл за конфигуриране, който се записва в допълнителни памети RAM в чиповете и битовете му управляват функциите на елементите на тези чипове.

Конфигурирането на функциите на тези интегрални схеми може да се извършва многократно по различен начин. Затова казват, че тези схеми са многократно конфигурируеми или програмируеми. За тях се използва най-често названието FPGA (от Field Programmable Gate Arrays), което ще използваме и ние тук. В следващите лекции са дадени ред примери за проектиране на цифрови устройства върху такива свръхголеми интегрални схеми.

Проектирането на цифрови устройства върху по-горе споменатите потребителски ориентирани интегрални схеми се извършва понастоящем с помощта на развойни среди. С термина развойна среда за проектиране върху ИС ще означаваме система от програми за проектиране, симулиране и документиране на устройства, реализирани върху потребителски ориентирани интегрални схеми. Програмите от една развойна среда са със съгласуван интерфейс помежду си така, че резултатите от работата на една програма се използват от други програми на същата среда. Очевидно развойните среди принадлежат към класа на системите за автоматизирано проектиране с помощта на компютър (CAD systems – Computer-Aided Design systems).

На Фиг.2.2 е показана опростена диаграма, обобщаваща стъпките на работа по проектиране на цифрови устройства върху потребителски ориентирани ИС. Вижда се, че преди да започне работа с развойната среда, проектантът трябва да е разработил модел на бъдещото цифрово устройство. Както бе отбелязано и по-горе, в съвременната практика най-удобно е (и по принцип повечето развойни среди така го изискват) моделът да е изграден на RTL – ниво (RTL - модел). От този модел проектантът трябва да състави входно за развойната среда RTL – описание на устройството в нашия случай на езика VHDL.

Трябва да се отбележи, че използваните развойни среди допускат входните описания на устройствата, които ще се проектират, да бъдат не само на VHDL, но и на други езици за описание на хардуер (HDL) – например Verilog, Abel и др. Допускат се и графични входни описания на устройствата или на техни блокове. Тук ще се съсредоточим върху разглеждане на VHDL – описания на цифрови устройства поради популярността на езика.

Диаграмата от Фиг.2.2 откроява основните етапи в проектирането на цифрово устройство върху потребителски ориентирани ИС. Развойната среда, четейки входното за нея RTL – описание на това устройство, създава (синтезира) своя, вътрешна абстрактна RTL – схема на устройството. Схемата е абстрактна, тъй като все още не е решено как компонентите й ще бъдат реализирани върху чипа. Следват стъпките на логическо, схемотехническо и топологическо проектиране, довеждащи до реализация на проектираното устройство върху ИС. Популярно е названието на целия този процес като RTL – синтез , както е показано на Фиг.2.2.

Опростената разглеждана диаграма тук не включва някои допълнителни дейности, които могат да извършват развойните среди (обикновено заедно с проектанта) – например симулация на устройството след всяка от изложените стъпки на проектиране, оценка на резултатите и евентуално връщане към предни стъпки за проектиране с поправени параметри на устройството.



Фигура 2.2



Основни елементи на VHDL – описание на

цифрово устройство в развойна среда
Ще представим основните елементи на едно VHDLописание в развойна среда с помощта на пример за описание на цифрово устройство, извършващо изчисления за един тип основна макрооперация в областта на цифрова обработка на сигнали - а именно така наречената “пеперуда” при бързо преобразуване на Фурие (Fourier) с комплексни числа. По-подробно описание на тази макрооперация е дадено в следващите лекции.

Тук ще представим устройството първоначално зададено като “черна кутия” с изводи за входове и изходи за 16- и 32- разрядни двоични числа, както е показано на Фиг.2.5. Това са изводи за входни данни (P,Q,M,N), входни коефициенти за изчисленията (R,S), изходни резултати (Mp,Np,Pp,Qp) и входен синхронизиращ (тактов) сигнал за работа на устройството CLK.



Фигура 2.3

RTL – моделът на устройството, съставен от проектанта му, е показан на Фиг. 2.4. Както бе обяснено в предната точка, RTL означава, че моделът на устройството, включващ структурата и начина му на функциониране, се разглежда на ниво на междурегистровите прехвърляния. Регистрите на Фиг.2.4 съхраняват 16- или 32- разрядни данни и в тях се записват нови данни синхронизирано (например по нарастващ фронт) чрез тактовия сигнал CLK. Функционалните възли, означени с mult, sub и adder, извършват съответните операции (умножение, изваждане и събиране) с двоичните числа. Предполага се, че всеки от тези функционални възли извършва операцията си за интервал от време, по-малък от периода на тактовия сигнал CLK. По този начин структурата функционира правилно във времето, като операции с нови входни данни могат да започват за всеки период на тактовия сигнал. Регистрите за входни данни между функционалните възли дават възможност на устройството да работи в така наречения конвейерен режим.

Тук ще разгледаме основните елементи (ще ги наричаме конструктивни единици) на VHDL – описанието на това устройство. Това описание е представено на Фиг.2.5.



Фигура 2.4



Фигура 2.5

От трите изобразени на Фиг.2.5 конструктивни единици ще разгледаме първоначално втората от тях - интерфейсната декларация на проектирания обект (така се нарича устройството, което се описва на VHDL). Накратко ще й казваме и entity - декларация (от entity - ключовата дума, използвана за началото й). След началната ключова дума следва името на описвания обект - в случая сме избрали за име на устройството Fourier_butterfly. Тук ще отбележим, че в имената и в ключовите думи синтактичните анализатори на VHDL в развойните среди не правят разлика между малки и големи букви.

Интерфейсната декларация по същество описва интерфейса на описваното устройство с външния за него свят. Затова в нея след ключовата дума port следва списък на декларациите на входно - изходните изводи на устройството (още наричани портове). Всеки порт се декларира чрез входно-изходния сигнал, който всъщност се разпространява по този порт. Всеки сигнал си има име - в нашия случай имената са от P до Qp. За всеки сигнал се декларира и посоката му. Най-често използваните декларации за посока са с ключовите думи: in - за входен сигнал, out - за изходен сигнал и inout - за сигнал, който е изходен за устройството, но се използва и като аргумент в някой негов вътрешен функционален възел (пример за такъв интерфейсен сигнал на устройство ще бъде даден по-нататък ).

В декларацията на всеки сигнал се описва и типът данни, които пренася той. В нашия пример типът данни се декларира чрез ключовата дума std_logic_vector, представяща вектор от двоични разряди - с други думи двоично число с повече от един разряди, като номерата на най-левия и най-десния разряд са разделени с ключовата дума downto. По принцип най-често използваните типове данни в VHDL - описанията на цифрови устройства върху ИС са дадени в следващите лекции.

Следващата основна конструктивна единица на VHDL - описанието е архитектурата на проектирания обект (цифровото устройство). Текстът й започва с ключовата дума architecture, следва избрано от проектанта име на архитектурата (в нашия случай това е Stage_1_2_3). Декларира се и това, на кой описван обект принадлежи тази архитектура - след ключовата дума of е поставено името на нашето устройство Fourier_butterfly.

Архитектурата описва структурата и/или функционирането (поведението) на проектирания обект. Това описание се разполага в блока на архитектурата, заключен между ключовата дума begin и ключовата дума end с името на архитектурата Stage_1_2_3. В случая описанието е на поведението на устройството – описани са операциите, които извършва то, включени в оператори за присвояване на нови стойности на сигнали. В следващи лекции са представени и обсъдени различни типове архитектури, използвани често при проектиране на цифрови устройства върху СГИС.

От Фиг.2.5 се вижда,че архитектурата на проектирания обект има и декларативна част, която се разполага пред блока й (пред begin). В нея най-често се декларират вътрешните сигнали от структурата на цифровото устройство, които пренасят данните между компонентите на тази структура. В нашия случай това са сигналите A11, A12, A13, A14, A, B, необходимостта от които може да се види от структурната схема на Фиг.2.4. За вътрешните сигнали не може да се говори за посока, свързана с тях, затова в декларациите им липсват ключовите думи за посока in, out, inout.

Трябва да се отбележи, че декларираните в entity – декларацията на един обект сигнали (или други елементи на VHDL) са достъпни (видими) в архитектура, принадлежаща на този обект. Затова и входно-изходните сигнали от по-горе разглежданата entity – декларация имат право да участвуват в операторите на принадлежащата й архитектура.

Конструктивната единица, която стои пред entity – декларацията в описанието на Фиг.2.5, включва редове с декларации за достъп до библиотеки и пакети на VHDL. В нашия пример библиотеката е една - тя е с име IEEE и това, че се иска достъп до нея, се декларира чрез ключовата дума library, поставена пред името й.

Една библиотека от гледна точка на VHDL - описание се възприема като съвкупност от вид конструктивни единици на VHDL - а именно така наречените пакети. В пакет на VHDL се дефинират нови типове данни, процедури, функции, които могат да бъдат използвани от entity – декларациите, а съответно и от принадлежащите им архитектури.

Достъпът до пакет се заявява чрез ключовата дума use , след което разделени с точка се написват името на библиотеката, в която е пакетът, името на самия пакет и дефинираното име в пакета (на тип, процедура, функция), което искаме да използваме. (В този случай се казва, че искаме това име да е видимо в entity – декларацията и в архитектурата).

Ако искаме да използваме всички дефинирани в един пакет имена, след точката след името на пакета в декларацията use трябва да поставим ключовата дума all.

На Фиг.2.5 е деклариран достъп до два пакета, намиращи се в библиотеката IEEE - STD_LOGIC_1164 и STD_LOGIC_UNSIGNED. В първия пакет е дефиниран типът std_logic_vector, който използваме за деклариране на сигналите в entity – декларацията и в архитектурата Stage_1_2_3, а във втория пакет са предефинирани операциите +, -, * така, че да се извършват със същия тип данни std_logic_vector. Информация за най-често използваните типове данни, операции и изрази с тях е дадена в следваща лекция.

Таблица 2.1, която следва по-долу, съдържа сбита информация за основните конструктивни единици на VHDL – описание на цифрово устройство. Ние коментирахме дотук всички от тях, които са използвани и в описанието на Фиг.2.5. Не сме коментирали само една от таблицата, използвана по-рядко и то при по-сложни описания – така наречената конфигурация.

Таблица 2.1



конструктивна

VHDL -единица

принципен синтаксис на конструктивната единица

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

интерфейсна декларация на проектиран обект

(entity-декларация)



entity <име на обект > is

port (


<списък от декларации на

сигнали>


);

end <име на обект >;



описва входовете и изходите (интерфейса) на проектирания обект с външната за него среда

архитектура на проектиран обект

(architecture)



architecture <име на архитектура> of <име на обект >

<списък от декларации>

begin


<оператори>

end <име на архитектура>;



описва начина на функциониране (поведението) и/или структурата на проектирания обект

съответствие между деклариран обект и архитектура

(декларация на конфигурацията)



configuration <име на конфигурация> of

<име на обект> is

for <име на архитектура>



<оператори use…>

end for;


end <име на конфигурация>;

декларира с коя от предложените архитектури да се проектира обект от проекта

декларация на пакет

(package)



package <име на пакет> is

<декларации>

end <име на пакет>;



съхранява често използвани дефиниции (на типове, константи и др.), дефиниции на процедури, функции

тяло на пакет

(package body)



package body <име на пакет> is

<декларации>

<дефиниции на функции>

end <име на пакет>;



За да се провери коректността на VHDL – описанието от Фиг.2.5, което би трябвало да описва цифровото устройство с RTL – модел от Фиг.2.4, това описание е подадено като входно към развойна среда с цел да се проектира цифрово устройство. Средата е с име WebPACK и се използва за проектиране на цифрови устройства върху програмируеми чипове (включително и FPGA). Работейки съвместно с проектанта по стъпките на диаграмата на проектиране от Фиг.2.2, средата първоначално транслира това входно за нея описание и от него строи свой вътрешен RTL – модел на устройството, като синтезира абстрактна RTL – схема (да напомним, че й казваме абстрактна, защото компонентите й не са реализирани все още върху чипа).

Резултатите от тази първа стъпка от работата на развойната среда по проектирането на устройството с коментираното тук VHDL – описание са представени по-долу. На Фиг.2.6 е показана схема, генерирана от развойната среда. Чрез тази схема развойната среда показва как е възприела от прочитането на entity -декларацията информацията за входовете и изходите на устройството. Вижда се, че данните за входовете и изходите като имена, брой на разряди и посока на сигналите съвпадат с декларираните от входното описание на Фиг.2.5.



Фигура 2.6

Синтезираната RTL – схема от развойната среда (тоест съдържанието на “кутията” от Фиг.2.6) е показана на Фиг.2.7. (В средата тази схема се нарича неслучайно RTL-Schematic). На фигурата правоъгълниците означават регистри за данни, синхронизирани по нарастващ фронт на тактовия сигнал CLK, освен това функционалните възли за умножение, събиране и изваждане се разпознават лесно. Вижда се, че синтезираната RTL – схема от Фиг.2.7 съвпада абсолютно с RTL - модела на проектанта от Фиг.2.4. Следователно архитектурното VHDL – описание на устройството, от което е синтезирана тази схема, е правилно съставено.

На Фиг.2.8 са показани конструктивните единици на едно VHDL - описание в развойна среда за проектиране на цифрови устройства върху ИС. За работата на средата се създава така нареченият проект, който конструктивно представлява множество от файлове, съхранявани в директория на този проект. Демонстрирано е едно просто VHDL – описание, представляващо entity - декларация и една архитектура на устройството. За тях средата определя един VHDL - модул (файл в директорията на проекта). За файловете, които се генерират при следващите стъпки на работа на развойната среда по проектиране на устройството (виж диаграмата за работа на Фиг.2.2), средата създава и поддържа една работна библиотека с име work.



Фигура 2.7



Фигура 2.8



Фигура 2.9

На Фиг.2.9 е показано оформянето в развойна среда на друго (по-сложно) VHDL – описание с йерархична структура. Entity – декларацията на устройството е означена като entity - декларация1. Проектираното устройство е съставено от компоненти, като всеки компонент е описан с неговата entity - декларация и архитектура, включени в отделни модули (разположени в отделни файлове). Примери за такива VHDL – описания с йерархична структура са дадени в следващи лекции.

В описанието на компонент2 на Фиг.2.9 влизат три архитектури. Чрез конструктивната VHDL – единица “конфигурация” се определя коя от трите архитектури ще бъде конкретно използвана при проектирането на устройството.

Развойната среда WebPACK, пример за работата на която беше даден по-горе, автоматично създава рамка за VHDL - описание, при деклариране от проектанта, който работи с нея, че желае създаването на нов VHDL – модул в проекта си. Пример за такава рамка е показан по-долу – за устройство, наречено butterfly и с архитектура, наречена Behavioral. Вижда се, че рамката съдържа основните конструктивни елементи на едно VHDL – описание.

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity butterfly is

-- място за деклариране

-- на входно-изходните сигнали

-- на устройството

end butterfly;
architecture Behavioral of butterfly is

-- място за вътрешни декларации

-- за архитектурата

begin


-- място за описание

-- на архитектурата

-- на устройството

end Behavioral;







Сподели с приятели:


©zdrasti.info 2017
отнасят до администрацията

    Начална страница