LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
entity fibonacci is
port(
clk, rst : in std_logic;
limit : in std_logic_vector(9 downto 0);
fibo_series: out std_logic_vector(9 downto 0)
);
end fibonacci;
architecture fibonacci of fibonacci is
signal a,b,c : std_logic_vector(9 downto 0);
begin
process(clk,rst)
begin
if(rst = '1') then
b <= std_logic_vector(to_unsigned(1, limit'length));
c <= std_logic_vector(to_unsigned(0, limit'length));
elsif(clk'event and clk='1') then
if(c = limit) then
b <= std_logic_vector(to_unsigned(1, limit'length));
c <= std_logic_vector(to_unsigned(0, limit'length));
else
c<=b;
b<=a;
end if;
end if;
a <= std_logic_vector(unsigned(b) + unsigned(c));
end process;
fibo_series <= c;
end fibonacci;