bpc-los_09 - Posuv. registry, VHDL-implementace sekv. obvodů
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
Posuvné registry - příklady
realizace
Posuvný registr - obecná VHDL implementace
Realizujte obecný posuvný registr (s parametrizovatelnou délkou N), mající
vstupy pro: asynchronní reset (ARST), sériová vstupní data (SD) vstupující na
pozici LSB (least significant bit), signál pro paralelní vstupní data (D), signál pro
synchronní načtení paralelních dat (LOAD). Registr bude obsahovat paralelní
výstupy (Q[N-1:0]).
Posuvný registr - obecná VHDL implementace
generic_shift_reg
clk
sd
load
arst
D[N-1...0]
Q[N-1...0]
reg[N-1...0]
Realizujte obecný posuvný registr (s parametrizovatelnou délkou N), mající
vstupy pro: asynchronní reset (ARST), sériová vstupní data (SD) vstupující na
pozici LSB (least significant bit), signál pro paralelní vstupní data (D), signál pro
synchronní načtení paralelních dat (LOAD). Registr bude obsahovat paralelní
výstupy (Q[N-1:0]).
Posuvný registr - obecná VHDL implementace
ENTITY generic_shift_reg IS GENERIC(N: positive := 8);
PORT(
clk, sd, load, arst: IN std_logic;
D: IN std_logic_vector(N-1 DOWNTO 0);
Q: OUT std_logic_vector(N-1 DOWNTO 0);
);
END generic_shift_reg;
generic_shift_reg
clk
sd
load
arst
D[N-1...0]
Q[N-1...0]
reg[N-1...0]
Realizujte obecný posuvný registr (s parametrizovatelnou délkou N), mající
vstupy pro: asynchronní reset (ARST), sériová vstupní data (SD) vstupující na
pozici LSB (least significant bit), signál pro paralelní vstupní data (D), signál pro
synchronní načtení paralelních dat (LOAD). Registr bude obsahovat paralelní
výstupy (Q[N-1:0]).
generic_shift_reg
clk
sd
load
arst
D[N-1...0]
Q[N-1...0]
reg[N-1...0]
Posuvný registr - obecná VHDL implementace
ENTITY generic_shift_reg IS GENERIC(N: positive := 8);
PORT(
clk, sd, load, arst: IN std_logic;
D: IN std_logic_vector(N-1 DOWNTO 0);
Q: OUT std_logic_vector(N-1 DOWNTO 0);
);
END generic_shift_reg;
generic_shift_reg
clk
sd
load
arst
D[N-1...0]
Q[N-1...0]
reg[N-1...0]
Posuvný registr - obecná VHDL implementace
ENTITY generic_shift_reg IS GENERIC(N: positive := 8);
PORT(
clk, sd, load, arst: IN std_logic;
D: IN std_logic_vector(N-1 DOWNTO 0);
Q: OUT std_logic_vector(N-1 DOWNTO 0);
);
END generic_shift_reg;
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
generic_shift_reg
clk
sd
load
arst
D[N-1...0]
Q[N-1...0]
reg[N-1...0]
ARCHITECTURE Behavioral OF generic_shift_reg IS SIGNAL reg: std_logic_vector(N-1 DOWNTO 0);
BEGIN PROCESS (arst, clk)
BEGIN IF(arst = '1') THEN
reg <= (OTHERS => '0'); -- Async reset
ELSIF(rising_edge(clk)) THEN
IF(load = '1') THEN
reg <= D; -- Sync parallel load
ELSE reg <= reg(N-2 DOWNTO 0) & sd; -- Sync serial shift
END IF;
END IF;
END PROCESS;
Q <= reg;
END Behavioral;