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ý 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;
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;
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;
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;