Forum: FPGA, VHDL & Co. Shifter-Register Problem


von Manu (Gast)


Angehängte Dateien:

Lesenswert?

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ß

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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.

von Manu (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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)

von Manu (Gast)


Lesenswert?

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.
                             .
                             .
                             .

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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...

von Manu (Gast)


Lesenswert?

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ß!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.