Forum: FPGA, VHDL & Co. bad synchronous description


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Sebastian (Gast)


Lesenswert?

Hallo,

kann mir bitte jemand sagen was an diesem VHDL-Code-Snippet falsch sein
kann:

SYNC_ON_RX_DATA: process (DATA_RX, SLR_BIT_CNT_sig)
begin
  if falling_edge (DATA_RX) and SLR_ENABLE_sig = '0' then
     SLR_ENABLE_sig <= '1';
  elsif SLR_BIT_CNT_sig = 9 then
     SLR_ENABLE_sig <= '0';
  end if;
end process;

Ich bekomme immer folgende Fehlermeldung:
Signal SLR_ENABLE_sig cannot be synthesized, bad synchronous
description.

Sebastian.

PS: Wie kann ich den Code hier VHDL bunt darstellen???
von T.M. (Gast)


Lesenswert?

vhdl in eckige Klammern für Syntax Highlightning.

So wird nen Schuh drauss:
1
SYNC_ON_RX_DATA: process (DATA_RX)
2
begin
3
  if falling_edge (DATA_RX) then
4
    if SLR_ENABLE_sig = '0' then
5
      SLR_ENABLE_sig <= '1';
6
    elsif SLR_BIT_CNT_sig = 9 then
7
      SLR_ENABLE_sig <= '0';
8
    end if;
9
  end if;
10
end process;

1. Nur der Clock kommt in die Sens.Liste
2. bei einem synchr. Prozess wird in der äusseren If Schleife nur der
Clock abgefragt
von Sebastian (Gast)


Lesenswert?

@TM
Danke für Deine Antwort. Ich hab's kapiert :-)...
von Test (Gast)


Lesenswert?

Test

[IF rising_edge(CLK) THEN
   IF enable = '1' THEN
      out <= 'H';
   ELSE
      out <= 'Z';
   END IF;
 END IF;
]
von Test (Gast)


Lesenswert?

Test

[IF rising_edge(CLK) THEN
   IF enable = '1' THEN
      out <= 'H';
   ELSE
      out <= 'Z';
   END IF;
 END IF;]
von Test (Gast)


Lesenswert?

irgendwie klappt das nicht mit dem Syntax Highlightning... ;-)
von T.M. (Gast)


Lesenswert?

[xxxx]  xxxx = vhdl
Code
[/xxxx]
von Test (Gast)


Lesenswert?

[IF rising_edge(CLK) THEN ]
von Test (Gast)


Lesenswert?

[/IF rising_edge(CLK) THEN ]
von Test (Gast)


Lesenswert?

@ TM

[xxxx]  xxxx = vhdl
Code
[/xxxx]

???

Klappt immer noch nicht.....tut mir leid, vielleicht bin ich da zu
unwissend...oder einfach nur zu Banane..... :o
von Tester 2 (Gast)


Lesenswert?

1
IF rising_edge(CLK) THEN
von Tester 2 (Gast)


Lesenswert?

[*vhdl]
IF rising_edge(CLK) THEN
[*/vhdl]
von Tester 2 (Gast)


Lesenswert?

OK, Du musst nur noch die beiden Sternchen weglassen!
von T.M. (Gast)


Angehängte Dateien:

Lesenswert?

Siehe Anhang
von Test (Gast)


Lesenswert?

Test
1
IF rising_edge(CLK) THEN
2
   IF enable = '1' THEN
3
      out <= 'H';
4
   ELSE
5
      out <= 'Z';
6
   END IF;
7
 END IF;

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