initial commit
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
|
||||
vhdl_srcs = down_counter_int.vhd \
|
||||
top_entity.vhd \
|
||||
test_top_entity.vhd \
|
||||
|
||||
main = test_top_entity
|
||||
|
||||
CHECK_RESULTS = true
|
||||
|
||||
include ../scripts/vhdl.mk
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
|
||||
entity Backward_Counter is
|
||||
port (
|
||||
CLK : in std_logic; -- Eingangssignal fuer den Takt
|
||||
RESET : in std_logic; -- Eingangssignal zum Zuruecksetzen des Zaehlers
|
||||
INITIAL_VALUE : in integer range 0 to 127; -- Anfangswert fuer den Zaehler
|
||||
COUNT_OUT : out integer range 0 to 127 -- Ausgangssignal fuer den aktuellen Zaehlerstand
|
||||
);
|
||||
end Backward_Counter;
|
||||
|
||||
architecture Behavioral of Backward_Counter is
|
||||
signal count : integer range 0 to 127; -- Signal fuer den Zaehler
|
||||
begin
|
||||
process(CLK, RESET)
|
||||
begin
|
||||
if RESET = '1' then -- Wenn RESET aktiv ist
|
||||
count <= INITIAL_VALUE; -- setze den Zaehler auf den Anfangswert
|
||||
elsif rising_edge(CLK) then -- Bei steigender Taktflanke
|
||||
if count = 0 then -- Wenn der Zaehlerstand 0 ist
|
||||
count <= 127; -- setze den Zaehlerstand auf den maximalen Wert (127)
|
||||
else
|
||||
count <= count - 1; -- Verringere den Zaehlerstand um 1
|
||||
end if;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
COUNT_OUT <= count; -- Weise den aktuellen Zaehlerstand dem Ausgangssignal zu
|
||||
end Behavioral;
|
||||
@@ -0,0 +1,42 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
|
||||
library std;
|
||||
use std.env.all;
|
||||
|
||||
entity test_top_entity is
|
||||
generic( CHECK_RESULTS : boolean );
|
||||
end entity test_top_entity;
|
||||
|
||||
architecture test of test_top_entity is
|
||||
signal CLK : std_logic := '0';
|
||||
signal RESET : std_logic := '1';
|
||||
signal CNT : std_logic_vector(6 downto 0);
|
||||
begin
|
||||
u_top_entity : entity work.top_entity
|
||||
port map (
|
||||
CLK => CLK,
|
||||
RESET => RESET,
|
||||
CNT => CNT
|
||||
);
|
||||
|
||||
CLK <= not CLK after 10 ns;
|
||||
|
||||
p_reset : process( CLK )
|
||||
begin
|
||||
if falling_edge( CLK ) then
|
||||
RESET <= '0';
|
||||
end if;
|
||||
end process p_reset;
|
||||
|
||||
p_run : process
|
||||
begin
|
||||
wait until falling_edge( RESET );
|
||||
for i in 0 to 128 loop
|
||||
wait until rising_edge( CLK );
|
||||
end loop;
|
||||
wait until rising_edge( CLK );
|
||||
stop;
|
||||
end process p_run;
|
||||
|
||||
end architecture test;
|
||||
@@ -0,0 +1,2 @@
|
||||
$ version 1.1
|
||||
/test_DataTypesExample/u_DataTypesExample/*
|
||||
@@ -0,0 +1,29 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
|
||||
entity top_entity is
|
||||
port (
|
||||
CLK : in std_logic; -- Eingangssignal fuer den Takt
|
||||
RESET : in std_logic; -- Eingangssignal zum Zuruecksetzen des Zaehlers
|
||||
CNT : out std_logic_vector(6 downto 0) -- Ausgangssignal fuer den aktuellen Zaehlerstand
|
||||
);
|
||||
end top_entity;
|
||||
|
||||
architecture Behavioral of top_entity is
|
||||
|
||||
-- Legen Sie eine Konstante mit den Wert 57 an, welche Sie der Komponente Backward_Counter als INITIAL_VALUE uebergeben koennen
|
||||
|
||||
-- Legen Sie ein Signal an um das Ergebnis aus COUNT_OUT der Komponente entgegenzunehmen zu koennen
|
||||
|
||||
begin
|
||||
|
||||
-- Instanzieren Sie direkt die Backward_Counter Komponente
|
||||
-- Als Takt und Reset sollen die jeweiligen Eingaenge der top_entity uebergeben werden
|
||||
-- Als Anfangswert fuer den Zaehler Ihre angelegte Konstante
|
||||
-- Der aktuelle Zaehlerstand soll Ihrem angelegten signal uebergeben werden
|
||||
|
||||
|
||||
-- Machhen Sie eine Zuweisung damit der Ausgang CNT der top_entity dem aktuellen Zaehlerstand entspricht
|
||||
|
||||
end Behavioral;
|
||||
@@ -0,0 +1,3 @@
|
||||
onerror {resume}
|
||||
quietly WaveActivateNextPane {} 0
|
||||
add wave -noupdate /test_top_entity/u_top_entity/*
|
||||
Reference in New Issue
Block a user