initial commit

This commit is contained in:
kutningjo
2024-10-15 08:26:22 +02:00
commit b4e75e651c
19 changed files with 413 additions and 0 deletions
Binary file not shown.
+11
View File
@@ -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
+31
View File
@@ -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;
+42
View File
@@ -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;
+2
View File
@@ -0,0 +1,2 @@
$ version 1.1
/test_DataTypesExample/u_DataTypesExample/*
+29
View File
@@ -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;
+3
View File
@@ -0,0 +1,3 @@
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate /test_top_entity/u_top_entity/*