Forum: FPGA, VHDL & Co. FPGA BlockRAM mittels JTAG auslesen


von kyrel (Gast)


Lesenswert?

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

von Duke Scarring (Gast)


Lesenswert?

Ja, das müßte gehen.
Schau mal ob Du mit impact und der readback-Funktion weiterkommst.

Duke

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Xilinx macht das doch auch beim ChipScope...

von Strubi (Gast)


Lesenswert?

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von Mirco (Gast)


Lesenswert?

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?

von Strubi (Gast)


Lesenswert?

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

von Mike (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.