10
1 Упатство за користење на Едиторот HADES

Sadik document

Embed Size (px)

DESCRIPTION

field required

Citation preview

Page 1: Sadik document

1

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

Едиторот HADES

Page 2: Sadik document

2

Стартување на програмата Hades

Кога ќе се стартува програмата Hades се појавува прозорец како на слика 1. Главниот дел од прозорецот

се состои од платно (canvas) кој се користи за едитирање на објектот. Панелот над платното ги

прикажува името на дизајнот (ако постои) и статусни пораки. Секоја едитирачка команда може да се

прекине преку командата Edit Cancel или со притискање на тастерот Esc.

Панелот над платното содржи неколку копчиња за контрола на симулацијата.

Од лево на десно, копчињата ги имаат следниве функции:

- копчето info прикажува информација за статусот на симулаторот, вклучувајќи го тековното симулациско време, бројот на

извршени настани и бројот на настани што чекаат,

- (<< rewind) го стопира и ресетира симулаторот,

- (| ) се паузира симулаторот,

- (>| single step) го извршува наредниот настан,

- (>> ) го стартува или рестартува симулаторот, симулаторот работи се додека не се стопира или паузира,

- (> run interval) симулацијата ќе трае според одбраниот временски интервал

Сообраќајните светла на десно овозможуваат визуелна информација за статусот на симулаторот

(стартуван, паузиран или стопиран). Додека пак од паѓачката листа (која се наоѓа најлево од долниот

панел) се одбира саканиот симулациски алгоритам. За симулација на дигитални системи се користи

VHDL модот.

Платно за

едитирање на

објектот

Панели

Popup - Menu

Слика 1 Едиторот Hades

Користење на менито кое се појавува (Popup – Menu)

За да се појави менито на екранот се кликнува со десното копче на глушецот, тоа изгледа како на слика

1, и ги нуди следниве функции:

· wire – се отвора подмени кое се користи за креирање и едитирање жици (сигнали).

· create – Се креира нова компонента. Ова всушност е мени со повеќе подменија за креирање порти,

флип-флопови, влезно-излезни компоненти и некои други симулациски објекти.

· zoom – се активира подмени за менување на zoom факторот.

· move – се поместува некоја компонента на нова позиција.

· copy – се копира компонента на саканата позиција.

· edit – се едитира компонента. Притоа се отвора дијалог прозорец за едитирање на одредени својства

на компонентата.

· name – се менува името на компонентата.

· delete – бришење на компонента.

Page 3: Sadik document

3

Креирање компоненти

Во Hades едиторот е овозможено креирање на компоненти од едноставни логички порти и флип-

флопови па до комплексни модели на системско ниво како мемории или процесори. Така на пример за

креирање на D леч флип-флоп потребни се 4 „НИ“(NAND) порти. За креирање на НИ порта се активира

менито popup и се одбира подменито create. Тогаш на мониторот се појавува ново мени со

дополнителни подменија како на пример IO, gates, complexgates, flipflops итн. Нормално за креирање на

НИ порта се одбира подменито gates. Потоа покажувачот се позиционира на NAND2 и се кликнува на

неа. Во тој момент едиторот го вчитува симулацискиот модел (кодот напишан во JAVA) и графичкиот

симбол за портата. На екранот се појавува правоаголник на местото каде покажува глушецот. Со лев

клик на глушецот компонентата се позиционира на саканата позиција. Доколку се потребни повеќе

компоненти се поставува покажувачот на саканата позиција и се вметнува саканиот број на компоненти.

На крај, по внесувањето на саканиот број на компоненти се кликнува десното копче на глушецот или се

притиска Esc тастерот за да се прекине операцијата на креирање на компоненти.

За преместување на креираната компонента се кликнува на неа со десното копче на глушецот и од

менито Popup се одбира командата move. Тогаш на екранот се појавува правоаголник кој ја претставува

новата позиција на компонентата. За да се премести компонентата се кликнува левото копче на

глушецот. Истото може да се постигне ако покажувачот се постави на компонентата и се држи

притиснат тастерот m.

За да се копира компонента сe одбира popup copy или се држи притиснат тастерот c. Едиторот ќе

креира нова инстанца од обележаната компонента.

Слично за бришење на компоненти од платното се позиционира покажувачот на компонентата и се

одбира popup delete или се притиска тастерот Delete. Секако можно е повторно да се врати

компонентата на платното ако од менито Edit се одбере командата undo.

Додавање влезно/излезни компоненти (I/O)

Неопходно е во дизајнот да се специфицираат соодветни влезови и излези. Најкористени се Ipin како

влезен и Opin како излезен пин, тие се вметнуваат во дизајнот ако се одбере popup create IO

Ipin и Opin. D лечот на пример бара 2 влезни пина, еден за податоци D и еден за clock C, и еден

излезен пин Q. Може да се користи уште еден излезен пин NQ (инвертиран Q). Овие компоненти се

креираат од менито popup (слика 2), но притоа имињата не се баш најсоодветни, за таа цел покажувачот

се позиционира на пинот и се одбира popup name. Во дијалог прозорецот се внесува соодветното

име за пинот (D, C, clk, Q, NQ …).

Слика 2 Дизајн на D леч пред ожичувањето

Својства на компонентите

Повеќето компоненти во Hades нудат сопствен интерфејс за пристап и одредени подесувачки параметри.

За таа цел покажувачот се позиционира на компонентата и се одбира popup edit или се притиска

тастерот e. За поставување на новите параметри, а притоа да остане дијалог прозорецот се притиска

Page 4: Sadik document

4

копчето Apply. За поставување на новите параметри и затворање на дијалог прозорецот се притиска

копчето OK или се притиска Cancel за да се затвори дијалог прозорецот.

Контрола на приказ

Во Hades постојат 2 типа на покажувачи: стандарден и покажувач во вид на мало крстче што всушност ја

прикажува најблиската точка од мрежата за позиционирање. Ова многу помага во позиционирањето и

подредувањето на компонентите како и во поврзувањето и подредувањето на жиците. Мрежата за

позиционирање може да се промени ако се одбере Window Select Grid… .Додека пак магнетната

мрежа може да се промени преку Window Magnetic Grid…

За да се промени видливата област на екранот се одбира соодветниот зум од менито Window или

подменито popup zoom од менито popup.

За полесно разбирање на дизајните на дигиталните системи во едиторот Hades се користат различни бои

на жиците во зависност од нивната логичка вредност.

Бои користени во едиторот Hades

Во табела 1 се прикажани сите бои кои се користат во едиторот Hades. Табела 1

Вредност Значење Боја

U Недефинирана и неиницијализирана Сино-зелена

X Недефинирана во тек на симулација Пурпурна

O Логичка ‘0’ Светло сива

1 Логичка ’1’ Црвена

Z Висока импеданса Жолта

L Слаба логичка ‘0’ Средно сива

H Слаба логичка ‘1’ Темно црвена

W Слаба, недефинирана Жолта

D Недефинирана, неважна ------

Вметнување жици

По вметнување на компонентите, потребно е истите да се поврзат. Во Hades логичката конекција помеѓу

компонентите се нарекува сигнал, додека пак терминот жица се користи за графичка репрезентација на

сигналот. Конекцијата на компонентата во симулацијата со сигналот е овозможена преку мали, црвени

правоаголници кои всушност претставуваат порти на компонентата. За поврзување на жица со

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

копче на глушецот. Потоа се влече покажувачот до дестинациската порта и повторно се кликнува

глушецот, на тој начин се поврзува жицата помеѓу портите и сигналот може да се користи (во текот на

поврзувањето може да се прекрши жицата со едноставно кликнување на глушецот).

Вметнување жичани сегменти

Во многу случаи поврзувањето не е од точка до точка туку е точка до повеќе точки. На пример кај D

лечот излезот од едната НИ порта е влез во другата НИ порта, а истовремено е и излез од самиот леч

(слика 3). Прво се креира жица од точка до точка, а потоа се додава нов сегмент.

За додавање на нов сегмент, на кое било место од жицата се кликнува на десното копче на глушецот и се

одбира popup wire add segment. Едиторот ќе креира нов жичен сегмент прикачен на

постоечката жица. Побрз начин за креирање нов сегмент е со помош на тастерот W. Покажувачот се

позиционира на местото каде ќе се додаде сегментот и се притиска тастерот W.

Page 5: Sadik document

5

Слика 3 Комплетиран D леч

Поврзување постоечки жици

За поврзување две постоечки жици се додава жичен сегмент на едната жица, се држи притиснат тастерот

Shift, се влече покажувачот до втората жица и се притиска левото копче на глушецот.

За поместување на точките на поврзување на една жица покажувачот се позиционира на саканата точка,

се одбира popup wire move point и со левото копче са кликнува на новата позиција. Наместо

да се одбира командата popup wire move point побрз начин е да се користи тастерот o.

Бришење жици и сегменти

За бришење жица, вклучувајќи ги сите нејзини сегменти и врски до компонентите, покажувачот се

позиционира каде било на жицата и се одбира popup delete.

За бришење сегмент, покажувачот се позиционира во близина на сегментот и се одбира popup wire

delete segment или се користи тастерот x.

Користење на тастатура во едиторот Hades

Во табела 2 се прикажани тастерите кои се користат при најважните операции во едиторот Hades.

Табела 2 Користење на тастатура

Тастер Име на операција Опис на операција

Esc escape Откажување на тековна операција

Del delete Бришење компонента или жица

Backspace backspace Бришење компонента или жица

c copy Копирање компонента

e edit Едитирање компонента

m move Поместување компонента

n name Именување компонента

w wire Додавање жичен сегмент

v vertex Прекршување жица

o move vertex Поместување на прекршувањето

x delete segment Бришење жичен сегмент

N Name Именување жица

Page 6: Sadik document

6

Видови влез/излез

Ipin (влезна порта)

Моделот Ipin е прекинувач за сигнал од еден бит. За менување на вредноста (0 и 1) на овој

модел, се кликнува на истиот. Доколку се држи притиснат тастерот Shift, при кликнување на

моделот, излезот ќе се менува во 0, 1, Z (висока импеданса) или U (недефинирана состојба).

Откако ќе се креира Ipin неговата иницијална состојба е недефинирана. Со секое кликнување неговата

состојба се менува во 0 или 1.

Pulse Switch (импулсен прекинувач)

При секое кликнување на оваа компонента, истата испраќа краток импулс (логичка 1) и повторно се

враќа на логичка 0. Траењето на импулсот може да се промени во својствата на оваа компонента преку

командата popup edit.

Opin (излезна порта) Симболот за оваа порта вклучува симбол за LED диода која ги менува боите во зависност од

влезот.

За визуелизирање на вредноста на сигналот во колото, без да се користи соодветен излез, се

употребува компонентата LED.

ClockGen (генератор на Clock сигнал)

Овој модел претставува генератор на поворка на правоаголни импулси со параметри: периода

(фреквенција) и иницијално доцнење, кои корисникот може да ги промени. Црвениот круг на

компонентата означува дека е стартувана, додека пак сивиот дека е привремено стопирана.

Стартувањето и стопирањето се врши со кликнување на левото копче од глушецот.

PowerOnReset

При стартување на симулацијата оваа компонента генерира еден краток импулс за ресетирање (логичка

0). Се користи за иницијализација на флип-флопови и регистри. Нејзините параметри

(иницијалното доцнење и траење на импулсот) се внесуваат во дијалог прозорецот за својство

(property dialog). Излезот на компонентата (0 или 1) се менува со лев клик на неа, што

овозможува истата да се користи како прекинувач или како генератор на импулси за ресетирање.

HexSwitch (хексадецимален прекинувач) и HexDisplay (хексадецимален дисплеј)

Овие компоненти се користат за контрола и приказ на хексадецимални вредности.

Хексадецимален прекинувач е прекинувач со 4-битен излез. Со кликнување на деловите

обележани од 0 до F, се одбира соодветната излезна вредност. Со кликнување на деловите – или

+, се декрементира или инкрементира излезната вредност, соодветно.

Откако ќе се вметне прекинувачот, неговите излези се во недефинирана состојба се додека не се

одбере една од вредностите (од 0 до F).

Хексадецималниот дисплеј е 7-сегментен излез со интегриран хексадецимален декодер и се

користи за визуелизирање на 4-битниот влез во приказ на вредности од 0 до F.

VCC, GND, Pullup

За постојани логички вредности како влез во некои компоненти, се користат овие модели.

VCC е напојување и има вредност логичка 1.

GND е заземјување и има вредност логичка 0.

Pullup компонентата генерира вредност слаба логичка 1, и најчесто се користи кај магистралите.

Овие компоненти се пасивни и се активираат само на почетокот на симулацијата.

Page 7: Sadik document

7

Основни и комплексни логички порти

Едиторот Hades ги вклучува сите основни и неколку комплексни логички кола, од кои повеќето имаат од

2 до 4 влеза. За додавање на порта во колото, се одбира компонента со командата popup create

gates компонента. На пример се одбира popup create gates Nand2 за вметнување

на НИ порта со 2 влеза.

Во табела 3 се прикажани некои од компонентите. Табела 3 Логички порти

Порта Краток опис

AND2 И-порта со 2 влеза

AND3 И-порта со 3 влеза

AND4 И-порта со 4 влеза

AND4NEG2 И-порта со 4 влеза од кои 2 се инвертирани

XOR2 XOR-порта со 2 влеза (ексклузивно ИЛИ)

XNOR2 XNOR-порта со 2 влеза (ексклузивно НИЛИ)

Buffer Бафер

INV Инвертор

Demux 14 2 во 4 декодер

Mux 21 2 во 1 мултиплексер

Mux 41 4 во 1 мултиплексер

На сите овие порти може да им се менува пропагационото доцнење. За таа цел се користи командата

popup edit при што се појавува дијалог прозорец каде се менува соодветната вредност.

Flipflops (флип-флопови)

Едиторот Hades вклучува модели на различни флип-флопови. За да се вметнат се одбира popup

create flipflops.

На слика 4 се прикажани: едноставен D флип-флоп (DFF), D флип-флоп со асинхрон, ресетирачки влез

активен на ниско ниво (DFFR) и D флип-флоп со асинхрони влезови за сетирање и ресетирање (DFFRS).

Слика 4 Видови флип-флоп

Сите овие компоненти работат на растечка ивица од влезната поворка на правоаголни импулси. Подобро

е да се користат DFFR флип-флопови доколку во колото постојат повратни јамки.

За разлика од горенаведените флип-флопови, JKFF работи на опаѓачка ивица од поворката на

правоаголни импулси.

Регистри

Во Hades постои компонента која симулира N-битен регистер кој се состои од D флип-флоп и

ресетирачки влез активен на ниско ниво. Регистарот работи и како прекинувач, така што со кликнување

на некои од битовите во регистарот неговата вредност се менува во 0,1 или X. Во оваа компонента

битовите се хоризонтално порамнети, со тоа што MSB се наоѓа на лево, а LSB на десно од регистарот.

Влезовите се на горниот дел, а излезите се наоѓаат на долниот дел од регистарот. Бројот на битови во

регистарот се менува преку дијалог прозорецот за својства на регистарот.

Page 8: Sadik document

8

Shift register (регистар за шифтирање)

Овој регистар работи на растечка ивица од влезната поворка на правоаголни импулси, при што

содржината на регистарот се менува за една позиција на лево. За разлика од обичен D регистар, овој

регистар има само еден влез (Sin – shift in).

ROM

За креирање општи логички функции се користи компонентата ROM (read only memory).

Постојат ROM компоненти со различен капацитет како на

пример 64Kx8, 1Kx8, 256x8. Овие компоненти имаат 2 додатни

влеза: nCS (chip select активен на ниско ниво) и nOE (output

enable активен на ниско ниво), кои ни овозможуваат каскадно

поврзување на 2 или повеќе ROM компоненти. Во кола каде што

не постои каскадна поврзување, за активирање на компонентата

на двата влеза се носи логичка 0.

За креирање ROM компонента се одбира:

popup create Create By Name

и потоа се внесува името на соодветната класа:

hades.models.rtl.ROM_64x8

hades.models.rtl.ROM_256x8

hades.models.rtl.ROM_1Kx8

hades.models.rtl.ROM_8Kx8

hades.models.rtl.ROM_64Kx8

На сликата е прикажан ROM со само 8 мемориски збора (3 адресни битови) од

по 8 бита.

Дијалог прозорецот (слика 5) за својства на овие компоненти вклучува

посебен едитор, кој пак овозможува едитирање, снимање, полнење, спојување

и иницијализирање на мемориската содржина на ROM компонентата.

Главниот дел од едиторот ја прикажува мемориската содржина во

хексадецимален формат при што адресите се наоѓаат на лева страна, а

вредноста на десна. За внес на податок се кликнува на саканата локација и се

внесува соодветната хексадецимална вредност.

Кликнување на глушецот – се обележува активната мемориска адреса.

Типки за навигација (cursor) - се обележува активната мемориска адреса. Слика 5 Едитор за ROM компонента

0..9 a..f – се внесува хексадецималната вредност.

Tab – поместување на следна мемориска адреса

Shift + Tab – поместување на претходна мемориска адреса.

Shift + Cursor up/down – инкрементирање / декрементирање на податокот.

За да се сними моменталната мемориска содржина во датотека, се одбира File Load. За да се

наполни мемориската содржина од датотека, се одбира File Load. Додека пак се одбира Edit

Initialize за да се наполни ROM компонентата со некои предефинирани вредности:

Unknown (X) – Недефинирани вредности.

zero – Нула вредности.

linear – Линеарни вредности (секоја наредна мемориска локација има вредност за 1 поголема од

претходната.

linear + 2 - Линеарни вредности (секоја наредна мемориска локација има вредност за 2 поголема

од претходната.

random – Случајни вредности.

Waveforms (временски дијаграми)

Временските дијаграми се корисни за разбирање на посложените дигитални кола. Затоа одредени

сигнали кои треба да се набљудуваат, се испитуваат (probe). Тоа подразбира креирање на соодветен

Page 9: Sadik document

9

временски дијаграм чија задача е да ги прати сите промени на сигналот. Ова овозможува снимање на

податоците од временски дијаграм во датотека и нивно вчитување подоцна.

На слика 6 е прикажан еден прегледник на дијаграм на состојби (waveform viewer). Тој се состои од мени

лента, панел за време, листа на временски дијаграми и множество на контролни копчиња. На дното од

прозорецот се наоѓа панел за статусни пораки.

При креирање на дијаграм на состојби, едиторот Hades го користи името на соодветниот сигнал.

Слика 6 Прегледник на дијаграм на состојби

Видови временски дијаграми

Во едиторот Hades постојат 4 вида на временски дијаграми:

WaveInteger – временски дијаграм за целобројни вредности.

WaveStdLogic 1164 – се користи за std логички вредности.

WaveStdLogicVector – за RTLIB магистрали.

WaveString – се користи за стринг вредности.

На слика 7 се прикажани временските дијаграми од типот WaveStdLogic 1164 и WaveStdLogicVector.

За обновување на временските дијаграми се користи командата Edit Update Waves. Најлевата

точка од дијаграмот соодветствува со t = 0.

За менување на зум факторот се користат копчињата прикажани на слика 6. За зумирање на одреден дел

од дијаграмот, покажувачот се позиционира на почетното време од саканиот интервал, се кликнува и се

влече до крајното време. На крај се кликнува на најдесното копче од контролниот панел за да се заврши

операцијата.

За снимање на тековните временски дијаграми се одбира File Save As и се внесува името на

датотеката. За нивно вчитување се одбира File Load.

Слика 7 Временски дијаграми

Page 10: Sadik document

10