Оператор надовезивања

Slides:



Advertisements
Similar presentations
Quad 2-to-1 and Quad 4-to-1 Multiplexers Discussion D2.4 Example 7.
Advertisements

Индиректна питања користимо када некога љубазно питатмо за информацију, почевши са изразима као нпр.:
1 БЕЗБЕДНОСТ НА РАДУ ПРИ РАДУ СА МОСТОВСКИМ И ДРУГИМ ВРСТАМА ДИЗАЛИЦА.
ДАВАЧИ ПОМЕРАЈА 2. Садржај  Синхроуређаји  Разлагачи  Индуктосини  Енкодери  Дифракционе решетке  Двобрзински мерни системи  Двоположајни давачи.
ДАВАЧИ ПРИТИСКА, ПРОТОКА, НИВОА, ГУСТИНЕ, pH ВРЕДНОСТИ, ВЛАЖНОСТИ И ДИМЕНЗИЈА (слике: Д. Станковић “Мерење неелектричних величина електричним путем” и.
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
15-Dec-15EE5141 Chapter 4 Sequential Statements ä Variable assignment statement ä Signal assignment statement ä If statement ä Case statement ä Loop statement.
Delay Mechanisms transport | [reject time_exp] inertial Transport: Ideal transmission line Inertial: Model rejection of short pulses.
Relational Operators Result is boolean: greater than (>) less than (=) less than or equal to (
QUIZ What Circuit is this ?. Entity (The Object) -- Entity informs about the circuit’s interface -- signals entity my_circuit is port (L0, L1, L2, L3.
КОНКУРС МИНИСТАРСТВА ЗА ТЕЛЕКОМУНИКАЦИЈЕ И ИНФОРМАЦИОНО ДРУШТВО „Дигитални час“ Основна школа “Јован Поповић “ Сусек одељење у Баноштору Аутор: Ђурђица.
Кеш меморијa Приципи рада кеш меморија Величина кеша
Јава - RMI Дизајн симулатора дискретних догађаја опште намене обухвата пројектовање више различитих структурних нивоа. Унутар сваког од структурних нивоа.
Увод у WEB програмирање
Компонента Декларација vs дефиниција. Могу се декларисати у:
ОДРЖАВАЊЕ И ЗАШТИТА СИСТЕМА
Промена Устава РС Београд, 21. јул 2017.
Увод у информатику и рачунарство
Матична Плоча Миле Станковић
Комбинационе мреже Ефикасно HDL моделовање Дељење оператора
Методика наставе рачунарства
Инструменти који могу олакшати примену Уредбе о биоцидним производима
Архитектура рачунарских система
Рачунарске мреже Александар Картељ
ФИЗИКА Час број јануар Оптика.
Објектно орјентисано програмирање
38. Серво мотори. Захтеви и примена. ДС серво мотори. АС серво мотори
Референтни модели Поређење референтних модела OSI и TCP/IP
Аутори: Славко Марковић Игор Јанковић
Рачунарске мреже Александар Картељ
ОСНОВНИ ЕЛЕМЕНТИ ГРАФИЧКОГ ИНТЕРФЕЈСА
РАЧУНАРСКЕ КОМУНИКАЦИЈЕ
АРБИТРАЖНИ СПОРАЗУМ.
Увод у VHDL.
Рачунарски ВЛСИ системи
Рачунарске мреже Александар Картељ
Александра Поповић Александра Настић
Секундарна меморија Типови записа код секундарних меморијских медијума
Оперативни системи и Рачунарске мреже
Рачунарске мреже Александар Картељ
Атрибути сигнала sig’event sig’active sig’last_event sig’last_active
Арбитратор Један ресурс Два корисника.
Коначни аутомати.
Стандарди за заштиту животне средине
DSP Алгоритми и Архитектуре
Unwinding  Приходи од камате на обезвређена финансијска средства која се вреднују по амортизованој вредности Илустративни преглед за потребе техничке.
Рачунарске мреже Александар Картељ
Програмски језик C Структура програма, типови података,
Увод у VHDL.
РАЧУНАРСТВО ИЗМЕЂУ ПРАКСЕ И ИСТРАЖИВАЊА
Računarska grafika.
Слој апликација DNS – систем именовања домена Електронска пошта
Финансијски инструменти
Сабирање и одузимање троцифреног и двоцифреног броја
Оптички систем преноса
Подешавање радног окружења програма Microsoft Word
Рачунарске мреже Александар Картељ
Стварно право БAШТИНА Слободна (властеоска и црквена, dominium eminens) Потчињена (работа, десетак, dominium utile) Пронија (dominium directum) Слободно.
СУБЈЕКТИВНЕ ГРАНИЦЕ АРБИТРАЖНОГ СПОРАЗУМА
Дистрибуиране базе података
Стандарди за заштиту животне средине
СОФТВЕР.
Суштина и концепције курикулума
Зрачење.
OSI модел OSI референтни модел (Open Systems Interconnection) дели функције мреже на седам мањих, лакше управљивих целина (слојева) Сваки слој дефинише.
Увод у организацију и архитектуру рачунара 2
Аритметичке и логичке операције
Архитектура и програмирање микропроцесора Intel 8086 (3)
Глобални барометар корупције 2009
Behavioural modelling
Presentation transcript:

Оператор надовезивања Низови се могу надовезивати помоћу оператора & signal long_reg : bit_vector(7 downto 0); signal medium_reg : bit_vector(6 downto 0); signal small_reg : bit_vector(3 downto 0); Пример: long_reg <= '0' & medium_reg; long_reg <= "1010" & small_reg;

Сецирање Може делу низа да се додели вредност Може део низа да се прочита signal input : bit_vector(0 to 15); signal output : bit_vector(0 to 15); output(8 to 15) <= input(0 to 7); output(0 to 7) <= input(8 to 15);

Агрегација сигнала aggregate ⇐ ( ⦅ ⟦ choices => ⟧ expression ⦆ ⦃,...⦄ ) choices ⇐ ⦅ simple_expr | discrete_range | others ⦆ ⦃|...⦄ Примери: type byte is array (7 downto 0) of bit; signal d_reg : byte; signal a, b : bit; d_reg <= (a, "1001", b, "00"); d_reg <= (7 => a, 6 downto 3 => "1001", 2 => b, 1 downto 0 => "00");

Агрегација сигнала signal status_reg : bit_vector(7 downto 0); signal int_prior, cpu_prior : bit_vector(2 downto 0); signal int_en, cpu_mode : bit; (2 downto 0 => int_prior, 6 downto 4 => cpu_prior, 3 => int_en, 7 => cpu_mode) <= status_reg;

Секвенцијално процесирање Појављује се унутар процеса и потпрограма. Наредбе се извршавају према редоследу појављивања унутар процеса (потпрограма) редослед наредби из различитих процеса није дефинисан. Променљивим се вредност мења у тренутку извршавања исказа доделе вредности тој променљивој. Могу се користити и математички оператори. У току извршавања, симулационо време се не мења! За сваки процес мора се дефинисати под којим условима ће се активирати (шта је потребно да се догоди да се процес поново активира).

Процес Процес је конкурентни исказ. Листа сигнала на које је процес осетљив (листа осетљивости процеса) process_statement ⇐ ⟦ labela_procesa: ⟧ process ⟦ ( naziv_signala ⦃,...⦄ ) ⟧ ⟦ is ⟧ ⦃ deklarativna_sekcija ⦄ begin ⦃ sekvencijalni_iskazi ⦄ end process ⟦ labela_procesa ⟧; Процес је конкурентни исказ. Процес садржи секвенцијалне исказе.

Процес Листа сигнала на које је процес осетљив је опциона. Уколико процес нема листу сигнала на које је осетљив: активира се на почетку симулације активира се сваки пут када се "пробуди" са неког wait исказа кад дође до краја, враћа се на почетак Уколико процес има листу сигнала на које је осетљив: активира се и суспендује исто као да нема листу осетљивости суспендује се увек када дође до краја процеса услед догађаја на сигналу из листе осетљивости процес се активира ако је суспендован због доласка до краја.

Секвенцијални искази sequential_statement ⇐ wait_statement | report_statement | variable_assignment_statement | if_statement | loop_statement | exit_statement | null_statement | assertion_statement | signal_assignment_statement | procedure_call_statement | case_statement | next_statement | return_statement

Секвенцијална додела вредности сигналу Додела вредности сигналу унутар процеса. Сваки процес добија по један драјвер за сваки сигнал којем додељује вредност Уколико се сигналу у неком случају не додели вредност, памти се његова претходна вредност (секвенцијална кола). У једном симулационом циклусу може се изгенерисати више трансакција за исти сигнал. Конкурентна додела вредности сигналу еквивалентна је процесу за који важи: садржи исту такву секвенцијалну доделу унутар листе сигнала на које је процес осетљив налазе се сви сигнали који се користе при израчунавању нове вредности Од VHDL-2008 уведени су секвенцијални искази за селекциону и условну доделу вредности сигналу.

Пример entity mux is port( d0, d1, d2, d3 : in bit; sel0, sel1 : in bit; z : out bit ); end entity mux; architecture dataflow of mux is begin process (d0, d1, d2, d3, sel0, sel1) is begin zmux: z <= (d0 and not sel1 and not sel0) or (d1 and not sel1 and sel0) or (d2 and sel1 and not sel0) or (d3 and sel1 and sel0); end process; end architecture dataflow;

Механизми кашњења Два могућа механизма кашњења: delay_mechanism ⇐ transport | ⟦ reject time_expression ⟧ inertial Два могућа механизма кашњења: транспортни инертни (подразумевани) Користе се само за потребе симулације симулира се кашњење веза између логичких кола симулира се кашњење логичких кола При синтези кашњења се занемарују на овај начин није могуће мерити време за потребе имплементације неког алгоритма

Транспортно кашњење Транспортни механизам кашњења (transport) мора се експлицитно навести (инертни је подразумевани) све трансакције се генеришу са наведеним кашњењем опонаша кашњење које настаје дуж линије за пренос сигнала (идеална линија која пропушта све фреквенције) није погодно за опис логичких кола

Транспортно кашњење - пример Пример у оквиру којег се у току једног симулационог циклуса заказују две трансакције за исти сигнал: entity е1 is -- nothing end entity e1; architecture а1 of е1 is signal a : bit := '1'; begin process is a <= transport '0' after 1ns; a <= transport '1' after 2ns; wait; end process; end architecture а1; 0ns 1ns 2ns

Транспортно кашњење - пример Пример у оквиру којег остаје само једна трансакција каснија трансакција је за ранији тренутак од претходне и због тога се претходно генерисана трансакција брише. entity е1 is -- nothing end entity e1; architecture а1 of е1 is signal a : bit := '1'; begin process is a <= transport '1' after 2ns; a <= transport '0' after 1ns; wait; end process; end architecture а1; 0ns 1ns 2ns

Транспортно кашњење - пример transmission_line: process(a) is begin z <= transport a after 500 ps; end process transmission_line; a z @700 ps 1 @700 ps 1 @1000 ps @1000 ps

Транспортно кашњење - пример transmission_line: process(a) is begin if a = '1' then z <= transport a after 800 ps; else z <= transport a after 500 ps; end if; end process transmission_line; a z @900 ps Изврши се трансакција, али не постоји догађај! @1000 ps 1 @1000 ps 1

Инертно кашњење Инертни механизам кашњења (inertial) подразумевани ако се не наведе ниједан механизам кашњења побудни сигнал мора да постоји дуже од времена одбацивања гличеви се не пропагирају кроз дизајн брише и све трансакције заказане у претходном интервалу одбацивања, почев од прве која се разликује од нове вредности гледано са краја интервала упрошћено: одбацује све импулсе који нису дужи од времена одбацивања економичан за ресурсе симулатора

Инертно кашњење - пример inv: process(a) is begin z <= inertial not a after 3 ns; end process inv; Изврши се трансакција, али не постоји догађај! @9 ns 1 @4 ns @9 ns 1 @11 ns a z

Инертно кашњење - пример inv: process(a) is begin z <= reject 1 ns inertial not a after 3 ns; end process inv; a z reject 0 ps inertial a  transport a

Инертно кашњење - пример inv: process(a, b) is begin z <= reject 3 ns inertial a or b after 5 ns; end process inv; @6 ns 1 @6 ns 1 @8 ns 1 @10 ns @13 ns 1 @6 ns 1 @8 ns 1 @10 ns @13 ns 1 @14 ns

Пример entity primer is end entity primer; architecture ponasanje of primer is signal a : bit := '1'; signal b : bit := '0'; begin process is variable c : bit := '0'; begin if (a = '1') or (b = '0') then a <= inertial not c after 1 ns; else a <= inertial not c after 1.5 ns; end if; b <= inertial (b) nand (a or c) after 1 ns; c := a and b; wait on a, b; end process; end architecture ponasanje;