VHDL-kieli FPGA-suunnittelussa/4-bittinen kierretty rengaslaskuri
4-bittinen kierretty rengaslaskuri
muokkaaJos kierretty rengaslaskuri on täynnä nollia, se alkaa täyttymään ykkösillä. Kun se on täynnä ykkösiä, se alkaa täyttymään nollilla. n-bittisessä kierretyssä rengaslaskurissa on käytössä 2n tilaa.
Tämän laskurin haitta, kuten muidenkin n-bittisten laskurien, joilla on käytössä alle 2n tilaa, on mahdollinen väärien tilojen sekvenssi.
VHDL toteutus
muokkaalibrary IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity JC is
port( Clock: in std_logic;
R: in std_logic;
Output: out std_logic_vector(3 downto 0));
end JC;
architecture Beh of JC is
signal temp: std_logic_vector(3 downto 0);
begin
process (Clock, R)
begin
if R='1' then
temp <= "0000";
elsif Clock'event and Clock='1' then
temp <= (not temp(0)) & temp(3 downto 1);
end if;
end process;
Output <= temp;
end Beh;