Forum: FPGA, VHDL & Co. bad synchronous description


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.