FPGA BlockRAM mittels JTAG auslesen

Gast #3114974
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
Gast #3115283
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
Gast #3115649
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?
Gast #3116393
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren