Gast
#512414
Hallo Ich habe 3 VHDL-Module, die auf einen Block-RAM zugreifen. Der Block-Ram besitzt einen Anschluss für die Adresse (7 downto 0). Die 3 VHDL-Module greifen auf diesen Adressbus zu (jedoch nicht gelichtzeitig) Nachdem ein Modul auf den Bus zugegriffen hat, wird der Ausgang des Moduls auf Tristate geschaltet, dadurch kann ein anderes VHDL-Modul auf den Bus zugreifen. Ich habe die Ausgangsports der VHDL-Module auf "inout" gestellt, trotzdem zeit der compiler folgenden Fehler an: Calculate_Variance_Modul : Calculate_Variance Port Map ( ADDR_RAM_A4(7) => , ADDR_RAM_A4(6) => , ADDR_RAM_A4(5) => , ADDR_RAM_A4(4) => , ADDR_RAM_A4(3) => , ADDR_RAM_A4(2) => , ADDR_RAM_A4(1) => , ADDR_RAM_A4(0) => , AV_DICKE => NamedSignal_B_AV_DICKE, AV_VARIANCE => PinSignal_Calculate_Variance_Modul_AV_VARIANCE, Wie man erkennt wird "ADDR_RAM_A4" nichtzugewiesen Hier ein auszug aus meinem Quellcode: entity Calculate_Thickness is port ( ADDR_RAM_A4 : inout std_logic_vector(7 downto 0); EN_RAM_A4 : inout std_logic; WE_RAM_A4 : inout std_logic ); end Calculate_Thickness; architecture Structure of Calculate_Thickness is -- Signal Declarations signal S_REG_H : std_logic_vector(7 downto 0); signal S_ADDR_RAM_A4_1 : std_logic_vector(7 downto 0); begin -- Adresse an den RAM (FIFO) anlegen process (USB_CLK) begin if(USB_CLK'event and USB_CLK = '0')then if(CLR = '1' or GATE = '1')then ADDR_RAM_A4 <= (others => 'Z'); elsif(S_REG_H(3) = '1')then ADDR_RAM_A4 <= S_ADDR_RAM_A4_1; else ADDR_RAM_A4 <= (others => 'Z'); end if; end if; end process; process (USB_CLK) begin if(USB_CLK'event and USB_CLK = '1') then if(CLR = '1' or GATE = '1' or S_UPDATED_RAM_FIFO = '1') then S_REG_H <= "00000001"; elsif(SECOND_PEAK_DONE = '1')then S_REG_H <= S_REG_H(6 downto 0) & S_REG_H(7); -- schieben end if; end if; end process; Weiß einer an was es liegt?