Slide 1
|
|
- Ирена Капсамунова
- преди 5 години
- Прегледи:
Препис
1 Въведение в VHDL Паралелни оператори
2 Паралелни оператори Паралелен оператор оператор, който се изпълнява едновременно с другите оператори от този тип. Process - Процес <= Сигнално присвояване Port map поставяне на компонент Извикване на процедура Generate
3 Оператор Process Process - паралелен оператор, който описва поведение. Процесът съдържа последователни оператори. Кога ще се изпълни даден процес зависи от сигналите, спрямо които той е чувствителен или от оператори wait.
4 Process Синтаксис [етикет:] process [ ( списък от сигнали) ] Декларации... begin Последователни оператори... end process; списък от сигнали сигнали спрямо които процесът е чувствителен.
5 Process Правила Един процес трябва да има или списък на сигнали, спрямо които е чувствителен или да съдържа оператор wait, но не и двете. Всеки процес се изпълнява веднъж по време на инициализацията, преди симулацията да е започнала.
6 Process Синтез Не всеки процес подлежи на синтез! За целите на синтеза се препоръчват следните стандартни форми на оператора process:
7 Вариант 1 комбинационна схема process (входове) всички входни сигнали са изброени begin... за всички входни комбинации се присвояват стойности на изходите... отсъства обратна връзка end process;
8 library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity decoder is port ( DIN: in STD_LOGIC_VECTOR(2 downto 0); DOUT: out STD_LOGIC_VECTOR(7 downto 0)); end decoder; architecture Behavioral of decoder is begin process(din) begin case DIN is when "000" => DOUT <= " "; when "001" => DOUT <= " "; when "010" => DOUT <= " "; when "011" => DOUT <= " "; when "100" => DOUT <= " "; when "101" => DOUT <= " "; when "110" => DOUT <= " "; when "111" => DOUT <= " "; when others => NULL; end case; end process; end Behavioral;
9
10
11 Вариант 2 тригери по ниво + логика process (входове) -- всички входни сигнали са изброени begin if Enable = '1' then... end if; end process;
12 Пример Непълно дефиниране на изхода Q1 Пълно дефиниране на изхода Q2 process (D, E) begin if E = '1' then Q1 <= D; end if; end process; process (D, E) begin if E = '1' then Q2 <= D; else Q2 <= '0'; end if; end process;
13 Пример
14 Вариант 3 тригери + логика process (Clock) -- само такт begin if rising_edge(clock) then --тест за фронт на такта... end if; end process;
15 library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity ff is Port ( A,B,C,D,CLK : in STD_LOGIC; Q : out STD_LOGIC); end ff; architecture Behavioral of ff is begin process (CLK) begin if rising_edge(clk) then Q <= (A and B) or not(c xor D); end if; end process; end Behavioral;
16
17
18
19 Вариант 4 тригери + логика process (Clock, Reset) -- само такт и асинхронни сигнали begin if Reset = '0' then -- тест за асинхронно нулиране асинхронни действия elsif rising_edge(clock) then -- тест за фронт на такта синхронни действия end if; end process;
20 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; Пример (брояч) entity cnt5 is Port ( CLOCK, LOAD, RESET : in STD_LOGIC; D : in STD_LOGIC_VECTOR (4 downto 0); Q : out STD_LOGIC_VECTOR (4 downto 0)); end cnt5; architecture Behavioral of cnt5 is signal TMP: std_logic_vector(4 downto 0); begin process (CLOCK,RESET) begin if RESET = '0' then TMP <= (others=>'0'); elsif rising_edge(clock) then if LOAD = '0' then TMP <= D; else TMP <= TMP + 1; end if; end if; end process; Q <= TMP; end Behavioral;
21
22
23
24 Паралелни оператори (продължение)
25 Условно Присвояване when [етикет:] цел <= Израз [after време] when условие else Израз [after време] when условие else... Израз [after време]; Еквивалентен на process с if в него.
26 Условно Присвояване Пример process (A, B) begin if A=B then E2 <= '1'; else E2 <= '0'; end if; end process; E1 <= '1' when A = B else '0';
27 Условно Присвояване Синтез Операторите за условно присвояване се синтезират като комбинационна логика. Изразите от дясната страна се мултиплексират към сигнала от лявата страна на оператора. Получената логика ще бъде приоритетно кодирана, тъй като условията се проверяват последователно.
28 Пример приоритетна логика library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity par_encoder is Port ( a,b,c,d : in STD_LOGIC; encoded : out STD_LOGIC_VECTOR(2 downto 0)); end par_encoder; architecture Behavioral of par_encoder is begin encoded <= "001" when a = '1' else "010" when b = '1' else "011" when c = '1' else "100" when d = '1' else "000"; end Behavioral;
29
30 Избор with.. select [етикет:] with израз select цел <= израз [after време] when избори, израз [after време] when избори,... ; Еквивалентен на process с case в него.
31 Избор - Правила Типа на управляващият Израз трябва да бъде изброим, физически, integer или едномерен масив. Всяка възможна стойност на Израз-а трябва да попада точно в един от Избор-ите.
32 Избор - Синтез Операторите за избор се синтезират като комбинационна логика. Изразите от дясната страна се мултиплексират към сигнала от лявата страна на оператора.
33 Пример -- CASE process(d1) begin case D1 is when "00" => Q1 <= "0001"; when "01" => Q1 <= "0010"; when "10" => Q1 <= "0100"; when "11" => Q1 <= "1000"; when others => Q1 <= "0000"; end case; end process; -- WITH SELECT with D2 select Q2 <= "0001" when "00", "0010" when "01", "0100" when "10", "1000" when "11", "0000" when others;
34 Пример CASE WITH SELECT
35 Структурни Оператори Използват се за структурни VHDL модели. Component Port Port map For.. generate
36 Оператор Component Компонентът дава възможност да се използва един йерархичен блок в друг такъв. Компонента се поставя в архитектура и се асоциира с проектан единица (entity + architecture) от по ниско йерархично ниво. Синтаксис: component Име на компонента [ Generic;] [ Port;] end component;
37 Component - Правила Името на компонента трябва да съответства на името на проектна единица, която ще бъде използвана на неговото място (освен ако не се укаже явна конфигурация). Парамерите (generics) и портовете на компонента и проектаната единица трябва да си съответстват по име, режим и тип.
38 Оператор Port Опеартора Port дефинира интерфейсните сигнали на проектната единица. Синтаксис: port (име на сигнал,... : [ режим] тип [:= начална стойност];...); режим = in out inout buffer
39 Оператор Port Map Свързва сигнали от архитектурата към портове на компонент използван в тази архитектура. Синтаксис етикет: Компонент port map ([ порт =>] сигнал,...) Съответствието между портовете и сигналите се задава посредством позиционна или поименна асоциация.
40 Пример за асоциация component COUNT port (CLK, RESET: in std_logic; UD: in std_logic; Q: out std_logic_vector(3 downto 0)); end component; позиционна асоциация G1: COUNT port map (C32, RST, DIR, Count); -- поименна асоциация (реда е без значение) G2: COUNT port map ( RESET => RST, CLK => C32, Q => Count, UD => DIR);
41 Пример за асоциация component Adder port (a, b: in std_logic; s, cout: out std_logic); end component; позиционна асоциация D1: Adder port map (n1(0), n2(0), sum(0), open); -- поименна асоциация D2: Adder port map ( s => sum(0), a => n1(0), b => n2(0), cout => open);
42 Пример за параметризиран структурен модел Примерът описава 21 битов суматор. Йерархията се състои от три нива: add21 горно ниво тук се задава разрядността на суматора (21); addern междинно ниво тук се намира параметричният модел на N-битов суматор; аdder долно ниво състои се от еднобитови суматори.
43 entity add21 is port (a, b : in std_logic_vector(21 downto 1); s : out std_logic_vector(21 downto 1)); end add21; architecture structural of add21 is component addern generic(n : integer); port (a, b : in std_logic_vector(n downto 1); cin : in std_logic; s : out std_logic_vector(n downto 1); cout : out std_logic); end component; signal cin: std_logic; begin U1: addern generic map (N=>21) port map (a=>a, b=>b, cin=>cin, s=>s, cout=>open); cin <= '0'; end structural;
44 entity addern is generic(n : integer); port (a, b : in std_logic_vector(n downto 1); cin : in std_logic; s : out std_logic_vector(n downto 1); cout : out std_logic); end addern; architecture structural of addern is component adder port (a, b, cin : in std_logic; s, cout : out std_logic); end component; signal c : std_logic_vector(n downto 0); begin c(0) <= cin; cout <= c(n); gen: for I in 1 to N generate add: adder port map( a=>a(i), b=>b(i), cin=>c(i-1), s=>s(i), cout=>c(i)); end generate; end structural;
45 entity adder is port (a,b,cin : in std_logic; s,cout : out std_logic); end adder; architecture rtl of adder is begin s <= (a xor b) xor cin; cout <= (a and b) or (cin and a) or (cin and b); end rtl;
46 Синтез add21
47 Синтез addern (N=21)
48 Синтез adder
49 Пример суматор на Sklansky
50 ... begin GEN1: for i in 0 to N-1 generate GEN2: if i = 0 generate U1: SQR_CIN port map (a => a(i), b => b(i), p => cp(i)(0), g => cg(i)(0), cin => cin); end generate; GEN3: if i > 0 generate U2: SQR port map (a => a(i), b => b(i), p => cp(i)(0), g => cg(i)(0)); end generate; end generate; GEN4: for i in 0 to N-1 generate GEN5: for j in 1 to JMAX-1 generate GEN6: if bit_is_1(i,j-1) generate GEN7: if j > log2(i) generate U3: G port map (pa => cp(i)(j-1), ga => cg(i)(j-1), gb => cg(i-i mod 2**(j-1)-1)(j-1), gout => cg(i)(j)); end generate; GEN8: if j <= log2(i) generate U4: GP port map (pa => cp(i)(j-1), ga => cg(i)(j-1), pb => cp(i-i mod 2**(j-1)-1)(j-1), gb => cg(i-i mod 2**(j-1)-1)(j-1), pout => cp(i)(j), gout => cg(i)(j)); end generate; end generate;... Виж целият модел: sklansky.vhd
51
52
Microsoft Word - Primer2_4.doc
2.4.) Пример с размяна на приоритетите в крайния автомат в проект drink2 Нека разгледаме същия пример с единствената разлика размяна на приоретите на условията 1 и 2. Тогава финалната диаграма на автомата,
ПодробноC++
Управляващи оператори в C++ Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 18 30 октомври 2018 г. Трифон Трифонов (УП 18/19) Управляващи оператори в C++ 18 30 октомври
ПодробноПредефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве
Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision :
ПодробноСтруктура на програма в C - Част 7 - масиви, оператор за индексиране, sizeof оператор
Структура на програма в C Част 7 - масиви, оператор за индексиране, sizeof оператор Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София
Подробноdoll Механична кукла Механичните кукли автоматично повтарят предварително зададена последователност от движения. В Япония има традиции в изработката н
doll Механична кукла Механичните кукли автоматично повтарят предварително зададена последователност от движения. В Япония има традиции в изработката на механични кукли, датиращи от древни времена. Движенията
ПодробноМасиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 9 ноември 2016 г. Триф
и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 9 ноември 2016 г. Трифон Трифонов (УП 16/17) и низове 9 ноември 2016 г. 1 / 5 Логическо
ПодробноПрограмиране на Паскал
Поради връзката на С++ с езика С в голяма част от литературата е прието записването С/С++. Това е найизползваният език за програмиране в света, поради което синтаксисът на някои от по-новите езици като
ПодробноСинтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/
Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/16) Синтаксис за дефиниране на функции 6 януари 2016
ПодробноАнализ и оптимизация на софтуерни приложения
Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев Съдържание Конвейерно изпълнение Проблеми при конвейерното изпълнение Структурни опасности Даннови опасности Контролни опасности
ПодробноАнализ и оптимизация на софтуерни приложения
Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев Съдържание Конвейерно изпълнение Проблеми при конвейерното изпълнение Структурни опасности Даннови опасности Контролни опасности
ПодробноОбработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Re
Обработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 27 февруари 2005 г. 1 #include < cstdio
ПодробноДефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София
Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 9 март 2005 г. template< class
ПодробноПроф
Утвърдил:.. / доц. д-р Е. Великова / Утвърден от Факултетен съвет с протокол... /... СОФИЙСКИ УНИВЕРСИТЕТ СВ. КЛИМЕНТ ОХРИДСКИ Факултет по Математика и Информатика Специалност: Компютърни науки М И К 0
ПодробноMicrosoft Word - EShT_lab6_powerAmplifier.doc
Лабораторно упражнение 6 1 Изследване на нискочестотни усилватели на мощност Основни съотношения Полезната мощност е P L = I o U o, където I o и U o са ефективните стойности на изходния ток и изходното
ПодробноАнализ и оптимизация на софтуерни приложения
Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев Съдържание 1. Какво е векторизация? 2. Примери 3. на цикли 4. Масиви от структури или структури от масиви 5. на при различни
ПодробноMicrosoft Word - KZ_TSG.doc
ПРИЛОЖЕНИЕ НА ТЕОРИЯТА НА СИГНАЛНИТЕ ГРАФИ ЗА АНАЛИЗ НА ЕЛЕКТРОННИ СХЕМИ С ОПЕРАЦИОННИ УСИЛВАТЕЛИ В теорията на електронните схеми се решават три основни задачи: ) анализ; ) синтез; ) оптимизация. Обект
ПодробноВ тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операц
В тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операции в езикът C и С++. Символ Предназначение Аритметични
ПодробноВиртуални функции
Виртуални функции Статично свързване Как компилаторът избира кой метод или коя функция да бъде извикана? Прави се сравнение между формални и фактически параметри и се избира най-точното съвпадение в случай,
Подробно-
Лениво оценяване и програмиране от по-висок ред Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 7 януари 2016 г. Трифон Трифонов (ФП-И 15/16) Лениво оценяване 7 януари 2016 г.
ПодробноСУ ДИМИТЪР МАРИНОВ ГРАД ЛОМ ул. Дунавска 67, тел: 0971/60011, Утвърдил: Директор на СУ Димитър Марин УЧЕБНА ПРОГРАМА ПО
СУ ДИМИТЪР МАРИНОВ ГРАД ЛОМ ул. Дунавска 67, тел: 0971/60011, e-mail: sou_4emi_lom@yahoo.com Утвърдил: Директор на СУ Димитър Марин УЧЕБНА ПРОГРАМА ПО ДИГИТАЛНА КРЕАТИВНОСТ ЗА VIII КЛАС КРАТКО ПРЕДСТАВЯНЕ
ПодробноLush Green
Конструктори Жизнен цикъл на обект За обекта се заделя памет и се свързва с неговото име Извиква се подходящ конструктор на обекта... (достъп до компоненти на обект, изпълняване на операции) Достига се
ПодробноMSDOS1
ПРИЛОЖЕНИЕ C ANSI ESCAPE последователности Забележка Информацията в това приложение зависи от инсталацията и може да не се прилага в машините на всички производители. ANSI ESCAPE последователността представлява
Подробно2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет
2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнението представя кратко въведение в теорията на лексическия
ПодробноЛабораторно упражнение 6 Тема: Оператори за цикли в езика C++. Реализиране на циклични алгоритми I. Цел на лабораторното упражнение Да се затвърдят зн
Лабораторно упражние 6 Тема: Оператори за цикли в езика C++. Реализира на циклични алгоритми I. Цел на лабораторното упражние Да се затвърдят знанията на студентите за организацията и синтаксиса на програми
ПодробноМасиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г ноември 2018 г. Трифон Трифонов (УП 18/19) Ма
Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 29 ноември 2018 г. Трифон Трифонов (УП 18/19) Масиви и низове 15 29 ноември 2018 г. 1 / 16 Масиви Логическо
ПодробноMicrosoft Word - Primer3_1.doc
3.1.) Създаване на нов проект demultiplexor и нов файл demultiplexor.vhd в текстовия редактор Galaxy Стартирайте текстовия редактор Galaxy, използвайки опциите : Start > Programs > WARP > Galaxy 3.1.1.
ПодробноНАУЧНИ ТРУДОВЕ НА РУСЕНСКИЯ УНИВЕРСИТЕТ , том 52, серия 3.2 Изследване на основния процес при кодирането на цифровия комуникационен канал Изравн
Изследване на основния процес при кодирането на цифровия комуникационен канал Изравняване на енергията на сигнала Боян Карапенев Study of the main process of coding the digital communication channel: Levelling
ПодробноМасиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 1
Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 18/19) Масиви и низове 15.11-6.12.2018 г. 1 / 17 Масиви
ПодробноМИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА
МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА У Ч Е Б Н А П Р О Г Р А М А ЗА ЗАДЪЛЖИТЕЛНА ПРОФЕСИОНАЛНА ПОДГОТОВКА ПО ПРОГРАМИРАНЕ И АЛГОРИТМИЧНИ ЕЗИЦИ ЗА ПРОФЕСИЯ: КОД 482010 ИКОНОМИСТ - ИНФОРМАТИК СПЕЦИАЛНОСТ:
Подробно3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението
3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението представя кратко въведение в синтактичния анализ.
ПодробноMVS Електронен регулатор на обороти за монтаж на DIN шина Регулаторите MVS автоматично управляват оборотите на еднофазни, управляеми по напрежение еле
Регулаторите автоматично управляват оборотите на еднофазни, управляеми по напрежение електродвигатели ( VАС / 5 6 Hz) със стандартен управляващ сигнал. Те са оборудвани с Modbus RTU комуникация и се отличават
ПодробноУправление на перална машина с размита логика Пералните машини в наши дни са обикновен уред в дома. Най-голяма изгода, която потребителя получава от п
Управление на перална машина с размита логика Пералните машини в наши дни са обикновен уред в дома. Най-голяма изгода, която потребителя получава от пералната машина е, че имат почистване, центрофугиране
ПодробноМаисви
МАСИВИ 1. Структурни типове данни Структура от данни - организирана информация, която може да бъде описана, създадена и обработена с помощта на програма. Скаларни типове данни: Целочислен int Реален double
ПодробноУказатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23
Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23 Указатели! Калин Георгиев Увод в програмирането 21
ПодробноИзследване на строежа и съответствието между формите на музика, слово и движения в упражнението Колко сме доволни Следователно, щом дойде Светлината,
Изследване на строежа и съответствието между формите на музика, слово и движения в упражнението Колко сме доволни Следователно, щом дойде Светлината, тя създава образи, форми. Във формите се виждат вече
ПодробноSlide 1
Списъци. Структура и синтаксис. Създаване и показване. Основни операции(добавяне, изваждане на елемент или цял подсписък; подреждане). Трансформации. проф. дмн С. Христова Списъци Списъците / list са основна
ПодробноIATI Day 1/Junior Task 1. Trap (Bulgaria) X INTERNATIONAL AUTUMN TOURNAMENT IN INFORMATICS SHUMEN 2018 Задача 1. Капан Образуваме редица от точки, кои
Task 1. Trap (Bulgaria) Задача 1. Капан Образуваме редица от точки, които са върхове с целочислени координати в квадратна решетка. Всеки две последователни точки от редицата определят единична хоризонтална
Подробно5
4. ОПЕРАТОР ЗА ИЗБОР НА ДАННИ ОТ ТАБЛИЦА За различните видове справки най-често се използва оператор SELECT. Обикновено резултатът от изпълнението му е таблица. Общ вид на оператора 1 : [ DISTINCT ]
ПодробноMicrosoft PowerPoint - Ppt ppt [Read-Only]
ТЕХНИЧЕСКИ УНИВЕРСИТЕТ ВАРНА КАТЕДРА АВТОМАТИЗАЦИЯ НА ПРОИЗВОДСТВОТО ЦИФРОВИ СИСТЕМИ ЗА УПРАВЛЕНИЕ - ЧАСТ 2 Янко Янев ВИДОВЕ ТЕХНОЛОГИИ ЗА ИЗГРАЖДАНЕ НА ЦИФРОВИ СИСТЕМИ ЗА УПРАВЛЕНИЕ микропроцесори микроконтролери
Подробно