Sensitivity List Problem bei GENERATE-Konstrukten

Gast #1204447
Die option "check for Synthesis" liefert bei ModelSIM AE folgenden 
Fehler: "Signal ctrl_we is not in the s.-list" - obwohl es geclocked 
ist. Kann es an dem Generate Konstukt liegen?

Der Code stammt vom open cores SPDIF Decoder.
1
 
2
-- control register generation
3
   CTRLREG : for k in ctrl_din'range generate
4
      -- active bits can be written to
5
      ACTIVE : if ACTIVE_BIT_MASK(k) = '1' generate
6
         CBIT : process (clk, rst)
7
         begin
8
            if rst = '1' then
9
               ctrl_internal(k) <= '0';
10
            else
11
               if rising_edge(clk) then
12
                  if ctrl_wr = '1' then
13
                     ctrl_internal(k) <= ctrl_din(k);
14
                  end if;
15
               end if;
16
            end if;
17
         end process CBIT;
18
      end generate ACTIVE;
Gast #1204640
Probier mal statt
1
if rst = '1' then
2
   ctrl_internal(k) <= '0';
3
else
4
    if rising_edge(clk) then

folgendes
1
if rst = '1' then
2
   ctrl_internal(k) <= '0';
3

4
elsif rising_edge(clk) then

Modelsim ist bei der Erkennung von getakteten Prozessen
inkl. async. Reset etwas zu genau

Gruß,
SuperWilly
Gast #1204673
>> ctrl_we
>taucht in dem Code gar nicht auf...

@Lothar:
Die Taste "e" ist Nachbar(in) der Taste "r",
also weniger Korinthenkakerei hilft manchmal weiter.

Zur Sache ein Nachtrag:

Folgendes Konstrukt wird beim Synthese-Check durch Modelsim
ebenfalls bemängelt:
1
process(Reset, Clk)
2
begin
3
    if rising_edge(Clk) then
4

5
    end if;
6

7
    if Reset='1' then
8

9
    end if;
10
end process;

Gruß,
SuperWilly
Moderator (Firma: Titel) Persönliche Seite #1204704
> @Lothar:
> Die Taste "e" ist Nachbar(in) der Taste "r",
> also weniger Korinthenkakerei hilft manchmal weiter.
Den Neben-Satz nach dem Komma hätts nicht mehr gebraucht,
der enthält keine gewinnbringende Information.
BTW: War ja nicht mein Tippfehler...   :-/

> Modelsim ist bei der Erkennung von getakteten Prozessen
> inkl. async. Reset etwas zu genau
Ja, beide Konstrukte werden bei Lattice und Xilinx anstandslos 
synthetisiert.

>Folgendes Konstrukt wird beim Synthese-Check durch Modelsim
>ebenfalls bemängelt: ...
Was macht Modelsim dann mit solchen Clock-Enable:
1
   process (clk, sel2)
2
   begin
3
      if rising_edge(clk) and (sel2='1') then
4
         :
5
      end if;
6
   end process;
7

8
   process (clk, sel3)
9
   begin
10
      if (sel3='1') then
11
         if rising_edge(clk) then
12
            :
13
         end if;
14
      end if;
15
   end process;
Die Xilinx-Synthese verdaut das...  :-o
Gast #1204805
>Was macht Modelsim dann mit solchen Clock-Enable:

@Lothar

Ja, die Synthese hat damit keine Probleme, Modelsim jedoch meckert auch
hier.

Gruß,
SuperWilly
Gast #1207610
Wenn man auf ELSIF umstellt, geht es in der TAT. Ich denke es liegt 
daran, dass er vorher nicht gesamten ELSE-Zweig als getaktet ansieht und 
sich merkt, dass dort Kombinatorik kommen kann.
Gast #1238505
Habe von Mentor eine Antwort bezüglich meiner Frage, wieso oben genannte 
Konstrukte vom Synthesis-Checker bemängelt werden,
erhalten:

Der Synthesis-Checker hat (Zitat) "limitations", die Behebung dieser
erhält eine niedrige Priorität, es sei denn ich kann driftige Gründe
nennen, wieso oben genannte Konstrukte als synthese-fähige Konstrukte
erkannt werden sollten.

Was meint Ihr dazu ? Welche wichtigen Gründe sprechen für die 
Unterstützung
solcher "vom Üblichen" abweichenden Register-Beschreibungen mit 
(a)synchroner Reset/Set-Unterstützung ?


Gruß,
SuperWilly
Moderator (Firma: Titel) Persönliche Seite #1238545
> Welche wichtigen Gründe sprechen für die Unterstützung
> solcher "vom Üblichen" abweichenden Register-Beschreibungen mit
> (a)synchroner Reset/Set-Unterstützung ?
Keiner.
Modelsim simuliert und Synplify/XST&Co synthetisieren.

Wieso sollte man an einen Hammer einen Schraubendreher anbauen?  ;-)
Gast #1238661
Naja, der Synthese-Checker in Modelsim soll unvollständige 
Sensitivitätslisten aufzeigen, um nachher keine bösen Überraschungen
in Form unterschiedlichen Verhaltens in realer Hardware und Simulation
zu erhalten.
Wenn nun jedoch Konstrukte von Modelsim bemängelt werden, die eigentlich
unproblematisch sind, dann werden die Meldungen ab einer gewissen
Anzahl unübersichtlich und sind nicht mehr hilfreich.
Hat also mit Hammer und Schraubendreher überhaupt nichts zu tun !

Gruß,
SuperWilly

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.