Упражнение №1, 2009



Дата24.01.2017
Размер104.75 Kb.
#13416


Упражнение №1, 2009
Проектиране на СГИС

HDL-базирано проектиране на ЦУ върху програмируеми VLSI – интегрални схеми: създаване на проекти и изпълнение на основните им процеси
В това упражнение се проектира и имплементира (програмира се) върху FPGA – чип върху развойна платка едно примерно цифрово устройство, представляващо т.нар. брояч на Джонсън. По- долу е дадена блокова схема и таблица на състоянията на 4 – битов брояч на Джонсън, който премества съдържанието си по всеки нарастващ фронт на тактовия сигнал CLK на един бит вдясно:



блокова схема на брояч на Джонсън

таблица на състоянията на брояч на Джонсън

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



За проектиране, симулиране и имплеметиране върху FPGA на цифрови устройства и системи, ще използваме развойна среда (в случая WebPACK на фирма Xilinx) и език за описание на хардуер (HDL), който в конкретния случай е популярният специализиран език от високо ниво VHDL.

По-долу е дадена опростена нагледна диаграма на процесите на проектиране и имплементиране на цифрови устройства и системи върху FPGA с помощта на развойна среда и входно описание на езика VHDL.

1. Създайте в директорията на вашата група с име Project1, в който се проектира върху FPGA - чип : 4-битов брояч на Джонсън с входове за управление на посоката и за спиране на брояча:

1.1. Стартирайте програмната система за проектиране Project Navigator чрез:

- иконата Xilinx ISE (Integrated Software Environment) от Desktop



- или : Start => Programs => Xilinx ISE 8.1i => Project Navigator


1.2. Създайте нов проект чрез команда на основното меню:

File => New Project


1.3. В прозореца New Project Wizard посочете необходимите елементи:

- в полето Project Location посочете директория C:\VLSI\gr221a (за група 221а);
- запишете името на проекта – Project1 в полето Project Name – в директорията gr221a се създава поддиректория Project1 за файловете на проекта;
- изберете начин на описание на проектираното устройство, който ще се прилага в главния сорс-модул на проекта – в полето Top-Level Module Type изберете HDL (Hardware Description Language – декларира се използване на език за описание на хардуер);
След натискане на бутона Next преминете към въвеждане на останалите необходими елементи на проекта:
- изберете фамилия от FPGA – чипове, която ще се използва от проекта - Device Family: Spartan3E;
- изберете FPGA – чип, върху който ще се реализира устройството - Device: XC3S100E;
- изберете вид корпус на чипа - Package: TQ144;
- изберете скорост(бързодействие) на използвания чип - Speed Grade: -5;
- средството за проектиране на схемата на устройството от езиковото му описание е технологията на синтезиране на цифрова схема XST (VHDL/Verilog) - Xilinx Synthesis Technology , използваща като входен език за описание на устройството езиците от високо ниво VHDL (който ние ще използваме) или Verilog.

1.4. Пропуснете чрез натискане на бутона Next двата следващи прозореца New Project Wizard, които се използват за създаване и добавяне на сорс-файлове към проекта; ние ще използваме друг начин за включване в проекта на такива файлове.

1.5. В прозореца New Project Wizard – Device Properties се извеждат за справка елементите и параметрите на проекта, който се създава. При несъгласие с някои от тези параметри е възможно връщане към предните стъпки от процедурата на създаване на проекта чрез бутона Back. Бутонът Finish, който трябва да натиснете, на практика създава в избраната директория нужните начални файлове на проекта.


1.6. Създайте сорс- модул в проекта, съдържащ описанието на проектираното устройство на език VHDL. За тази цел изпълнете от основното меню командите :

Project => New Source…

В отворилия се прозорец New Source Wizard изберете тип на модула : VHDL Module , а в полето File name въведете за име на файла, който ще съдържа този модул: JohnCount. За да преминете по-нататък, натиснете бутона Next.

Пропуснете отново чрез натискане на бутона Next следващия прозорец New Source Wizard- Define Module, чрез който се декларират входните и изходните сигнали (портове) на проектираното устройство. Тези портове ще бъдат декларирани по-късно чрез текста на VHDL - описанието на устройството.

В прозореца New Source Wizard – Summary се извеждат за справка параметрите на създавания модул. Ако сте съгласни с тях, натиснете Finish, с което на практика се създава в директорията на проекта файлътJohnCount.vhd (vhd е разширение в името, означаващо модул(файл) с текст на езика VHDL).
В изведения прозорец за редактиране на текста на JohnCount.vhd се изобразява текстовата рамка на създавания модул с VHDL – описанието. В нея директивите library и use декларират библиотеките на развойната среда, които ще бъдат използвани при синтезирането на схемата на устройството.
1.7. Въведете от клавиатурата в текстовата рамка на JohnCount.vhd - описанието на устройството на езика VHDL. За тази цел:

Въведете в рамката на интерфейсната декларация entity JohnCount is ... end JohnCount; списъка от входно-изходни сигнали (портове) на това устройство:

port (

LEFT : in STD_LOGIC; -- Active-high



RIGHT : in STD_LOGIC; -- Active-high

STOP : in STD_LOGIC; -- Active-high

CLK : in STD_LOGIC;

Q : inout STD_LOGIC_VECTOR (3 downto 0) := "0000" -- Active-high LEDs

);

Въведете в декларативната част на архитектурното описание на устройството - между architecture



Behavioral of JohnCount is и begin декларацията на вътрешните му сигнали:
signal DIR: STD_LOGIC := '0'; -- Left=1, Right=0

signal RUN: STD_LOGIC := '0';


Въведете в тялото на архитектурното описание – между begin и end Behavioral; текста на основната за конструкция на езика VHDL – процес, описващ функционирането на проектираното устройство:
process (CLK)

begin


if (CLK'event and CLK='1') then -- CLK rising edge
-- DIR flip-flop:

if (RIGHT='1') then

DIR <= '0';

elsif (LEFT='1') then

DIR <= '1';

end if;


-- RUN flip-flop:

if (STOP='1’) then

RUN <= '0';

elsif (LEFT='1' or RIGHT='1') then -- STOP = ‘0’

RUN <= '1';

end if;


-- Counter section:

if (RUN='1') then

if (DIR='1') then

Q(3 downto 1) <= Q(2 downto 0); -- Shift lower bits (Left Shift)

Q(0) <= not Q(3); -- Circulate inverted MSB to LSB

else


Q(2 downto 0) <= Q(3 downto 1); -- Shift upper bits (Right Shift)

Q(3) <= not Q(0); -- Circulate inverted LSB to MSB

end if;

end if;


end if;

end process;


Актуализирайте съдържанието на файла чрез File => Save.

В прозореца Sources на Project Navigator получавате следния вид на досега включените елементи в проекта:



2. Изпълнете процесите на проектиране на устройството. За тази цел:


2.1. В прозореца Processes for Current Source (при избран сорс-модул johncount в прозореца Sources in Project) двойно кликнете върху последния процес: Generate Programmilng File

Системата за проектиране ще изпълни всички процеси на проектиране в необходимата последователност.


2.2. Проследете съобщенията от процесите на проектиране в прозорецa Console на системата.

Ако при проектирането не са се получили грешки, прозорецът Processes for Current Source изглежда така (със зелени отметки пред имената на успешно завършилите процеси на проектиране):


2.3. Проверете като резултат от проектирането синтезираната първоначално абстрактна цифрова схема чрез двойно кликване на Synthesize -> View RTL Scematics и влизане в по-ниските нива на схемата.

2.4. Отчетете параметрите на проектираното устройство, отнасящи се до очакваното му бързодействие – минимален период на тактовия сигнал (Minimum period) , респективно максимална допустима честота (Maximum Frequency) - в Synthesize –> View Synthesis Report.

2.5. Отчетете броя и процентите на използваните ресурси на FPGA-чипа като резултат от проектирането – в Implement Design –>Map -> Map Report – използваните тригери в конфигурируемите логически блокове: Slice Flip Flops:... , използваните генератори на логически функции в конфигурируемите логически блокове: 4 input LUTs:..., използваните конфигурируеми логически блокове: Number of occupied Slices:..., използваните изводи на чипа и входно-изходни блокове : Number of bonded IOBs:..., използваните блокове с буферни схеми за тактовия сигнал Number of GCLKs:... .

2.4. Проверете разположението на използваните блокове от FPGA-чипа чрез програмата Floor Planer - двойно кликване на Implement Design->Place&Route->View/Edit Placed Design (стартиране на програмата Floor Planner) .
3. Проектирайте 8-битов брояч на Джонсън с входове за управление на посоката и за спиране на брояча, като коригирате в същия проект VHDL – текста в модула JohnCount и нановo стартирате процесите на проектиране.
4. Разположете входните и изходните сигнали на брояча на Джонсън върху определени изводи на използвания FPGA -чип от развойната платка с цел броячът да може да се управлява от определени бутони и клавиши и състоянието му да се индицира чрез определени светодиоди, които върху платката са свързани с определените изводи (пинове) на чипа.

Общ вид на развойната платка Digilent Basys с FPGA – чип : xc3s100e (от фамилия Spartan3e на фирма Xilinx) с означени номера на изводите на FPGA , свързани към елементите (ключове, бутони, светодиоди) на платката:

4.1.За въвеждане на горната информация добавете към проекта нов сорс-модул от тип Implementation constraints file (с име JohnUcf) чрез Project => New Source. Потвърдете в отворилия се следващ прозорец New Sources Wizard - Associate Source, че той ще бъде асоцииран (подчинен) на VHDL - модула JohnCount. В прозореца Sources in Project ще получите следната актуална конфигурация за проекта:



4.2.Стартирайте програмата PACE (Pin-out Area Constraints Editor) чрез двойно кликване на User Constraints->Assign Package Pins в прозореца Processes for Current Source (при избран сорс-модул JohnUcf в прозореца Sources ) . Въведете подреждането на сигналите по изводите в полето Loc(ation), като използвате данните от таблицата на следващия прозорец. В нея данните за необходимото използване на изводите са взети от документацията на развойната платка и могат да се проверят от показаната по-горе схема на платката.
При така въведените в таблицата данни :

-тактовият сигнал CLK ще се подава към брояча на Джонсън от бутона P41,

-сигналът STOP ще се подава от ключа P6:

-сигналите LEFT, RIGHT ще се подават от ключовете P36, P38 , а състоянията на тригерите на брояча ще се индицират от светодиодитеP2 – P15.




Запишете информацията във файла JohnUcf.ucf чрез File => Safe.

В прозореца Bus Delimiter потвърдете с активиране на радиобутона XST default, че ще се използват пречупени скоби (<,>) за индексите на масивите от сигнали:




Затворете прозореца на програма Pace.
4.3. Активирайте в прозореца Sources VHDL - модула JohnCount и отново изпълнете процесите на проектиране на устройството.

Проверете чрез стартиране на програмата Floor Planer (Implement Design->Place&Route->View/Edit Placed Design (Floorplanner)), че входните и изходните сигнали на проектираното устройство са разположени действително върху зададените от вас по-горе изводи на чипа.

4.4. Заредете получения при успешно проектиране файл за конфигуриране (Programming File) в използвания FPGA –чип на развойната платка. Този файл, генериран от процеса Generate Programming File, е с име, съвпадащо с името на главния модул на проекта (в случая JohnCount) и разширение .bit.

Прехвърлянето на файла за конфигуриране от компютъра вьв FPGA –чипа се извършва по USB- интерфейс с помощта на програмата ExPort на Digilent/Adept.


4.5. Проверете работата на брояча на Джонсън върху развойната платка.






Каталог: KST%202%20kurs%20Mag -> 2%20sem -> PSGIS -> Uprajneniq
PSGIS -> Лекция No 5 Преглед на архитектурните и схемотехнически особености на съвременните fpga чипове
PSGIS -> Лекция №4 Проектиране на сгис памети в компютърните системи архитектура, логически и схемотехнически характеристики
PSGIS -> Лекция No7 Основни типове данни и операции при vhdl описания на цифрови устройства. Реализа
Uprajneniq -> Проектиране на сгис упражнение No 6
PSGIS -> Стъпки в процеса на проектиране на цифрови устройства върху конфигурируеми чрез маски сгис. Пример за проектиране “отгоре-надолу”


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




©obuch.info 2024
отнасят до администрацията

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