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.
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
generic_bidir_shift_reg
clk
sd
dir
arst
Q[N-1...0]
reg[N-1...0]
ARCHITECTURE Behavioral OF generic_bidir_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(dir = '1') THEN
reg <= reg(N-2 DOWNTO 0) & sd; -- Sync serial shift left
ELSE reg <= sd & reg(N-1 DOWNTO 1); -- Sync serial shift right
END IF;
END IF;
END PROCESS;
Q <= reg;
END Behavioral;
Obousm. posuvný registr - obecná VHDL impl.
ENTITY generic_bidir_shift_reg IS GENERIC(N: positive := 8);
PORT(
clk, sd, dir, arst: IN std_logic;
Q: OUT std_logic_vector(N-1 DOWNTO 0);
);
END generic_bidir_shift_reg;
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
generic_bidir_shift_reg
clk
sd
dir
arst
Q[N-1...0]
reg[N-1...0]
Posuvné registry se zpětnou
vazbou
Registry se zpětnou vazbou - kruhový reg.
V případě, že je na sériový vstup posuvného registru přiveden signál z některých
jeho výstupů, (ať už přímo nebo po zpracování kombinačním obvodem), vzniká
zpětná vazba, díky které získává posuvný registr nové vlastnosti.
Základní realizací je tzv.
kruhový registr (ring counter), zpětná vazba je
realizována dle obrázku. Data, předem vložená do posuvného registru, potom
neustále rotují o jeden bit s každým hodinovým impulzem.
Data lze do registru vložit buď postupně bit po bitu
sériově nebo paralelně
prostřednictvím paralelních vstupu. Výsledná realizace nemusí obsahovat obě
varianty. Volbou vhodné konstanty lze zajistit až periodu danou počtem bitů
posuvného registru (N).
Q[0]
Q[n-1]
0
1
SD
CLK
sLOAD
sData
pLOAD
pData[0]
pData[n-1]
Zajímavý efekt vznikne při zpětné vazbě z negovaného výstupu MSB.
Tato realizace představuje tzv.
Johnsonův čítač (twisted ring counter), zpětná
vazba je realizována dle obrázku.
Volbou vhodné konstanty obsahující ve všech bitech stejné hodnoty, lze zajistit
až periodu danou dvojnásobným počtem bitů posuvného registru .
Q[0]
Q[n-1]
0
1
SD
CLK
sLOAD
sData
pLOAD
pData[0]
pData[n-1]
1
Registry se zpětnou vazbou - Johnsonův čítač
Ve zpětné vazbě může být zapojen i složitější kombinační obvod. Využívanou
variantou kombinačního obvodu je zapojení se členy XOR (nonekvivalence).
Takové zapojení se nazývá tzv.
lineární čítač (Linear-feedback shift register LFSR).
Platí pravidlo, že pro libovolnou délku lze nalézt alespoň jednu kombinaci
"odboček" do funkce XOR tak, že posloupnost kombinací výstupů je dlouhá 2N-1.
Je to tzv.