www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Komische Info von ISE


Autor: Christian Peters (kron)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hab ein Projekt synthetisiert, und bekomme für diese Statemachine:
Analyzing FSM <FSM_2> for best encoding.
Optimizing FSM <Inst_ADRDEC_V/state> on signal <state[1:5]> with one-hot encoding.
-------------------
 State | Encoding
-------------------
 idle  | 00001
 r1    | 00100
 r2    | 01000
 w1    | 00010
 w2    | 10000
eine ganz normale Statemachine halt, diese Infos:
Synthesizing (advanced) Unit <FSM_2>.
INFO:Xst:2387 - HDL ADVISOR - A 2-bit shift register was found for signal <FFd1> and currently occupies 2 logic cells (1 slices). Removing the set/reset logic would take advantage of SRL16 (and derived) primitives and reduce this to 1 logic cells (1 slices). Evaluate if the set/reset can be removed for this simple shift register. The majority of simple pipeline structures do not need to be set/reset operationally.
INFO:Xst:2387 - HDL ADVISOR - A 2-bit shift register was found for signal <FFd2> and currently occupies 2 logic cells (1 slices). Removing the set/reset logic would take advantage of SRL16 (and derived) primitives and reduce this to 1 logic cells (1 slices). Evaluate if the set/reset can be removed for this simple shift register. The majority of simple pipeline structures do not need to be set/reset operationally.
Unit <FSM_2> synthesized (advanced).

Diese Machine fragt im Idlezustand drei Signale ab,
und wenn die eine von zwei möglichen Konstellationen haben,
geht sie (die Machine) durch 2 fast und einen ganz leeren State, 
Waitstates,
und dann wieder zu idle.

Könnte diese Info von den leeren States kommen?
Ich weiß, dass die Infos nichts dramatisches sind,
aber es kneift mich trotzdem und ich möchte es gern verstehen. :)

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Christian Peters (kron)

>ich hab ein Projekt synthetisiert, und bekomme für diese Statemachine:

>Könnte diese Info von den leeren States kommen?

Nein, es ist, wie man lesen kann, ein asynchrones Reset, das den 
Synthesizer stört. Mach den mal ausd einem Code und schau was passiert.

Mfg
Falk

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, die beiden waitstates wird von der Synthese als 2Bit-Schieberegister 
ausgeführt: Vorne eine eins rein, und wenn sie hinten wieder rauskommt, 
sind die beiden Takte rum. Das ist so kompakter und lässt sich in ein 
einziges Slice packen. Bei so einem Schieberegister ist aber kein Reset 
möglich, weder synchron noch asynchron.

Autor: Christian Peters (kron)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also die SM sieht so aus:
if(H1'event and H1 = '1') then    -- steigende Flanke
      
 case state is 
   when idle =>
     if (RW='1' and PAGE2='0' and ADDR="10") then
      UART_CS <= '0';
      state <= R1;    
     elsif (RW='0' and PAGE2='0' and ADDR="10") then
      UART_CS  <= '0';
      state <= W1;    
     else
      state <= idle;                       
     end if;                                           
   when R1 =>
    UART_RD <= '0';
    state <= R2;                                
   when R2 =>                    
    UART_CS <= '1';                  
    state <= R3;                                  
   when R3 =>
    state <= R4;
   when R4 =>                    
    UART_RD <= '1';              
    state <= R5;                                    
   when R5 =>                    
    state <= R6;                                       
   when R6 =>            
    state <= R7;          
   when R7 =>            
    state <= idle;                  
   when W1 =>                    
    state <= W2;
   when W2 =>
    UART_CS <= '1';
    state <= W3;
   when W3 =>
    state <= W4; 
   when W4 =>
    UART_WR <= '1';
    state <= W5;
   when W5 =>
    state <= W6; 
   when W6 =>
    state <= W7; 
   when W7 =>
    state <=  idle;  
   when others =>
    state <= idle;
  end case;
end if;

Ich habe den RESET-Zweig schonmal entfernt,
die Meldung bleibt die gleiche, also das RESET ist offensichtlich
nicht das Problem.

Autor: Johnsn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du den Reset auch von der Sensitivity List entfernt?

Prinzipiell ist die gewünschte Funktion schon gegeben, aber die 
Ausführung geschieht halt nicht mit Primitives, sondern Logikzellen, was 
wahrscheinlich mehr Platz braucht.

Gruß,
Johnsn

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich habe den RESET-Zweig schonmal entfernt,
>die Meldung bleibt die gleiche, also das RESET ist offensichtlich
>nicht das Problem.

Glaub ich nciht. Poste mal den KOMPLETTEN Quelltext.

MFg
Falk

Autor: Christian Peters (kron)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll das heißen, glaubst du nicht?
Stell dir vor dem geposteten Text noch ein process (H1) vor,
dann hast du ihn KOMPLETT.

Auch das Entfernen von der Sensivity-List hat übrigens nichts geändert.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Christian Peters (kron)

>Auch das Entfernen von der Sensivity-List hat übrigens nichts geändert.

Naja, dann ist es eben so. Manchmal sind die Warnungen von ISE nicht so 
100%ig logisch.
Was solls, deine FSM wird trotzdem gut und schnell laufen.

MFG
Falk

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.