VHDL-kieli FPGA-suunnittelussa/4-bittinen kierretty rengaslaskuri

Kohteesta Wikikirjasto
Siirry navigaatioon Siirry hakuun

4-bittinen kierretty rengaslaskuri[muokkaa]

JCNT.PNG

Krl.png

Jos 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[muokkaa]

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

Simulaatiotulos[muokkaa]

JC wave.PNG