Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Podobné dokumenty
Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Souhrn Apendixu A doporučení VHDL

Vývoj VHDL. Verilog HDL

Příklady popisu základních obvodů ve VHDL

Úvod do jazyka VHDL. Jan Kořenek Návrh číslicových systémů

Koncept pokročilého návrhu ve VHDL. INP - cvičení 2

Násobičky, Boothovo překódování. Demonstrační cvičení 7

Sčítačky Válcový posouvač. Demonstrační cvičení 6

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

14. Složitější konstrukce

Číslicové obvody a jazyk VHDL

Návrh. číslicových obvodů

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y. Rovnicí y = x 1. x 0. Přiřazení signálů: ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y Rovnicí y = x 1. Přiřazení signálů:

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

12. VHDL pro verifikaci - Testbench I

Jazyk VHDL konstanty, signály a proměnné. Jazyk VHDL paralelní a sekvenční doména. Kurz A0B38FPGA Aplikace hradlových polí

Jazyk VHDL zápis čísel, znaků a řetězců. Jazyk VHDL základní datové typy a operátory. Kurz A0B38FPGA Aplikace hradlových polí

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

1 Stručný popis jazyku VHDL

1. Seznamte se s výukovou platformou FITkit (

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

PROGRAMOVATELNÁ LOGICKÁ POLE A JAZYKY HDL

Chapter Základní principy simulace :).

LOGICKÉ OBVODY X36LOB

Návrh ovládání zdroje ATX

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Organizace předmětu, podmínky pro získání klasifikovaného zápočtu

Procesy a vlákna (Processes and Threads)

Programovací jazyk Pascal

Struktura a architektura počítačů (BI-SAP) 4

2. Entity, Architecture, Process

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Profilová část maturitní zkoušky 2017/2018

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Základní znaky. - Ve srovnání se Spice jsou velmi složité a vyžadují dlouhou dobu na plné osvojení. - Velmi nákladné simulační programy.

Pokročilé využití jazyka VHDL. Pavel Lafata

Sdílení dat mezi podprogramy

PROGRAMOVATELNÉ LOGICKÉ OBVODY

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Kódy pro odstranění redundance, pro zabezpečení proti chybám. Demonstrační cvičení 5 INP

Digitální technika. Jazyk VHDL, základy návrhu. Ing. Jakub Št astný, Ph.D. 1

7. Popis konečného automatu

Struktura a architektura počítačů (BI-SAP) 10

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Maturitní otázky z předmětu PROGRAMOVÁNÍ

PRINCIPY OPERAČNÍCH SYSTÉMŮ

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Příklad č. 1 Přepis informace ze vstupů (SW0 až SW3) na ledky (LEDG0 až LEDG3)

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

dovolují dělení velkých úloh na menší = dekompozice

7. Pracovní postupy. Fakulta informačních technologií MI-NFA, zimní semestr 2011/2012 Jan Schmidt

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

TÉMATICKÝ OKRUH Softwarové inženýrství

NPRG030 Programování I, 2015/16 1 / :25:32

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Základní logická hradla, Booleova algebra, De Morganovy zákony Student

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Programování II. Modularita 2017/18

Implementace čítačů v číslicových systémech 2 Jakub Šťastný ASICentrum, s.r.o. FPGA Laboratoř, Katedra teorie obvodů FEL ČVUT Praha

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Objektové programování

Chyby software. J. Sochor, J. Ráček 1

Jazyk PL/SQL Úvod, blok

3. Aritmetika nad F p a F 2

SYSTÉMY NAČIPU MI-SOC

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Pohled do nitra mikroprocesoru Josef Horálek

Profilová část maturitní zkoušky 2013/2014

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Sada 1 - Základy programování

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

3. Sekvenční logické obvody

PB161 Programování v jazyce C++ Přednáška 7

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Téma 5. Ovladače přístrojů Instrument Drivers (ID)

Vývoj informačních systémů. Obecně o IS

Struktura programu v době běhu

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

PB161 Programování v jazyce C++ Přednáška 7

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

SEKVENČNÍ LOGICKÉ OBVODY

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Struktura a architektura počítačů (BI-SAP) 3

4. Elektronické logické členy. Elektronické obvody pro logické členy

Transkript:

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 Jiří Douša, katedra číslicového návrhu (K18103), České vysoké učení technické v Praze, fakulta informačních technologií Přednáška 2: VHDL- entity a architektury Stručný obsah: charakteristika programů, elementy rozhraní, objekty ve VHDL, deklarace entity, deklarace architektury, porty, použití procesů, zpracování zdrojových programů.

Doporučená literatura: Roger Lipsett, Carl Shaefer, Carry Ussery: VHDL: Hardware Description and Design, Kluwer Academic Publishers 1989 Douglas L. Perry: VHDL, Mc Grow- Hill 1991 Douglas E. Ott, Thomas J. Widerotter: VHDL Synthesis, Kluwer Academic Publishers 1994 Stanley Mazor, Patricia Langstraat: A Guide to VHDL Kluwer Academic Publishers, Boston 1995 Stefan Sjoholm, Lennart Lindh: VHDL for Designers Prentice Hall 1997 Allen M. Dewey: Analysis and Design of Digital Systems with VHDL, PWS Publishing Company, Boston 1997 Ben Cohen: VHDL Coding Styles and Methodologies, 2nd Edition, Kluwer Academic Publishers 1999 Jiří Douša: Jazyk VHDL, skriptum ČVUT 2003 21.10.2011 MI-SIM Jiří Douša 2

Úvod do VHDL Historie VHDL: 1980 - MO USA: projekt VHSIC (very high speed integrated circuits) cíl: zvýšit výkon a hustotu IO 1983 - podnět k návrhu pro nový jazyk pracovní tým: Intermetrics, IBM, Texas Instruments Přednosti VHDL: pracovní prostředek návrháře VHDL - vstupní jazyk pro simulaci i pro automatickou syntézu IO (zde dosud neexistuje standard jako pro simulaci) VHDL popis chování technologická knihovna syntéza požadovaná omezení schéma mapování na technologii 21.10.2011 MI-SIM Jiří Douša 3

Úvod do VHDL standardizován od r. 1987 (VHDL-87, revize r. 93: VHDL-93) snadné přechody mezi simulátory různých výrobců podporuje budování hierarchických struktur lze zakoupit VHDL modely existujících obvodů - snadný vývoj větších celků nabízí širokou škálu pro volbu úrovně abstrakce metoda top-down, použití průběžné simulace Gajski - Khunův diagram: representace struktury struktury vel. celků RTL úroveň úroveň hradel representace chování algoritmický popis data - flow popis technologicky závislá data: čas. zpoždění, reszoluční funkce, vícehodnotová logika, atd representace fyzikálních vlastností nezávislé ověřování návrhů při při týmové spolupráci technologická nezávislost 21.10.2011 MI-SIM Jiří Douša 4

Charakteristika programu ve VHDL Struktura programu ve VHDL: entita + architektura porty architecture funkce: definuje hodnoty výstupů jako reakce na vstupy entity - 2 funkce: interface komponenty + případná kontrola správnosti vstupů Poznámka: porty nejsou povinné; umožňují hierarchicky strukturovat dílčí modely a zajišťovat jejich vzájemnou komunikaci, Prostředí architektury: paralelní : data flow popis - chování komponenty formou paralelních příkazů (neprocedurální popis) strukturní popis - hierarchie dílčích komponent výsledný efekt některých z paralelních příkazů (příkaz procesu, příkaz procedury) či částí výrazů (zápis funkce) lze definovat pomocí sekvenčního algoritmu sekvenční: pro algoritmický (procedurální popis) chování komponenty nebo její části pomocí procesu, procedury či funkce 21.10.2011 MI-SIM Jiří Douša 5

Objekty ve VHDL nejde o objektově orientovaný jazyk ve smyslu objektového programování účel objektů: representovat atributy simulovaného systému ( system image ) 3 třídy objektů ve VHDL: signal constant variable výskyt deklarace: pouze paralelní prostředí hodnoty lze měnit v paralelním i seriovém prostředí (pomocí dvojznaku pro přiřazení <= ) použitelnost v rozhraní: pro módy: in, out, inout, buffer výskyt deklarace: sekvenční i paralelní prostředí nemění hodnoty v průběhu simulace ( jednorázové přiřazení hodnoty v deklaraci pomocí dvojznaku := ) použitelnost v rozhraní: pro mód in výskyt deklarace: pouze sekvenční prostředí (výjimka: shared variables v VHDL 93) hodnoty lze modifikovat pouze v sekvenčním prostředí (pro přiřazení := ) použitelnost v rozhraní procedur: pro módy: in, out, inout 21.10.2011 MI-SIM Jiří Douša 6

Elementy rozhraní ve VHDL každý element rozhraní (parametry, porty, generics ) nutno specifikovat z hlediska třídy, módu (směr toku informace) a datového typu (integer, bit, viz později) Výskyt rozhraní Název elementu Přípustné třídy objektů Dovolený mód objektu rozhraní funkce parametr [ constant ] signal procedura parametr signal [ constant ] [ variable ] [in] [in] [in], out, inout [in] [in], out, inout entita, blok, lokální komponenta port generic [signal] [constant] [in], out, inout buffer [in] závorky [ ] označují implicitní hodnotu (může chybět) případ procedury: je-li explicitně definován mód in, resp. out nebo inout, je implicitní hodnota constant, resp. variable 21.10.2011 MI-SIM Jiří Douša 7

Odlišnosti signálů a proměnných Použití: nosiče hodnot simulačního oboru, representace výstupů kombinačních i sekvenčních obvodů, proměnná: pouze nosič okamžité hodnoty, signál: nosič více hodnot: minulá, současná, budoucí + příslušné hodnoty času, větší spotřeba paměti (př.: representace paměti 64 k 32 bit. slov (proměnná 2 MB, signál 207 MB) Deklarace proměnných: sdílené proměnné (pouze VHDL 93): deklarativní části architektury, bloku a knihoven, proměnné: deklarativní části procesu, procedury a funkce, formální parametry procedur. Deklarace signálů: porty entity, bloku a komponent, formální parametry procedur a funkcí, deklarativní části entity, architektury, package a bloku, Poznámka: signály nelze použít jako nosiče datových typů access nebo file 21.10.2011 MI-SIM Jiří Douša 8

Porty ve VHDL porty - kromě své funkce v rozhraní entity mohou být použity jako lokální signály (v entitě a všech příslušných architekturách) pokud signál nebo port není vázán na resoluční funkci pak může být v paralelním prostředí architektury buzen pouze jedním vodičem signál spojený s resoluční funkcí může být buzen libovolným počtem budičů resoluční funkce (prostředek pro řešení konfliktů mezi společnými budiči jednoho signálu ) vytváří tzv. efektivní hodnotu ( jako výslednici hodnot dílčích budičů) generic in out inout a b c pouze čtení nedovolené operace: pouze čtení pouze zápis zápis i čtení buffer d zápis + zpětné čtení 21.10.2011 MI-SIM Jiří Douša 9

Porty typu inout a buffer p port typu typ inout efektivní hodnota = výslednice budících hodnot x <=p; p <=..; p x.lokální signál RF budící hodnoty p y <=p; p <=...; y..lokální signál p.port typu buffer: nesmí mít více než jeden budič (bez ohledu na existenci RF), efektivní hodnota je vždy rovna budící hodnotě x<=p ; p p <=; aplikace portů typu buffer: omezení konektivity obvodů se standardním výstupem potřeba čtení portů: př.: if vstup = 1 then o <= o + 1; 21.10.2011 MI-SIM Jiří Douša 10

Deklarace entity entity <IdentE> is [ generic.;] -- parametry entity [ port..; ] -- vstupy a výstupy [ -- přípustné deklarace: datové typy a podtypy, konstanty, paralelní podprogramy, signály, soubory, alias ]. [ begin -- přípustné paralelní příkazy: příkaz assert, příkaz pasivního procesu, příkaz pasivní procedury ]. end [ <IdentE> ]; Poznámky: --..označuje komentář, <IdentE>.identifikátor entity deklarace & příkazy dědí každá sdružená architektura jde o samostatně překládanou jednotku deklarační i operační část může být prázdná příklad.: entity E is end E; -- jde o uzavřený systém jehož buzení je generováno uvnitř architektury (viz později) 21.10.2011 MI-SIM Jiří Douša 11

Deklarace architektury architecture <IdentA> of < IdentE> is [...-- přípustné deklarace: datové typy a podtypy konstanty, paralelní podprogramy, signály, komponenty, konfigurace komponent, soubory, alias ]. -- veškeré deklarace jsou v dané architektuře lokální begin -- operační část architektury - paralelní prostředí -- přípustné příkazy architektury: signálový paralelní příkaz, příkaz procesu, příkaz assert, příkaz paralelní procedury, příkaz generate, příkaz bloku, příkaz instalace komponenty. end [ <IdentA>]; 21.10.2011 MI-SIM Jiří Douša 12

Ukázka popisu entity a architektury Příklad: úplná sčítačka dvoubitových čísel a b cin library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; -- zpřístupnění dat. typů entity Scit is port (signal cin: in std_logic; signal a,b: in std_logic_vector (1 downto 0); signal s: out std_logic_vector (2 downto 0)); end Scit; -- verse 1: (architektura Arch 1) architecture Arch1 of Scit is begin -- zde jde o model chování bez nutnosti použít logické funkce s <= 0 & a + 0 & b + 0 & 0 & cin; -- operátor + je definován pro datový typ std_logic end Arch1; S 21.10.2011 MI-SIM Jiří Douša 13

Ukázka popisu architektury Příklad: úplná sčítačka dvoubitových čísel (verse 2) strukturní popis na úrovni logických členů a(1) b(1) a(0) b(0) c1 cin s(2) s(1) s(0) -- popis entity: stejné rozhraní (viz předešlý slajd) architecture Arch2 of Scit is signal c1: std_logic; -- lokální vodič v architektuře begin -- následuje výpočet logických výrazů v paralelním prostředí -- lze považovat za strukturní model logického obvodu s (2) <= (a(1) and b(1)) or ((a(1) xor b(1)) and c1); s (0) <= (a(0) xor b(0)) xor cin ; s (1) <= (a(1) xor b(1)) xor c1; c1 <= (a(0) and b(0)) or ((a(0) xor b(0)) and cin) ; end Arch2; 21.10.2011 MI-SIM Jiří Douša 14

Vztah paralelního a sekvenčního prostředí signály: přenos informací v paralelním prostředí pořadí výpočtu: sekvenční prostředí: dáno pořadím příkazů paralelní prostředí: určeno aktivitou signálů pravé strany entity E is port (signal a: in bit; signal b: out bit); end E; architecture A of E is signal x,y,z: bit; begin ; --paralelní prostředí P1: process (a,x,y).z < = ;b <=...;end process; ; --paralelní prostředí P2: process (z)...x<=.; y <=...;..end process;.; --paralelní prostředí end; sekvenční prostředí 21.10.2011 MI-SIM Jiří Douša 15

Ukázka použití procesů Příklad: paměť jako stavební blok library ieee; -- zpřístupnění knihoven use ieee.std_logic_1164.all; use ieee.std_logic_signed.all; entity memory is --interface paměti 4x 8 port (data: inout std_logic_vector (7 downto 0); addr: in bit_vector (0 to 3); rd, wr: in bit ); end memory; architecture amemory of memory is -- popis funkce paměti subtype byte is bit_vector (7 downto 0); type mem_16x8 is array (0 to 15) of byte; signal RAM : mem_16x8; begin CTENI: process (rd) -- pro aktivaci procesu signálem rd begin if rd = '1' then data <= to_stdlogicvector ( RAM (conv_integer ( to_stdlogicvector (addr ))) ); end if; end process; 21.10.2011 MI-SIM Jiří Douša 16

Ukázka použití procesů -- následuje proces pro zápis ZAPIS: process (wr) -- pro aktivaci procesu signálem wr begin if wr ='1 then RAM (conv_integer (to_stdlogicvector (addr))) <= to_bitvector (data); end if; end process; --následuje čistě kontrolní proces KONTROLA: process ( rd, wr ) -- pro aktivaci procesu begin assert not (rd = '1' and wr = '1') report " současně aktivní signály rd a wr" severity error; end process; end amemory; Poznámka: paralelní prostředí architektury amemory obsahuje celkem tři paralelní příkazy procesů; funkce paměti by mohla být rovněž popsána pomocí jediného procesu či s využitím příkazu procedury či více procedur nebo dokonce bez použití sekvenčního prostředí 21.10.2011 MI-SIM Jiří Douša 17

Zpracování zdrojových programů: 1) Analýza programové jednotky: samostatný překlad (použití knihoven) uložení produktu do zvolené knihovny 2) Zpracování modelu (elaboration) hierarchická expanze modelu a propojení komponent, zpracování parametrů entit (generics), alokace paměti objektům a inicializace objektů, 3) Inicializace modelu: inicializace signálů, provedení všech procesů ( do jejich suspendace), inicializace simulačního času. Klasifikace výrazů: 1) Lokálně statické: vyhodnocovány v průběhu analýzy (př.: konstanty v architektuře), 2) Globálně statické: vyhodnocovány v průběhu zpracování modelu (př.: generics v entitě), 3) Dynamické: vyhodnocovány v průběhu inicializace modelu nebo v průběhu simulace 21.10.2011 MI-SIM Jiří Douša 18