Hallo Guys, Mein Projekt, das die Bearbeitung von Matrix bilden, besteht aus 3 Module(Componente) : Modul1 und Modul2, die beide mittels FSM gearbeitet werden. Dazu brauch ich noch ein Shift-Register als Eingangspuffer vor Modul1, d.h die MatrixZeile werden Takt für Takt seriell eingelesen.Diese 3 Module funktioneiren gut. Das Programm von Shift-Register (nicht mittels FSM) sieht folgend: entity IN_BUFFER_SYN is port(CLK, RESET : IN STD_LOGIC; RX_RE,RX_IM : IN Feldelement; -- Vektor von 4 Elemente serial input E_RE,E_IM : OUT FeldTyp (0 to 3); -- 4X4 Matrix RX_STOP : OUT STD_LOGIC; -- uebertragung stop RX_START : OUT STD_LOGIC -- uebertragung start ); end IN_BUFFER_SYN; architecture Behavioral of IN_BUFFER_SYN is signal SHIFTER_RE : FeldTyp (0 to 3); signal SHIFTER_IM : FeldTyp (0 to 3); signal RXSTATE : INTEGER RANGE 0 TO 5 :=0 ; constant START_DATA : Feldelement := (others=>(others=>'1')); --Anfangsdata begin process begin wait until rising_edge(CLK); if(RESET='1') then RXSTATE <= 0; SHIFTER_RE <= (others=>(others=>(others=>'0'))); SHIFTER_IM <= (others=>(others=>(others=>'0'))); else if(RXSTATE=0) then --state0 erkennen ob die Anfangssignal kommt if(RX_RE = START_DATA) and (RX_IM = START_DATA) then RXSTATE <= RXSTATE + 1; RX_START <= '1'; end if; elsif(RXSTATE=5) then --state Data parallel ausgeben RXSTATE <= 0; RX_START <= '0'; else --andere state Data sersial eingeben SHIFTER_RE(0) <= RX_RE; SHIFTER_IM(0) <= RX_IM; SHIFTER_RE(1 to 3) <= SHIFTER_RE(0 to 2); SHIFTER_IM(1 to 3) <= SHIFTER_IM(0 to 2); RX_START <= '0'; RXSTATE <= RXSTATE + 1; end if; end if; end process; process --output process begin wait until rising_edge(CLK); if(RESET='1') then E_RE <= (others=>(others=>(others=>'0'))); E_IM <= (others=>(others=>(others=>'0'))); RX_STOP <= '0'; elsif(RXSTATE=5) then E_RE <= SHIFTER_RE; -- Data parallel ausgeben E_IM <= SHIFTER_IM; -- Data parallel ausgeben RX_STOP <= '1'; else RX_STOP <= '0'; E_RE <= (others=>(others=>(others=>'0'))); E_IM <= (others=>(others=>(others=>'0'))); end if; end process; end Behavioral; Dies Shifter_Register funktioniert selbst gut, sieh die Simulationsergebniss im Anhang. Aber wenn ich diese 3 Componente in TOP_MODUL mittels FSM verdrahtet, reagiert das Signal "RX_START" gar nicht und das Zustand bleibt immer auf "WAIT_FOR_BUF". Die Simulation sieht sich im Anhang und das Programm TOP_MODUL steht folgend: entity TOP_MODUL is port(CLK, RESET, START_TOP : IN STD_LOGIC; RX_RE_IN,RX_IM_IN : IN Feldelement; -- serial input SOL_VEC_RE_OUT : OUT Feldelement; SOL_VEC_IM_OUT : OUT Feldelement; READY_TOP : OUT STD_LOGIC); end TOP_MODUL; architecture Behavioral of TOP_MODUL is -- Komponenten-Deklarationen component IN_BUFFER_SYN is port(CLK, RESET : IN STD_LOGIC; RX_RE,RX_IM : IN Feldelement; -- Vektor von 4 Elemente serial input E_RE,E_IM : OUT FeldTyp (0 to 3); -- 4X4 Matrix RX_STOP : OUT STD_LOGIC; -- uebertragung stop RX_START : OUT STD_LOGIC -- uebertragung start ); end component IN_BUFFER_SYN; component MODUL1 is port(CLK, RESET, START_MODUL1 : IN STD_LOGIC; E_RE_IN,E_IM_IN : IN FeldTyp (0 to 3); R_RE_OUT,R_IM_OUT : OUT FeldTyp (0 to 3); READY_MODUL1 : OUT STD_LOGIC ); end component MODUL1 ; component MODUL2 is port(CLK, RESET, START_MODUL2 : IN STD_LOGIC; R_RE_IN,R_IM_IN : IN FeldTyp (0 to 3); SOL_VEC_RE_OUT,SOL_VEC_IM_OUT : OUT Feldelement; READY_MODUL2 : OUT STD_LOGIC ); end component MODUL2 ; type ZUSTAENDE is (S_WAIT,POST_BUF,WAIT_FOR_BUF,POST_MODUL1, WAIT_FOR_MODUL1,POST_MODUL2 ,WAIT_FOR_MODUL2 ,S_OUT,S_STOP); signal ZUSTAND : ZUSTAENDE; signal RX_RE_TO_BUF,RX_IM_TO_BUF : Feldelement; signal E_RE_REG_BUF,E_IM_REG_BUF : FeldTyp (0 to 3); signal E_RE_OUT_BUF,E_IM_OUT_BUF : FeldTyp (0 to 3); signal RX_STOP,RX_START : STD_LOGIC; signal E_RE_TO_MODUL1,E_IM_TO_MODUL1 : FeldTyp (0 to 3); signal R_RE_OUT_MODUL1,R_IM_OUT_MODUL1 : FeldTyp (0 to 3); signal R_RE_REG,R_IM_REG : FeldTyp (0 to 3); signal START_MODUL1,READY_MODUL1 : STD_LOGIC; signal R_RE_TO_MODUL2,R_IM_TO_MODUL2 : FeldTyp (0 to 3); signal VEC_RE_REG,VEC_IM_REG : Feldelement; signal VEC_RE_OUT_MODUL2,VEC_IM_OUT_MODUL2 : Feldelement; signal START_MODUL2,READY_MODUL2 : STD_LOGIC; CONSTANT SOL_VEC_RE_0 : Feldelement := (others=>(others => '0')); CONSTANT SOL_VEC_IM_0 : Feldelement := (others=>(others => '0')); begin INBUFFER: IN_BUFFER_SYN PORT MAP(CLK, RESET,RX_RE_TO_BUF,RX_IM_TO_BUF, E_RE_OUT_BUF,E_IM_OUT_BUF,RX_STOP,RX_START); MODUL_1ST: MODUL1 PORT MAP(CLK,RESET,START_MODUL1,E_RE_TO_MODUL1, E_IM_TO_MODUL1,_RE_OUT_MODUL1,R_IM_OUT_MODUL1,READY_MODUL1); MODUL_2ND: MODUL2 PORT MAP(CLK, RESET,START_MODUL2,R_RE_TO_MODUL2, R_IM_TO_MODUL2,EC_RE_OUT_MODUL2,VEC_IM_OUT_MODUL2,READY_MODUL2); process begin wait until rising_edge(CLK); case ZUSTAND is when S_WAIT => if START_TOP = '1' then ZUSTAND <= POST_BUF; else ZUSTAND <= S_WAIT; end if; when POST_BUF => RX_RE_TO_BUF <= RX_RE_IN; RX_IM_TO_BUF <= RX_IM_IN; ZUSTAND <= WAIT_FOR_BUF; when WAIT_FOR_BUF => if RX_STOP ='1' then E_RE_REG_BUF <= E_RE_OUT_BUF; E_IM_REG_BUF <= E_IM_OUT_BUF; ZUSTAND <= POST_MODUL1; end if; when POST_MODUL1 => E_RE_TO_MODUL1 <= E_RE_REG_BUF; E_IM_TO_MODUL1 <= E_IM_REG_BUF; START_MODUL1 <= '1'; ZUSTAND <= WAIT_FOR_MODUL1; when WAIT_FOR_MODUL1 => if READY_MODUL1 ='1' then START_MODUL1 <= '0'; R_RE_REG <= R_RE_OUT_MODUL1; R_IM_REG <= R_IM_OUT_MODUL1; ZUSTAND <= POST_MODUL2; end if; when POST_MODUL2 => R_RE_TO_MODUL2 <= R_RE_REG; R_IM_TO_MODUL2 <= R_IM_REG; START_MODUL2 <= '1'; ZUSTAND <= WAIT_FOR_MODUL2; when WAIT_FOR_MODUL2 => if READY_MODUL2 ='1' then START_MODUL2 <= '0'; VEC_RE_REG <= VEC_RE_OUT_MODUL2; VEC_IM_REG <= VEC_IM_OUT_MODUL2; ZUSTAND <= S_OUT; end if; when S_OUT => ZUSTAND <= S_STOP; when S_STOP => ZUSTAND <= S_WAIT; when OTHERS => ZUSTAND <= S_WAIT; end case; if (RESET ='1') then ZUSTAND <= S_WAIT; end if; end process; FSM_OUT: process(ZUSTAND) begin SOL_VEC_RE_OUT <= SOL_VEC_RE_0; SOL_VEC_IM_OUT <= SOL_VEC_IM_0; if ZUSTAND = S_OUT or ZUSTAND = S_STOP then SOL_VEC_RE_OUT <= VEC_RE_REG; SOL_VEC_IM_OUT <= VEC_IM_REG; end if; end process FSM_OUT; FSM_READY: process( ZUSTAND ) begin READY_TOP <= '0'; if ZUSTAND = S_OUT then READY_TOP <= '1'; end if; end process FSM_READY; end Behavioral; Ich glaub das Problem steht auf Verbindung von Eingangsbuff in TOP_MODUL, aber ich hab keine Ahnung wie kann ich dies Problem lösen.Vielleicht kann mir ja jmd. helfen.Wäre für jede Antwort dankbar. Danke im Voraus Gruß
Naja, du brauchst 4 Bedingungen und den Takt, dass da was passiert:
1 | wait until rising_edge(CLK); |
2 | if(RESET='1') then -- 1. bedingung |
3 | :
|
4 | else
|
5 | if(RXSTATE=0) then -- 2. |
6 | if(RX_RE = START_DATA) and (RX_IM = START_DATA) then -- 3.+4. |
7 | RX_START <= '1'; |
Und im 2. Bild ist schon die erste Bedingung nicht erfüllt: der Reset ist beim steigenden Takt noch aktiv.
Lothar Miller schrieb: > Und im 2. Bild ist schon die erste Bedingung nicht erfüllt: der Reset > ist beim steigenden Takt noch aktiv. Danke dir, Aber es geht noch nicht,wenn ich Testbench korrigiere.
Manu schrieb: > Danke dir, Aber es geht noch nicht Das ist jetzt ja nicht mehr allzu kompliziert, nachzuvollziehen, was im Beitrag "Re: Shifter-Register Problem" steht. Den Reset hast du jetzt als Fehlerursache mal ausgeschlossen. Jetzt untersuch die anderen Signale... Manu schrieb: > entity IN_BUFFER_SYN is > port(CLK, RESET : IN STD_LOGIC; > RX_RE,RX_IM : IN Feldelement; > : > INBUFFER: IN_BUFFER_SYN > PORT MAP(CLK, RESET,RX_RE_TO_BUF,RX_IM_TO_BUF, > : > when POST_BUF => RX_RE_TO_BUF <= RX_RE_IN; > RX_IM_TO_BUF <= RX_IM_IN; > ZUSTAND <= WAIT_FOR_BUF; Was machen denn die Signale RX_RE,RX_IM (=RX_RE_TO_BUF, RX_IM_TO_BUF)
Danke sehr. Dies Problem hab ich schon gelöst. Hab noch eine Frage, in TOP_MODOL treten viele Warnungen nach Synthese auf, aber in der 3 UnterModule gib's gar keine Warnungen, ich hab keine Ahnung wo die Fehler stehen, weil ich den TOP_MODUL mit gleicher Schreibweise wie die 3 UnterModule bearbeite.Kann mir jmd. weiterhelfen? Die Warnungsinformationen sind: Xst:1710 - FF/Latch <R_IM_REG<1>_1_-3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_1_-2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_1_-1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_1_0> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_1_1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_1_2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_1_3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_0_-10> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_0_-9> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_0_-8> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_0_-7> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_0_-6> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_0_-5> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_0_-4> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_0_-3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_0_-2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_0_-1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_0_0> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_0_1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_0_2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_0_3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_0_-10> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_0_-9> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_0_-8> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_0_-7> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_0_-6> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_0_-5> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_0_-4> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_0_-3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_0_-2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_0_-1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_0_0> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_0_1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_0_2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_0_3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_1_-10> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_1_-9> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_1_-8> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_1_-7> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_1_-6> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_1_-5> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<1>_1_-4> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<2>_0_-3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<2>_0_-2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<2>_0_-1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<2>_0_0> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<2>_0_1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<2>_0_2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<2>_0_3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_2_-10> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_2_-9> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_2_-8> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_2_-7> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_2_-6> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_2_-5> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_2_-4> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_2_-3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_2_-2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_2_-1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_2_0> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_2_1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_2_2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_2_3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_1_-10> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_1_-9> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_1_-8> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_1_-7> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_1_-6> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_1_-5> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_1_-4> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_1_-3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_1_-2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_1_-1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_1_0> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_1_1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_1_2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<0>_1_3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<2>_0_-10> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<2>_0_-9> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<2>_0_-8> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<2>_0_-7> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<2>_0_-6> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<2>_0_-5> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<2>_0_-4> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_1_-3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_1_-2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_1_-1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_1_0> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_1_1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_1_2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_1_3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<2>_0_-10> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<2>_0_-9> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<2>_0_-8> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<2>_0_-7> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<2>_0_-6> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<2>_0_-5> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<2>_0_-4> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<2>_0_-3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<2>_0_-2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<2>_0_-1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<2>_0_0> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<2>_0_1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<2>_0_2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<2>_0_3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_0_-10> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_0_-9> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_0_-8> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_0_-7> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_0_-6> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_0_-5> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_0_-4> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_0_-3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_0_-2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_0_-1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_0_0> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_0_1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_0_2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_0_3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_1_-10> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_1_-9> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_1_-8> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_1_-7> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_1_-6> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_1_-5> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_RE_REG<1>_1_-4> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_1_-3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_1_-2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_1_-1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_1_0> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_1_1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_1_2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_1_3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_2_-10> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_2_-9> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_2_-8> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_2_-7> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_2_-6> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_2_-5> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_2_-4> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_2_-3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_2_-2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_2_-1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_2_0> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_2_1> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_2_2> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <R_IM_REG<0>_2_3> (without init value) has a constant value of 0 in block <TOP_MODUL>. This FF/Latch will be trimmed during the optimization process. . . .
Manu schrieb: > has a constant value of 0 Das heißt: das Signal (oder sein Vorgänger oder der Nachfolger) wird nirgends geschreiben/verwendet/gelesen/verändert. > This FF/Latch will be trimmed during the optimization process Es wird wegoptimiert und durch eine gleichwertige '0' ersetzt. Versuch mal deine Signalpfade genau nachzuvollziehen...
Lothar Miller schrieb: > Versuch mal deine Signalpfade genau nachzuvollziehen... wie macht man das? Kannst du vielleicht exakt erzählen? Ich hab 2 Warnungen in Modul2 gesehen: WARNING:Xst:646 - Signal <X_IM_REG<0><3>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. WARNING:Xst:1780 - Signal <Y_IM_REG<0><3>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. Sind diese evtl. die Warnungensursache? Danke!! Gruß!
Manu schrieb: > Lothar Miller schrieb: >> Versuch mal deine Signalpfade genau nachzuvollziehen... > wie macht man das? Kannst du vielleicht exakt erzählen? Es geht genau so: Ein leeres Blatt Papier, ein spitzer Bleistift, die Suchfunktion und dann Nachdenken... Normalerweise ist es so, dass solche signale in Pfaden sitzen, die nie aufgerufen werden. Oder dass niemals was hineingeschrieben wird. Auf jeden Fall muß hier zuerst die Simulation sinnvolle Ergebnisse bringen. Dann kann man sich mal genauer ansehen, was die Synthese draus macht. Wenn die Simulation noch nicht das macht, was man erwartet, dann oft geanau deshalb, weil es noch solche Sackgassen im Design gibt. Und wenn ich deinen Code so überfliege (MEHR MACHE ICH DA NICHT, WEIL MIR DIESE GROSSSCHREIBUNG DAS AUGE AUSKRATZT), dann sehe ich einige Möglichkeiten. Allerdings muß klar sein, dass es in der Hardware keine 'U' gibt. Solche Signale werden von Anfang an mit '0' initialisiert. Und deshalb solltest du das auch tun. Denn sonst passt deine Hardware nicht mehr zur Simulation...
1 | signal RX_RE_TO_BUF,RX_IM_TO_BUF : Feldelement := (others=>(others => '0')); |
2 | signal E_RE_REG_BUF,E_IM_REG_BUF : FeldTyp (0 to 3) := (others=>(others=>(others => '0'))); |
3 | signal RX_STOP,RX_START : STD_LOGIC := '0'; |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.