+ All Categories
Home > Documents > Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze...

Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze...

Date post: 05-Dec-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
36
Číslicové obvody a jazyk VHDL Návrh počítačových systémů 2007-2008 Jan Kořenek [email protected]
Transcript
Page 1: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

Číslicové obvody a jazyk VHDLNávrh počítačových systémů

2007-2008

Jan Koř[email protected]

Page 2: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 2

Proč HW realizace algoritmu● Vyšší rychlost – paralelní nebo zřetězené zpracování,

přizpůsobení výpočetních jednotek algoritmu– Například jeden FPGA čip je až 800x rychlejší než Pentium Core

2 při analýze DNA sekvencí. Dalším příkladem je analýza paketů na síti, kdy FPGA umožňuje hledat v paketech řetězce až 100x rychleji než PC s Pentium Core 2.

● Nižší spotřeba – snížení pracovní frekvence, dynamická správa napájení a připojování hodin (clock gating)– Všechny vestavěné systémy napájené z baterie. Příkladem může

být mp3 přehrávač, mobilní telefon, inteligentní kamera napájená prostřednictvím z Ethernetu a spousta dalších.

● Menší rozměry – je možné integrovat celý výpočetní systém na jediný čip

Page 3: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 3

Návrh pro FPGA

0110010 0000101 1011100

library IEEE;use IEEE.std_logic_1164.all;

entity blk4 is port ( i1: in STD_LOGIC; i2: in STD_LOGIC; i3: in STD_LOGIC; i4: in STD_LOGIC; o1: out STD_LOGIC );end blk4;architecture struc of blk4 isbegin o1 <= (i1 or i2) and (i3 and i4);end struc;

Popis obvodu

Vytvořobvod

Page 4: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 4

Kroky návrhu pro FPGA● Vstup

– odladěný zdrojový kód (např. v jazyce VHDL, Verilog, SystemC, HandelC apod.) nebo schéma zapojení

– požadavek na celkové zpoždění, plochu

– vhodné FPGA (počet CLB, fmax, počet I/O, cena)

● Syntéza– transformace zdrojového kódu na zapojení na úrovni hradel (systém nakreslí schéma

zapojení!)

– mapování na cílovou technologii

– optimalizace/minimalizace

● Rozmístění a propojení elementů v FPGA● Vygenerování konfiguračního souboru● Nahrání konfiguračního souboru do SRAM v FPGA

Page 5: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 5

Syntéza obvodu

dd.vhd

obvod popsaný ve VHDL

Cílová technologie -

FPGA

16LUT – lze naprogramovat log. funkci 4 proměnných + připojit KO

Programovatelné propojení –

konfigurační bity ovládají spínače

KO

konfig. bit

Syntéza je proces transformace popisu na podrobnější popis.

Page 6: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 6

Syntéza obvodu● Behaviorální syntéza

– Jedná se o syntézu abstraktního chování, kdy je daný algoritmus popsán na nejvyšší úrovni. K popisu mohou byt použity všechny syntaktické konstrukce, které HDL jazyk poskytuje. Popis je soustředěn na:

● tok dat,● omezení vztahující se na vstup a výstup a ● uživatelská omezení.

– Výstupem behaviorální syntézy je popis na úrovni meziregistrových přenosu, který má stejné chování jako vstupní obvod. Nevýhodou je, že veškeré optimalizace jsou nechány na nástrojích realizujících syntézu. Jediná možnost, jak řídit výsledek syntézy, je správné nastavení omezení a nástrojů.

● RTL syntéza– Jedná se o syntézu na úrovni meziregistrových přenosů. Vstupní obvod je tedy popsán pomocí registrů,

čítačů, automatů atd. Popis se vyznačuje tím, že je od sebe oddělena DATOVÁ a ŘÍDICÍ cesta. ŘÍDICÍ cestou se většinou rozumí FSM automat. DATOVOU cestou pak různé logické sítě, sčítačky, registry, atd. Celá DATOVÁ cesta je pak řízena pomocí signálů z ŘÍDICÍ cesty. Syntezátor z tohoto popisu vygeneruje popis na úrovni hradel. Výsledek syntézy zároveň obsahuje optimalizovanou datovou cestu, paměti a řídicí struktury.

● Logická syntéza– Syntéza na úrovni hradel. Popis je složen pouze z komponent cílové technologie vzájemně propojené

pomocí signálů.

Page 7: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 7

HDL jazyky● Na rozdíl od schematu návrhář popisuje funkci obvodu

pomocí jazyka– Zařízení je možné modelovat a simulovat– Proces syntézy umožňuje transformovat HDL popis do prvků

cílové technologie

● V praxi se používají zejména jazyky VHDL a Verilog – Oba jazyky mohou být vstupem procesu syntézy– VHDL dominuje v Evropě, Verilog v USA

Page 8: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 8

Jazyk VHDL● Zkratka VHDL z akronymu:

VHDL = VHSIC Hardware Description Language

● VHSIC je zkratka pro Very High Speed Integrated Circuit● Původně bylo VHDL vyvinuto pro vojenské účely ke specifikaci

číslicových systémů, později se stalo IEEE standardem● Jazyk VHDL není svázán s žádnou cílovou technologií● Umožňuje tři základní úrovně popisu – behaviorální, strukturní a

data flow popis● Existuje spousta nástrojů umožňující syntézu nebo simulaci

obvodů popsaných v jazyku VHDL

Page 9: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 9

Číslicové zařízení ve VHDL● VHDL popisuje číslicová zařízení a jednotlivé části zařízení

pomocí komponent, které se popisují pomocí:– Entita definuje rozhraní komponenty– Architektura popisuje chování nebo strukturu komponenty

A(7:0)

B(7:0)

Entita

Definicerozhraní

Y(7:0)

Popisfunkce

Architektura

součetJedna entita

může mít více architektur

Page 10: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 10

Entita● Popisuje rozhraní mezi komponentou a okolím● Rozhraní komponenty se skládá z portů

(signálů rozhraní) a generických parametrů● Signály rozhraní mohou být podle směru

v módu IN, OUT nebo INOUT

entity NAND is

end entity register;

generic (DATA_WIDTH : integer :=8); parametry

port (A : in std_logic_vector(DATA_WIDTH-1 downto 0); B : in std_logic_vector(DATA_WIDTH-1 downto 0); Y : out std_logic_vector(DATA_WIDTH-1 downto 0);); signály rozhraní

Příklad:

A(7:0)

B(7:0)

Entita

Y(7:0)

Page 11: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 11

Architektura● Definuje chování nebo strukturu komponenty● Architektura je vždy svázána s entitou, která definuje rozhraní s

okolím● Každá komponenta může být popsána na úrovni struktury, chování

nebo dataflow● Různé způsoby popisu je možné kombinovat

Popisarchitekturykomponenty

CHOVÁNÍCo komponenta dělá?

Behaviorální popisSTRUKTURA

Z čeho je komponenta složena?

Strukturní popis DATOVÉ ZÁVISLOTIJaký je datový tok signálů?

Dataflow popis

Page 12: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 12

Architektura

Architecture name of entity_name isDeklarační část

beginSekce paralelních příkazů

end architecture name;Deklarační část

architekturyje vyhrazena pro pro deklaraci

signálů, konstant nebo typů použitých uvnitř architektury.

Jméno entitypopisující rozhraní architektury.

Architekturu není možné použít s jinou entitou, než je uvedená zde.

Syntax:

Sekce paralelních příkazů● Součástí sekce paralelních příkazů mohou být instance komponent nebo

procesy vzájemně propojené signály– Behaviorální popis – architektura je složena z jednoho nebo více procesů– Strukturní popis – architektura obsahuje pouze instance komponent– V praxi se často používají oba přístupy i v rámci jedné architektury

Page 13: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 13

Behaviorální popis (jeden proces)● Architektura složena z jednoho nebo více procesů● Proces je popsán na úrovni algoritmu (příkazy, podmínky, cykly, atd.)● Cílem je pouze popsat, jak se mění výstupy v závislosti na změnách

vstupních signálů, nemusí být zřejmá hardwarová realizace

Proces one spočítá počet jedničkových bitů ve

vstupních signálu BUS_IN a výslednou hodnotu přiřadí

do signálu N_ONE

Příklad:

BUS_IN (15:0) N_ONE(3:0)one

N_ONEone: process(BUS_IN) variable count : std_logic_vector(3 downto 0);begin count := “0000“; for i in 0 to 15 loop if BUS_IN(i) = '1' then count := count + '1'; end if; end loop; N_ONE <= count;end process one;

Page 14: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 14

Behaviorální popis (více procesů)● Architektura se může skládat z více procesů:

– Procesy mohou číst/nastavovat vstupními/výstupními signály– Komunikace mezi procesy je realizována prostřednictvím signálů

Příklad: architecture behv of NAND is

signal ab_and : stdl_logic_vector(7 downto 0);

begin

and_proc : process (A, B)

begin

ab_and <= A AND B;

end process and_proc;

not_proc : process (ab_and)

begin

Y <= not ab_and;

end process not_proc;

end behv;

A(7:0)

B(7:0)Y(7:0)

AND NOT

Procesy komunikují prostřednictvím signálu

ab_and

NAND

Page 15: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 15

Proces ve VHDL

● Proces může popisovat chování celé komponenty nebo pouze její části– Architektury může obsahovat více procesů

komunikujících vzájemně pomocí signálů

name: process (sensitivity list)declarations

beginsequential statements

end process name; Deklarační část procesuje vyhrazena pro deklaraci

proměnných, konstant nebo typů použitých uvnitř procesu

Seznam citlivých proměnných

Kdykoliv se změní signál ze sensitivity listu, je spuštěn proces

a vypočítají se nové hodnoty signálů

Syntax:

Sekvenční příkazyProgram, který popisuje chování dané komponenty nebo její části. Na základě vstupních signálů a vnitřních proměnných program

vypočítá hodnoty signálů

Page 16: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 16

Řídicí struktury v procesu● Podmíněné vykonání příkazů (if ... then ... )

● Podmíněné vykonání příkazů s alternativou (if ... then ... else ... nebo if ... then ... elsif ... )

● Výběr více příkazů (case ... )

IF <condition> THEN <statements> [ELSIF <statements>] [ELSIF <statements>] END IF;

IF <condition> THEN <statements> END IF;

CASE <condition> IS WHEN <value> => <statements> [WHEN <value> => <statements>]END CASE;

Page 17: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 17

Řídicí struktury v procesu – cykly● Cykly umožňující opakované vykonání sekvence příkazů

– while ... do ...

– for ... loop ...

WHILE <condition> LOOP <statements> END LOOP;

FOR <range> LOOP <statements> END LOOP;

● Příkazy pro přerušení běhu smyčky– NEXT – skok do další iterace

– EXIT – ukončení celé smyčky

next when <condition>;

exit when <condition>;

Page 18: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 18

Senzitivity list procesu● Senzitivity list procesu – proces je „spuštěn“ pokud dojde ke

změně signálu uvedeného na senzitivity listu procesu– Po provedení sekvence příkazů je proces pozastaven a čeká se opět

na změnu signálu ze senzitivity listu

proc_1: process begin

DATA <= “1010“;wait for 10 ns;DATA <= “0101“;wait for 10 ns;

end process proc_1;

● Proces obsahující senzitivity list nemůže obsahovat příkaz WAIT● Příkaz WAIT se používá zejména při tvorbě testbenche

proc_2: process (DATA)begin

statement1;statement2;statement3;

end process proc_2;

Page 19: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 19

Dataflow popis ● Modeluje datové závislosti● Zkrácený zápis chování pomocí paralelních příkazů uvnitř

architektury:– Přiřazovací příkaz

– Podmíněný přiřazovací příkaz

– Výběrový přiřazovací příkaz

Příklad: A(7:0)

B(7:0)Y(7:0)

AND

NANDarchitecture dataflow of NAND isbegin Y <= not (A AND B);end behv;

Y <= B when (A='1') else '0';

Y <= NOT (A AND B);

with S select Y <= A when “0”, B when “1”,

Page 20: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 20

Strukturní popis● Popisuje z čeho se daný systém (zařízení nebo komponenta) skládá – jakou

má obvod strukturu● Strukturní popis může mít více úrovní hierarchie

– Každá dílčí komponenta může být popsána opět na úrovni struktury nebo na úrovni chování

– Komponenty na nejnižší úrovni jsou vždy popsány behaviorálně

Příklad: A(7:0)

B(7:0)Y(7:0)

AND NOT

Komponenty komunikují prostřednictvím signálu ab_and

architecture struct of NAND is signal ab_and : stdl_logic_vector(7 downto 0);begin and_i: entity work.AND

port map ( In0=>A, In1=>B, Output=>ab_and); not_i: entity work.NOT port map ( In0=>ab_and, Output=>Y);end behv;

NAND

Použité komponenty

AND NOTIn0In1

Output In0 OutputNOTAND

Page 21: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 21

Signály ve VHDL● Signály slouží pro komunikaci mezi

komponenty nebo procesy● Mohou být implementovány pomocí

vodiče nebo sběrnice (více vodičů)

A B

C

● Signálu je možné přiřadit libovolný datový typ, který definuje charakter přenášených hodnot– Pro reprezentace vodiče se používá typ std_logic– Pro sběrnice se používá typ std_logic_vector(). Šířka sběrnice je

definována šířkou pole.

● Syntax deklarace:

komponenta

signal <jmeno> : <typ> [:= imp_hodnota];

Page 22: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 22

entity sig_var isport(d1, d2, d3: in std_logic; res1, res2: out std_logic);end sig_var;architecture behv of sig_var is signal sig_s1: std_logic;begin proc1: process(d1, d2, d3) variable var_s1: std_logic; begin var_s1 := d1 and d2; res1 <= var_s1 xor d3; end process; proc2: process(d1,d2,d3) begin sig_s1 <= d1 and d2; res2 <= sig_s1 xor d3; end process;end behv;

Signál vs. Proměnné v procesu

Sledujte rozdíl mezi res1 a res2.

d1d2d3

res1res2

Page 23: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 23

Komentáře, znaky, řetězce, ...● Komentář – uvozen dvojicí znaků --

● Znak nebo bit – vkládá se do apostrofů '1'

● Řetězec nebo bitový vektor – vkládá se do uvozovek

● Identifikátory – podobná pravidla jako u jiných jazyků

-- Toto je komentář

sig_bit <= '1';

sig_bit_vector <= “0001“;

Page 24: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 24

Příklady rozšiřujících datových typů● Výčtový typ

● Pole

TYPE muj_stav IS (reset, idle, rw, io);signal stav: muj_stav;stav <= reset; -- nelze stav <=“00”;

TYPE data_bus IS ARRAY (0 TO 1) OF BIT;variable x: data_bus;variable y: bit;y := x(12);

Page 25: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 25

Práce na úrovni bitů

signal a, b: bit_vector (3 downto 0);signal c : bit_vector (7 downto 0);signal clk : bit;

Uvažujme deklarace signálů:

Konkatenace signálů:c <= a & b;

Posun doleva a doprava:b <= b(2 downto 0) & '0'; -- posun dolevab <= '0' & b(3 downto 1); -- posun doprava

Agregace:a <= (others => '0'); -- vše do nulya <= (‘0’, ‘1’, others=>’0’); -- MSB = “01“

1 101

1 0 1 1

&01 1 1

1 0 1 1c

a b

1 1 1 1

1 1 1 0

1 1 1 1

1 1 10doleva doprava

00000010

Page 26: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 26

Testbench● Testování VHDL komponent v prostředí VHDL

testbench

d1d2

d3

res1

res2UUT UUT

Generovánítestovacích

vektorů

● Testbench obvykle obsahuje:– Instanci vyvíjené komponenty označenou jako UUT (Unit Under Test)– Generátor testovacích vektorů– Monitorování a ověřování reakcí UUT

Page 27: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 27

Příklad Testbenchentity testbench isend entity testbench;architecture tb_arch of testbench is signal a, b, y : std_logic;begin UUT : entity work.and_gate port map( A => a, B => b, Y => y );

test : process begin a <= 0; b <= 0; wait for 10 ns; a <= 0; b <= 1; wait for 10 ns; a <= 1; b <= 0; wait for 10 ns; a <= 1; b <= 1; wait; end process test;end architecture tb_arch;

Testbench Entity

Instance UUT(napojení testovacích vektorů)

Přikládání testovacích vektorů

Testovací vektory připojené k UUT

Page 28: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 28

Příklady ve VHDL● Klopný obvod typu D

– Asynchronní– Synchronní

● Multiplexor● Sčítačka● FSM – Handshake

Page 29: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 29

Klopný obvod typu D

DCLK DOUT

RST

DINlibrary IEEE;use IEEE.std_logic_1164.all;entity dffx isport ( CLK : in std_logic; RST : in std_logic; DIN : in std_logic; DOUT : out std_logic );end dffx;architecture behav of dffx isbegin process (CLK,RST) begin if (RST = '1') then DOUT <= '0'; elsif (CLK'event and CLK = '1') then DOUT <= DIN; end if; end process;end behav;

Asynchronní reset(není synchronizován s hodinovým signálem)

CLK (clock) – hodinový vstupRST(reset) – asynchronní resetDIN (data in) – data přivedená na

vstup retistruDOUT (data output) – hodnota

uložená v registru

Page 30: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 30

Asynchronní reset u KO typu D process (CLK,RST,DIN) begin if (RST = '1') then DOUT <= '0'; elsif (CLK'event and CLK = '1') then DOUT <= DIN; end if; end process;

CLK

RST

DOUT

DCLK

RST

DIN='1'

DOUT

Page 31: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 31

Synchronní reset u KO typu D process (CLK,RST,DIN) begin if (CLK'event and CLK = '1') then if (RST = '1') then DOUT <= '0'; else DOUT <= DIN; end if; end if; end process;

CLK

RESET

DOUT

DCLK

RST

DIN='1'

DOUT

Page 32: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 32

Multiplexor

MUXO

S

library ieee; use ieee.std_logic_1164.all;entity Mux isport( I3: in std_logic_vector(2 downto 0); I2: in std_logic_vector(2 downto 0); I1: in std_logic_vector(2 downto 0); I0: in std_logic_vector(2 downto 0); S : in std_logic_vector(1 downto 0); O : out std_logic_vector(2 downto 0));end Mux;  architecture behv1 of Mux isbegin process(I3,I2,I1,I0,S) begin case S is when "00" => O <= I0; when "01" => O <= I1; when "10" => O <= I2; when "11" => O <= I3; when others => O <= "ZZZ"; end case; end process;end behv1;

IN0, IN1, IN2, IN3 – přepínané vstupyS – řídící hradloY – výstup multiplexoru

IN0IN1IN2IN3

Page 33: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 33

Sčítačka

A

B

Sum

Cout

entity ADDER is port( A, B : in std_logic;

Sum, Cout: out std_logic); end entity ADDER;

Pravdivostní tabulka:

ADDER

Cout=A⋅B

SoučetPřetečenído vyššího řádu

A

B

Cout S

Page 34: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 34

Sčítačkaa

b

Sum

Cout

Summation : process (A, B)begin Sum <= A XOR B;end process Summation;

Carry : process (A, B)begin Cout <= (A AND B);end process Carry;

ARCHITECTURE behav of ADDER ISBEGIN Summation : process (A, B) begin Sum <= A XOR B; end process Summation; Carry : process (A, B) begin Cout <= (A AND B); end process Carry;END behav;

● Popis s využitím procesů ● Dataflow popisARCHITECTURE dataflow of ADDER ISBEGIN Sum <= A XOR B; Cout <= A AND B;END dataflow;

Page 35: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 35

FSM – Handshake

RQRQ

FSMACK

DATAdrdy

RST

CLK

DATA

ACK

DATA

idle0,0

dnext

● Předání dat pomocí handshake – Zařízení požádá o data pomocí

signálu RQ– Pokud jsou data uloženy ve frontě

(signál drdy), jsou dány na datovou sběrnici (signály DATA) a potvrzeny signálem ACK

– Signálem next se odstraní vyslaná data z fronty

wait0,0

RQ='1' data1,0

drdy='1'

drdy='0'

next0,1

RQ='0'

RQ

='1'

RQ='0'

stavACK,dnext

značení

Page 36: Číslicové obvody a jazyk VHDLpub.eyim.net/ziraficka/inp/cv01-vhdl_intro.pdfPopis je složen pouze z komponent cílové technologie vzájemně propojené pomocí signálů. INP –

INP – Číslicové obvody a jazyk VHDL FIT VUT Brno 36

Konec přednášky

Děkuji za pozornost


Recommended