VHDL-Forum - Anfänger

Xilinx Problem

Xilinx Problem

Hallo an alle
Bin neu hier und befasse mich erst seit kurzem mit vhdl!

Habe nun leider ein kleines Problem. Wenn ich mein Programm mit Xilinx in die Hardware spielen will sagt er immer:

line 68: Signal mem_ctreset cannot be synthesized, bad synchronous description

Der dazugehörige code schaut wie folgt aus:

state: process (reset_n, ctup, ctdown, cthold, ctreset)
begin -- process state
if reset_n = '0' then
mem_ctup

Re: Xilinx Problem

Hallo freshharry.

Dein Code ist nicht synthetisierbar!
Sobald Du eine Aktion bei einer Flanke machst, kannst Du keinen Else-Zweig mehr anhängen.
Also

if reset_n = '0' then
mem_ctup <= '1';
elsif (ctup'event and ctup = '0') then
if (ctdown = '1' and cthold = '1' and ctreset = '1') then
mem_ctup <= '1';
end if;
end if;

lässt sich synthetisieren und

if reset_n = '0' then
mem_ctup <= '1';
elsif (ctup'event and ctup = '0') then
if (ctdown = '1' and cthold = '1' and ctreset = '1') then
mem_ctup <= '1';
end if;
else
... irgend etwas ...
end if;

nicht.

Es gibt (soweit ich weiß) einfach kein real existierendes Bauelement, dass diese Funktion umsetzen könnte.

Vielleicht hast Du einen Takt zur Verfügung. Mit dem kannst Du Dir die Taster mit einem Register einsampeln und dann schaun, ob sich was geändert hat: Alter Wert 0, neuer Wert 1 -> Steigende Flanke.


Ja, Du kannst mehrere Resetsignale verwenden.

Gruß DaMicha.

Re: Xilinx Problem

Hallo
Danke für die schnelle Antwort!!!

Wenn ich nun statt den elsif immer ein end if verwende und jede Abfrage extra in eine If Anweisung packe geht es dann? Oder darf ich pro Prozess nur eine Flanke abfragen?

MFG Harald

Re: Xilinx Problem

Ja, kannst Du machen. Einfach untereinander schreiben.
Also pro Flanke:

if (reset_n = '0') then
...
elsif (ctxx'event and ctxx = '1') then
...
end if;


Gruß DaMicha.

Re: Xilinx Problem

Hallo

Habe jetzt etwas verändert und die Funktion nochmals Simuliert und plötzlich habe ich diesen Fehler:

MapLib:93 - Illegal LOC on IPAD symbol "reset_n" or BUFGP symbol
"reset_n_BUFGP" (output signal=reset_n_BUFGP), IPAD-IBUFG should only be
LOCed to GCLKIOB site.

Haben die Pins für die einzelnen Ports vorgegeben daher sollt die Zuordnung passen!

Und als ich das alte Program draufspielen wollte kam folgende Meldung:

WARNING:iMPACT:2257 - Startup Clock has been changed to 'JtagClk' in the bitstream stored in memory,
but the original bitstream file remains unchanged.

Muss ich da jetzt was ändern? Habe erst einmal was auf das Board gespielt und es da hatte ich die Warunung nicht!

Danke im vorhinein!

MFG Harald

Re: Xilinx Problem

Hallo

Habe mein Program nochmals mittels Modelsim simuliert und wollte es jetzt endgültig auf der hardware testen jedoch kommt immer der Fehler:

MapLib:93 - Illegal LOC on IPAD symbol "reset_n" or BUFGP symbol "reset_n_BUFGP" (output signal=reset_n_BUFGP), IPAD-IBUFG should only be LOCed to GCLKIOB site.

Die Vorgaben der Pins wurde uns gegeben! Habe es auch schon mal versucht das Programm auf die HArdware zu bekommen! Habe seit diesen Zeitpunkt nichts entscheidentes geändertaber plötzlich war dieser Fehler da!

Wäre super wenn mir wer helfen könnte! DANKE

MFG Harald

Re: Xilinx Problem

Das liegt daran, dass du das reset-Signals als Takt verwendest (du fragst seine Flanke ab) und deshalb muss es auf einen Takteingang gelegt werden. Alles andere produziert in den neueren ISE-Versionen Fehler.

Re: Xilinx Problem

You understand how difficult the choice is for the user, how difficult it is to give preference to a particular advertiser. Your ad could be better and more effective than the rest. But for this you need to pay attention to a number of factors. One of them is competent analytics and advertising campaign management.