Hallo zusammen, ich habe eine praktische Frage zu Chipscope. Wie gehe ich am besten vor, wenn ich mit Chipscope z.B. 20 Eingänge eines FPGAs aufzeichnen möchte. Diese Eingänge sind bislang noch nicht mit der Logik im FPGA verbunden und deswegen kann ich diese in Chipscope nicht verwenden. Weise ich die Eingänge beispielsweise LEDs zu dann kann ich ja die LED Signale anstelle der Eingänge verwenden. Ich frage mich, ob es nicht eine einfachere Lösung gibt. Vielen Dank. Gruß Steffen
Steffen Mauch schrieb: > Ich frage mich, ob es nicht eine einfachere Lösung gibt. Einfach auf ein paar Register eintakten und irgendwas damit machen, damit das nicht rausoptimiert wird...
Ich hab es immer so gemacht, dass ich beispielsweise die Eingänge in einer if else Verzweigung abgefragt habe und je nach dem eine LED gesetzt habe. So konnte ich die gewünschten Eingänge auf Chipscope darstellen. Cihan
Steffen Mauch schrieb: > Weise ich die Eingänge beispielsweise LEDs zu dann kann ich ja die LED > > Signale anstelle der Eingänge verwenden. > > > Ich frage mich, ob es nicht eine einfachere Lösung gibt. > > Vielen Dank. Du hast im FPGA-Editor weitreichende Möglichkeiten einzugreifen. Eine IO-Zelle aus dem Defaultuzstand einem Signal zuzuweisen müsste funktionieren. Am ILA Eingänge umzuhängen ebenfalls. Solltest Du allerdings die neu aufzulegenden ILA Eingänge im synthetisierten Design noch nicht genutzt haben, so hat dir die ISE die Triggerei der Eingänge wegoptimiert. Im besten Falle könntest Du die Daten zum Captern dann direkt an die ILA Rams legen...
Hä? Wieso so umständlich? Einfach den ChipScope als Core im ISE generieren und dann instanziieren. Dann sind die Eingänge mit dem ChipScope verbunden und werden auch nicht wegoptimiert.
Man kann die Signale mit dem Attribut keep=true versehen, damit sie im chip scope planer auch auftauchen.
1 | architecture arch of doedel is |
2 | |
3 | signal int_clk1 : std_logic; |
4 | ...
|
5 | |
6 | signal clk_counter1: std_logic_vector ( 7 downto 0) := (others => '0'); |
7 | ...
|
8 | |
9 | attribute S: string; |
10 | |
11 | attribute S of clk1 : signal is "TRUE"; |
12 | attribute S of clk_counter1 : signal is "TRUE"; |
13 | ...
|
14 | |
15 | begin
|
Man muss da nichts mit nichts verdrahten, um die Signale zu behalten. Man muss sich nur Gedanken machen, wie sie heissen sollen, da man nicht identische Kopien von Signalen gleichzeitig behalten kann. (ChipsScope denkt da an dieser Stelle leider physikalisch).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.