VHDL VHDL – akronim: VHSIC (Very High Speed Integrated Circuit) Hardware Description Language Inicjatywa Departamentu Obrony z 1980 Cel: osiągnąć znaczny postęp w technologii VLSI, także potrzeba standardowego języka opisowego 17 milionów USD na bezpośredni rozwój VHDL, 16 milionów USD na rozwój narzędzi projektowych
VHDL W 1983 kontrakt na rozwój VHDL przyznany zespołowi Intermetrics, IBM i Texas Instruments W 1987 VHDL został standardem IEEE 1076-1987, w 1988 – standardem ANSI W 1993 – druga rewizja standardu VHDL VHDL jest też standardem europejskim IEC 61691
VHDL - zalety Pozwala stosować różne metodologie projektowe (od ogółu do szczegółu, od szczegółu do ogółu) Niezależny od technologii implementacyjnej Możliwy opis o różnym stopniu abstrakcji (od black box do poziomu bramek) Standard językowy ułatwia komunikację, dokumentację, rozwój narzędzi Pozwala dobrze zarządzać projektem m.in. poprzez hierarchiczną strukturę pakietów i bibliotek
VHDL, Verilog VHDL – bardziej podobny do ADA, Pascal Verilog – bardziej podobny do C Większość firm US używa Verilog Większość firm europejskich + Intel + Texas Instruments używa VHDL VHDL jest lepiej wyposażony do tworzenia złożonych, zmieniających się projektów
Opis w języku VHDL
Przykład realizacji VHDL Blok dodawania jednobitowego wejścia, wyjścia jednobitowe kiedy enable = ‘1’, wyjście result równe jest x+y kiedy enable = ‘1’, wyjście carry równe jest przeniesieniu z dodawania x+y kiedy enable = ‘0’, wszystkie wyjścia mają wartość ‘0’
Przykład realizacji VHDL
Przykład realizacji VHDL Najpierw jest definiowany interfejs jednostki projektowej
Przykład realizacji VHDL Architektura – opis behawioralny, algorytmiczny (funkcjonalny)
Przykład realizacji VHDL Architektura – opis ścieżki danych (funkcjonalny)
Przykład realizacji VHDL Architektura – opis strukturalny
Przykład realizacji VHDL
Przykład realizacji VHDL
Jednostka
Jednostka Składnia
Jednostka - przykład Poszczególne deklaracje są w istocie deklaracjami sygnałów
Użycie generic
Sygnały Wewnętrzne deklaracje sygnałów w architekturze: Sygnały: kanały komunikacyjne - „przewody” każdy sygnał ma swoją historię (może być zanotowana zmiana sygnału) sygnał może być ustawiany przez jedno lub więcej źródeł (nośniki – drivers); jeśli źródeł jest wiele (równoległe procesy), to potrzebne jest rozstrzyganie (resolution) konfliktów (która wartość „wygrywa”)
Typy Później dokładniej, ale podstawowe: BIT BIT_VECTOR (np. BIT_VECTOR(0 TO 7) STD_LOGIC STD_LOGIC_VECTOR (np.. STD_LOGIC_VECTOR(7 DOWNTO 0) INTEGER
Typy Wartości BIT: ‘0’, ‘1’ Wartości STD_LOGIC:
Typy Typ STD_LOGIC zdefiniowany w pakiecie std_logic_1164, zdefiniowanym przez standard IEEE 1164 Pakiet zawiera deklaracje potrzebne do stosowania logiki dziewięciowartościowej
Std_logic_1164 M.in. funkcja rozstrzygania:
Sygnały Wartości sygnałów wektorowych zapisywane są w cudzysłowiu, np.: „0110110”
Architektura Składnia: np.:
Architektura Część deklaracyjna może obejmować deklaracje stałych, typów, sygnałów, funkcji, komponentów Równoległe instrukcje mogą być przypisaniami sygnałów (styl ścieżki danych), procesami (styl algorytmiczny), instrukcjami mapowania interfejsów komponentów (styl strukturalny)
Architektura Jedna jednostka (entity) może mieć wiele architektur Jedna architektura jest zdefiniowana tylko dla jednej jednostki Wybór architektury dla jednostki w konkretnej implementacji rozstrzyga się za sprawą tzw. poleceń konfiguracyjnych
Instrukcja przypisania sygnału
Instrukcja przypisania sygnału Podstawowa forma: sygnal <= wyrażenie Np.: carry <= ‘0’; result <= x xor y; q <= „0110”;
Instrukcja przypisania sygnału Pełna składnia:
Operatory q <= „0110” & ”0000”; - sklejenie (konkatenacja)
Opóźnienie w instrukcji przypisania W opisywanym bloku występuje opóźnienie propagacyjne (inercyjne albo transportowe)
Inercyjny model opóźnienia Impulsy krótsze niż czas inercji nie propagują się
Transportowy model opóźnienia Wyjście jest opóźnioną kopią wejścia
Model opóźnienia Domyślny model opóźnienia w VHDL to model inercyjny: Model transportowy:
Przykład
Warunkowe przypisanie sygnału