Programowalne układy logiczne Sygnały w VHDL-u Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 28 września 2015
Typ std logic Przecież to oczywiste, że albo stan wysoki ( 1 ), albo niski ( 0 ).
Typ std logic Przecież to oczywiste, że albo stan wysoki ( 1 ), albo niski ( 0 ). Ależ skąd! U niezainicjowany 0 stan niski 1 stan wysoki Z wysoka impedancja (ang. floating, high-z, tri-stated) X stan nieustalony L stan niski, słaby H stan wysoki, słaby W stan nieustalony, słaby - cokolwiek, używany np. w funkcji std match
Stan wysoki Vcc 1 GND
Stan niski Vcc 0 GND
Stan wysokiej impedancji Vcc Z GND Drut wisi. Jeśli jest używany jako wejście w układzie cyfrowym, często wyłapuje zakłócenia z otoczenia i jego wartość logiczna zmienia się.
Stan nieustalony Vcc X GND To się nazywa katastrofa.
Stan wysoki, słaby Vcc pull-up H GND
Stan niski, słaby Vcc L pull-down GND
Stan nieustalony, słaby Vcc W GND Tutaj nie ma żadnej katastrofy.
Zagadka entity zagadka is port(x: out std_logic); end entity zagadka; architecture zagadkowa of zagadka is begin x <= Z ; x <= 1 ; end architecture zagadkowa;
Sygnały z wielokrotnymi źródłami Vcc Z 1 1 GND
Sygnały z wielokrotnymi źródłami Vcc L H H H W (?) GND
Sygnały z wielokrotnymi źródłami Vcc L H H H 0 0 GND
Sygnały z wielokrotnymi źródłami Vcc H Z 0 Z 0 GND
Wyjście z otwartym drenem entity open_drain_output is port(x: in std_logic; y: out std_logic); end entity open_drain_output; architecture simple of open_drain_output is begin y <= 0 when x = 1 else Z ; end architecture simple;
Wyjście z otwartym drenem Vcc y x GND
Szyna Vcc BUS y 1 y 2 y 3 GND
Szyna Vcc BUS x 1 x 2 x 3 GND
Szyna Vcc BUS x 1 x 2 x 3 GND Patrz np. http://en.wikipedia.org/wiki/i2c.
Szyna architecture whatever of main is component PULLUP port (O: out std_logic); end component; signal bus: std_logic; begin bus_pullup: PULLUP port map (bus); d1: entity work.mydevice1 port map (..., bus,...); d2: entity work.mydevice2 port map (..., bus,...); d3: entity work.mydevice3 port map (..., bus,...); end architecture whatever;
Wersja UCF Rezystory podciągające oraz ściągające można także definiować w pliku UCF. NET "bus" LOC = "L1" PULLUP; W obydwu przypadkach wymagane jest, żeby układ docelowy miał możliwość sterowania rezystorami podciągającymi i ściągającymi. Na koniec warto wiedzieć, że rezystorów tych można używać jedynie dla sygnałów wyprowadzanych na zewnątrz układu. FPGA nie posiadają schowanych rezystorów, dostępnych tylko w środku.
Inny przykład: bufor trójstanowy X OE Y X H Z H L H L L L entity tristate_buffer is port(x: in std_logic; noe: in std_logic; Y: out std_logic); end entity tristate_buffer; architecture simple of tristate_buffer is begin Y <= X when noe = 0 else Z ; end architecture simple;
Kierunki sygnałów w VHDL-u in wejście out wyjście entity E is port(x: out std_logic); end E; architecture a of E is signal y: std_logic; begin x <= 1 ; y <= x; -- ERROR (out cannot be read) end architecture a; buffer wyjście buforowane, dwustanowe entity E is port(x: buffer std_logic); end E; architecture a of E is begin x <= 1 ; assert x = 1 ; -- OK end architecture a;
Kierunki sygnałów w VHDL-u inout wejście-wyjście (trójstanowe) entity E is port(x: inout std_logic); end E; architecture a of E is signal x_in, x_out, x_en: std_logic; begin x <= x_out when x_en = 1 else Z ; x_in <= x end architecture a;
Hazardy (przypomnienie z architektury)
Hazard w układach kombinacyjnych 1.21 x 0 = 1 x 1 = 1 q 0 = a q 1 = a y = x a = 1 a a q 0 q 1 y
Bramka antyhazardowa 1.22 x 0 = 1 x 1 = 1 q 0 = a q 1 = a y = x a = 1 a s = 0 a q 0 q 1 s y
Bonus: parametry czasowe podzespołów 74HC_HCT377_CNV_2.pdf
INTEGRATED CIRCUITS DATA SHEET For a complete data sheet, please also download: The IC06 74HC/HCT/HCU/HCMOS Logic Family Specifications The IC06 74HC/HCT/HCU/HCMOS Logic Package Information The IC06 74HC/HCT/HCU/HCMOS Logic Package Outlines 74HC/HCT377 Octal D-type flip-flop with data enable; positive-edge trigger Product specification File under Integrated Circuits, IC06 December 1990
December 1990 2 Philips Semiconductors Octal D-type flip-flop with data enable; positive-edge trigger Product specification 74HC/HCT377 FEATURES Ideal for addressable register applications Data enable for address and data synchronization applications Eight positive-edge triggered D-type flip-flops See 273 for master reset version See 373 for transparent latch version See 374 for 3-state version Output capability: standard ICC category: MSI GENERAL DESCRIPTION The 74HC/HCT377 are high-speed Si-gate CMOS devices and are pin compatible with low power Schottky TTL (LSTTL). They are specified in compliance with JEDEC standard no. 7A. The 74HC/HCT377 have eight edge-triggered, D-type flip-flops with individual D inputs and Q outputs. A common clock (CP) input loads all flip-flops simultaneously when the data enable (E) is LOW. The state of each D input, one set-up time before the LOW-to-HIGH clock transition, is transferred to the corresponding output (Qn) of the flip-flop. The E input must be stable only one set-up time prior to the LOW-to-HIGH transition for predictable operation. QUICK REFERENCE DATA GND = 0 V; Tamb =25 C; tr =tf= 6 ns TYPICAL SYMBOL PARAMETER CONDITIONS UNIT HC HCT tphl/ tplh propagation delay CP to Qn CL = 15 pf; VCC = 5 V 13 14 ns fmax maximum clock frequency 77 53 MHz CI input capacitance 3.5 3.5 pf CPD power dissipation capacitance per flip-flop notes 1 and 2 20 20 pf Notes 1. CPD is used to determine the dynamic power dissipation (PD in µw): PD =CPD VCC 2 fi + (CL VCC 2 fo) where: fi = input frequency in MHz fo = output frequency in MHz (CL VCC 2 fo) = sum of outputs CL = output load capacitance in pf VCC = supply voltage in V 2. For HC the condition is VI = GND to VCC For HCT the condition is VI = GND to VCC 1.5 V ORDERING INFORMATION See 74HC/HCT/HCU/HCMOS Logic Package Information.
December 1990 3 Philips Semiconductors Octal D-type flip-flop with data enable; positive-edge trigger Product specification 74HC/HCT377 PIN DESCRIPTION PIN NO. SYMBOL NAME AND FUNCTION 1 E data enable input (active LOW) 2, 5, 6, 9, 12, 15, 16, 19 Q0 to Q7 flip-flop outputs 3, 4, 7, 8, 13, 14, 17, 18 D0 to D7 data inputs 10 GND ground (0 V) 11 CP clock input (LOW-to-HIGH, edge-triggered) 20 VCC positive supply voltage Fig.1 Pin configuration. Fig.2 Logic symbol. Fig.3 IEC logic symbol.
December 1990 4 Philips Semiconductors Octal D-type flip-flop with data enable; positive-edge trigger Product specification 74HC/HCT377 FUNCTION TABLE OPERATING MODES INPUTS OUTPUTS CP E Dn Qn load 1 l h H load 0 l l L hold (do nothing) h X no change X H X no change Notes 1. H = HIGH voltage level h = HIGH voltage level one set-up time prior to the LOW-to-HIGH CP transition L = LOW voltage level I = LOW voltage level one set-up time prior to the LOW-to-HIGH CP transition = LOW-to-HIGH CP transition X = don t care Fig.4 Functional diagram. Fig.5 Logic diagram.
December 1990 5 Philips Semiconductors Octal D-type flip-flop with data enable; positive-edge trigger Product specification 74HC/HCT377 DC CHARACTERISTICS FOR 74HC For the DC characteristics see 74HC/HCT/HCU/HCMOS Logic Family Specifications. Output capability: standard ICC category: MSI AC CHARACTERISTICS FOR 74HC GND = 0 V; tr =tf= 6 ns; CL =50pF Tamb ( C) TEST CONDITIONS 74HC SYMBOL PARAMETER UNIT WAVEFORMS VCC +25 40 to +85 40 to +125 (V) min. typ. max. min. max. min. max. tphl/ tplh propagation delay 44 160 200 240 ns 2.0 Fig.6 CP to Qn 16 32 40 48 4.5 13 27 34 41 6.0 tthl/ ttlh output transition time 19 75 95 110 ns 2.0 Fig.6 7 15 19 22 4.5 6 13 16 19 6.0 tw clock pulse width 80 14 100 120 ns 2.0 Fig.6 HIGH or LOW 16 5 20 24 4.5 14 4 17 20 6.0 tsu set-up time 60 14 75 90 ns 2.0 Fig.7 Dn to CP 12 5 15 18 4.5 10 4 13 15 6.0 tsu set-up time 60 6 75 90 ns 2.0 Fig.7 E to CP 12 2 15 18 4.5 10 2 13 15 6.0 th hold time 3 8 3 3 ns 2.0 Fig.7 Dn to CP 3 3 3 3 4.5 3 2 3 3 6.0 th hold time 4 3 4 4 ns 2.0 Fig.7 E to CP 4 1 4 4 4.5 4 1 4 4 6.0 fmax maximum clock pulse 6 23 5 4 MHz 2.0 Fig.6 frequency 30 70 24 20 4.5 35 83 28 24 6.0
December 1990 6 Philips Semiconductors Octal D-type flip-flop with data enable; positive-edge trigger Product specification 74HC/HCT377 DC CHARACTERISTICS FOR 74HCT For the DC characteristics see 74HC/HCT/HCU/HCMOS Logic Family Specifications. Output capability: standard ICC category: MSI Note to HCT types The value of additional quiescent supply current ( ICC) for a unit load of 1 is given in the family specifications. To determine ICC per input, multiply this value by the unit load coefficient shown in the table below. INPUT E CP Dn UNIT LOAD COEFFICIENT 1.50 0.50 0.20 AC CHARACTERISTICS FOR 74HCT GND = 0 V; tr =tf= 6 ns; CL =50pF Tamb ( C) TEST CONDITIONS 74HCT SYMBOL PARAMETER UNIT WAVEFORMS VCC +25 40 to +85 40 to +125 (V) min. typ. max. min. max. min. max. tphl/ tplh propagation delay 17 32 40 48 ns 4.5 Fig.6 CP to Qn tthl/ ttlh output transition time 7 15 19 22 ns 4.5 Fig.6 tw tsu tsu th th fmax clock pulse width HIGH or LOW set-up time Dn to CP set-up time E to CP hold time Dn to CP hold time E to CP maximum clock pulse frequency 20 8 25 30 ns 4.5 Fig.6 12 4 15 18 ns 4.5 Fig.7 22 12 28 33 ns 4.5 Fig.7 2 4 2 2 ns 4.5 Fig.7 3 2 3 3 ns 4.5 Fig.7 27 48 22 18 MHz 4.5 Fig.6
December 1990 7 Philips Semiconductors Octal D-type flip-flop with data enable; positive-edge trigger Product specification 74HC/HCT377 AC WAVEFORMS (1) HC : VM = 50%; VI = GND to VCC. HCT : VM = 1.3 V; VI = GND to 3 V. Fig.6 Waveforms showing the clock (CP) to output (Qn) propagation delays, the clock pulse width, output transition times and the maximum clock pulse frequency. The shaded areas indicate when the input is permitted to change for predictable output performance. (1) HC : VM = 50%; VI = GND to VCC. HCT : VM = 1.3 V; VI = GND to 3 V. Fig.7 Waveforms showing the data set-up and hold times from the data input (Dn) and from the data enable input (E) to the clock (CP). PACKAGE OUTLINES See 74HC/HCT/HCU/HCMOS Logic Package Outlines.
Zadanie 1b (1) Zaimplementuj układ kombinacyjny. Układ ma parametr n, będący liczbą całkowitą nieujemną. Układ ma n wejść danych: input(n - 1),..., input(1), input(0), dwubitowe wejście fun określające funkcję układu, jednobitowe wejście enable, n wyjść: output(n - 1),..., output(1), output(0).
Zadanie 1b (2) Jeśli enable = 0, na wszystkich wyjściach jest 0. Jeśli enable = 1 i fun = "00", układ realizuje funkcję minimum. Na wyjściu output(idx) jest 1, gdy wejście input(idx) ma najmniejszy indeks idx wśród tych wejść, na których jest 1. Na pozostałych wyjściach jest 0. Jeśli enable = 1 i fun = "01", układ realizuje funkcję maksimum. Na wyjściu output(idx) jest 1, gdy wejście input(idx) ma największy indeks idx wśród tych wejść, na których jest 1. Na pozostałych wyjściach jest 0.
Zadanie 1b (3) Jeśli enable = 1 i fun = "10", układ realizuje funkcję mediany. Na wyjściu output(idx) jest 1, gdy indeks idx jest medianą indeksów wejść, na których jest 1. Jeśli 1 jest na nieparzystej liczbie wejść, to 1 jest dokładnie na jednym wyjściu. Jeśli 1 jest na parzystej liczbie wejść, to 1 jest dokładnie na dwóch wyjściach. Na pozostałych wyjściach jest 0. Jeśli enable = 1 i fun = "11", układ realizuje funkcję sumy. Na wyjściach output(idx - 1),..., output(0) jest 1, gdy na idx wejściach jest 1. Na pozostałych wyjściach jest 0.
Zadanie 1b (4) Zaimplementuj jednostkę demonstrującą użycie powyższego układu z parametrem n = 8. Jako wejść input użyj przełączników bistabilnych sw. Jako wyjść output użyj diod świecących led. Do wygenerowania sygnałów fun i enable użyj przycisków monostabilnych: btn(0) minimum, btn(1) maksimum, btn(2) mediana, btn(3) suma.
Zadanie 1b (5) Dodatkowo niech jedna z cyfr wyświetlacza 7-segmentowego wyświetla liczbę (od 0 do 8) włączonych przełączników bistabilnych sw. Ponadto, gdy użytkownik wcisnął więcej niż jeden przycisk btn, zamiast tej liczby powinna się wyświetlać litera E (ang. error). Napisz automatyczne testy dla zaimplementowanych jednostek projektowych. Oczekujemy, że rozwiązanie będzie odzwierciedlało strukturę układu i występujące w nim sygnały. Oczekujemy, że zostanie zaprojektowany jeden układ, a nie połączone ze sobą cztery układy, każdy realizujący jedną funkcję. Czas na oddanie rozwiązania do 17 listopada 2015 r.