mirror of
https://github.com/Ikatono/vhdlFizzBuzz.git
synced 2025-10-29 04:56:12 -05:00
Add files via upload
This commit is contained in:
72
fizzbuzz.vhd
Normal file
72
fizzbuzz.vhd
Normal file
@@ -0,0 +1,72 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
|
||||
entity fizzbuzz is
|
||||
port( clk: in std_logic;
|
||||
rst: in std_logic;
|
||||
|
||||
fizz: out std_logic;
|
||||
buzz: out std_logic;
|
||||
num: out std_logic;
|
||||
number: out std_logic_vector(7 downto 0)
|
||||
);
|
||||
end fizzbuzz;
|
||||
|
||||
architecture behav of fizzbuzz is
|
||||
|
||||
component counter8
|
||||
port( clk, rst: in std_logic; q: out std_logic_vector(7 downto 0));
|
||||
end component;
|
||||
|
||||
component fizzer
|
||||
port( i: in std_logic_vector(7 downto 0); o: out std_logic);
|
||||
end component;
|
||||
|
||||
component buzzer
|
||||
port( i: in std_logic_vector(7 downto 0); o: out std_logic);
|
||||
end component;
|
||||
|
||||
component mux2
|
||||
port( a, b, s: in std_logic; q: out std_logic);
|
||||
end component;
|
||||
|
||||
component mux8
|
||||
port( a, b: in std_logic_vector(7 downto 0); s: in std_logic; y: out std_logic_vector(7 downto 0));
|
||||
end component;
|
||||
|
||||
component dff
|
||||
port( d, clk, rst: in std_logic; q: out std_logic);
|
||||
end component;
|
||||
|
||||
component comparator8
|
||||
port(a, b: in std_logic_vector(7 downto 0); o: out std_logic);
|
||||
end component;
|
||||
|
||||
signal count: std_logic_vector(7 downto 0);
|
||||
signal fizzout, buzzout: std_logic;
|
||||
signal ishundred: std_logic;
|
||||
signal disabled: std_logic;
|
||||
signal dffin: std_logic;
|
||||
signal numsig: std_logic;
|
||||
signal fizzsig: std_logic;
|
||||
signal buzzsig: std_logic;
|
||||
|
||||
begin
|
||||
|
||||
dffin <= disabled or ishundred;
|
||||
numsig <= not (fizzsig or buzzsig or disabled);
|
||||
num <= numsig;
|
||||
fizz <= fizzsig;
|
||||
buzz <= buzzsig;
|
||||
|
||||
disabler: dff port map(dffin, clk, rst, disabled);
|
||||
cntr: counter8 port map(clk, rst, count);
|
||||
fizzer_0: fizzer port map(count, fizzout);
|
||||
buzzer_0: buzzer port map(count, buzzout);
|
||||
numblanker: mux8 port map("00000000", count, numsig, number);
|
||||
fizzmux: mux2 port map(fizzout, '0', disabled, fizzsig);
|
||||
buzzmux: mux2 port map(buzzout, '0', disabled, buzzsig);
|
||||
comp: comparator8 port map(count, "01100100", ishundred);
|
||||
|
||||
end behav;
|
||||
|
||||
Reference in New Issue
Block a user