Hallo zusammen, ist es möglich Daten im FPGA, genauer im BlockRAM mittels JTAG auszulesen? Oder muss ich mich um eine entsprechende Schittstelle kümmern, die die Daten ausgibt (UART etc.)? Ich will sehen, ob Daten im BlockRAM sind und die idealweise über JTAG auslesen und in eine Datei kopieren. Ist das so möglich? Wenn ja, welche Stichworte gibt es dazu, um mich da einzuarbeiten? Danke und viele Grüße
Ja, das müßte gehen. Schau mal ob Du mit impact und der readback-Funktion weiterkommst. Duke
Moin, > > ist es möglich Daten im FPGA, genauer im BlockRAM mittels JTAG > auszulesen? Oder muss ich mich um eine entsprechende Schittstelle > kümmern, die die Daten ausgibt (UART etc.)? > Du musst ein internes "Boundary Scan"-Register implementieren. Dazu gibt es bei den üblichen FPGAs einige USER-Instructions, zB. bei den Spartan-Serien USER1, uSER2, ... Mit zwei User-Registers kannst Du schon mit sehr simpler Logik RAM auslesen (USER1=Adresse, USER2=Daten). > Ich will sehen, ob Daten im BlockRAM sind und die idealweise über JTAG > auslesen und in eine Datei kopieren. > > Ist das so möglich? Wenn ja, welche Stichworte gibt es dazu, um mich da > einzuarbeiten? > Erst mal musst Du Dir die JTAG-Primitiven deiner Architektur genau angucken und die Shift-Register-Logik für die Datenregister entsprechend der JTAG-User-Instruction implementieren. Faktisch baust Du Dir auf die Weise genanntes "Chip-Scope". Das mag ein bisschen Terz sein, aber ich habe mir das auch gegeben, um ein herstellerunabhängiges Trace-Tool zu haben (hat sich schnell amortisiert) Die Daten kann man relativ leicht im Wave-Format ausgeben. Bisschen Info dazu auch hier (englisch): http://tech.section5.ch/news/?p=267 Dazu kommt auf PC-Seite eine JTAG-Toolchain, da gibt es aber eine Menge Implementierungen auf Basis der beliebten FT2232(H)-Chips. Grüsse, - Strubi
Strubi schrieb: > Faktisch baust Du Dir auf die Weise genanntes "Chip-Scope". Dafür wird dann aber der 2. Port des DPRAM verwendet. Wenn also schon beide Ports im Design verbraten sind, dann muss ein Multiplexer her...
Nun, da man das RAM sowieso nicht in Echtzeit auslesen kann, muss man die Daten ja in den eigenen Bereich überspielen. Ich baue mir immer ein Spiegel-RAM fürs Chipsscope. Das löst dann auch Timingprobleme. Auf diese Weise wäre es auch manuell zu machen. Strubi schrieb: > herstellerunabhängiges Trace-Tool zu haben Darüber hae ich auch schon nachgedacht , aber da fehlt mir das Knowow. Ich gehe nicht davon aus, dass Du das tool so einfach rausgibts, oder? Wie liest Du die daten dann aus? Welche Software (ich nehme an ein PC) holt die Daten über JTAG?
Hi Mirco, das Tool ist für aussenstehende nicht wirklich benutzbar, da ohne GUI, höchst undokumentiert und jeweils auf das Problem angepasst. Ich habe da teils auch noch einen kleinen Soft-Core dazwischen, da wird relativ langsam und ineffizient per ICE das RAM ausgelesen, deswegen läuft das jetzt alles über eine Emulations-Library und einen "Standard Test Access Port". Das Gesamt-Konzept ist dokumentiert, kann Dir bei Interesse gerne einen Link schicken. Grüsse, - Strubi
Da hätte ich auch daran Interesse. Gfs könnte ich eine GUI dafür schreiben (?)
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.