mikrocontroller.net

Forum: FPGA, VHDL & Co. Signale in Generate - [gelöst]


Autor: Matthias Krüßelin (kruessi80)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
habe gerade dass Problem, dass innerhalb des "generate" Signale
konstant werden und dann von der Synthese entfernt werden.

ps_gen : for I in 1 to C_MAX_PARTICIPANT generate
   constant C_MAX_PARTDATA : natural := 6;
   signal readVal_r : natural range 0 to C_MAX_PARTDATA-1;

   constant c_minVal : natural range 0 to C_MAX_PARTDATA * C_MAX_PARTICIPANT := (I-1)*6;
   constant c_maxVal : natural range 0 to C_MAX_PARTDATA * C_MAX_PARTICIPANT := I*6;
begin
   
   p_read: process (rst_n, clk)
   begin
      if (rst_n = '0') then
         readVal_r <= 0;
      elsif (clk_25'event and clk_25 = '1') then
         if (Enable = '1') then
            if (((Value > c_minVal) or (Value = c_minVal)) and ((Value < c_maxVal) or (Value = c_maxVal))) then
               readVal_r <= natural(Value-c_minVal);
            else
               readVal_r <= 0;
            end if;
         else
            readVal_r <= 0;
         end if;
      end if;
   end process;
   
   ps: partStat
   generic map (
      C_COUNT_WIDTH => C_COUNT_WIDTH)
   port map (
      rst_n          => rst_n,
      clk_25         => clk_25,
      value          => readVal_r
      ..)
end generate;


Bei der Synthese erhalte ich diese Meldungen.
INFO:Xst:2679 - Register <readVal_r0> in unit <statistic> has a constant value of 000 during circuit operation. The register is replaced by logic.
INFO:Xst:2679 - Register <readVal_r1> in unit <statistic> has a constant value of 000 during circuit operation. The register is replaced by logic.
INFO:Xst:2679 - Register <readVal_r2> in unit <statistic> has a constant value of 000 during circuit operation. The register is replaced by logic.

Leider kann ich mir dies nicht erklären.
Habt Ihr eine Idee?

Matthias

[edit]
Ich habe versehentlich das Eingangssignal "Value" mit
Value  : in natural range 0 to 2
deklariert, was natürlich falsch ist.
Korrekt ist:
Value  : in natural range 0 to 6*C_MAX_PARTICIPANT

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.