Gast
#3950807
Servus und ein frohes Neues. Ich versuche mich grad an VHDL und arbeite mit den Xilinx ISE Project Navigator. Hab mir als kleines Projekt eine Digitaluhr ausgesucht mit diversen Funktionen. Soweit so gut, die Funktionen gehen wunderbar nur bin ich an einer Stelle hängen geblieben. Blöd an der Sache, rein nach dem betrachten sollte es gehen und keiner konnte mir bisher sagen warum das in diesem Simulator nicht geht. Und zwar habe ich diverse Input Variablen im Code deklariert und setze diese in der Testbench. Danach möchte ich die in der Testbench vergebenen Werte in meine Signal Varibalen setzen um damit arbeiten zu können. Genau meckert er beim ausführen und hat nur kaputte Werte oder gibt gar nichts auf meinen Signalen aus. Ist das ein Problem von dem Simulator, muss ich noch etwas beachten? Hier die Deklaration in der main: entity Digitaluhr is Port ( clk : in STD_LOGIC; reset : in STD_LOGIC; stunde : in STD_LOGIC; mode : in STD_LOGIC_VECTOR (1 downto 0); o_std_z : out STD_LOGIC_VECTOR (3 downto 0); o_std_e : out STD_LOGIC_VECTOR (3 downto 0); o_min_z : out STD_LOGIC_VECTOR (3 downto 0); o_min_e : out STD_LOGIC_VECTOR (3 downto 0); o_sec_z : out STD_LOGIC_VECTOR (3 downto 0); o_sec_e : out STD_LOGIC_VECTOR (3 downto 0); i_std_z : in STD_LOGIC_VECTOR (3 downto 0); i_std_e : in STD_LOGIC_VECTOR (3 downto 0); i_min_z : in STD_LOGIC_VECTOR (3 downto 0); i_min_e : in STD_LOGIC_VECTOR (3 downto 0); i_sec_z : in STD_LOGIC_VECTOR (3 downto 0); i_sec_e : in STD_LOGIC_VECTOR (3 downto 0)); end Digitaluhr; Die Signale: ( Habe es auch ohne "0000" setzen der Signale versucht) architecture Behavioral of Digitaluhr is signal s_std_z : STD_LOGIC_VECTOR (3 downto 0) := "0000"; signal s_std_e : STD_LOGIC_VECTOR (3 downto 0) := "0000"; signal s_min_z : STD_LOGIC_VECTOR (3 downto 0) := "0000"; signal s_min_e : STD_LOGIC_VECTOR (3 downto 0) := "0000"; signal s_sec_z : STD_LOGIC_VECTOR (3 downto 0) := "0000"; signal s_sec_e : STD_LOGIC_VECTOR (3 downto 0) := "0000"; begin Setzen des Inputs in der Testbench: i_sec_e <= "0010"; i_sec_z <= "0001"; i_min_e <= "0100"; i_min_z <= "0010"; i_std_e <= "0100"; i_std_z <= "0000"; Zu guter Letzt, das befüllen der Signale in der main: test: process(i_sec_e,i_sec_z,i_min_e,i_min_z,i_std_e,i_std_z) begin s_sec_e <= i_sec_e; s_sec_z <= i_sec_z; s_min_e <= i_min_e; s_min_z <= i_min_z; s_std_e <= i_std_e; s_std_z <= i_std_z; end process test; Falls ich den ganzen Code noch dazu packen sollen, mache ich das noch! Hoffe es hat jemand ein Tipp. Gruß Peter H.