Hallo, ich möchte herausfinden wie ein 32Bit breites SDR-SDRAM (ESMT M12L128324A) an ein XC6SLX9 angeschlossen ist. FPGA und RAM sind leider BGA und die Platine ist mehrlagig. Bei SDR (single data rate) wird ja der eingebaute Memory Controller nicht benutzt, sonst wärs ja relativ einfach. Die einzige Möglichkeit, die ich im Moment sehe ist das Ram auslöten und über Boundary Scan die Verbindungen suchen. Oder gibt es eine Möglichkeit die Konfiguration eines FPGA auszulesen und daraus irgendwie ein UCF File zu generieren ?. Hat jemand noch eine bessere Idee ?
Hans-Georg Lehnard schrieb: > ich möchte herausfinden wie ein 32Bit breites SDR-SDRAM > (ESMT M12L128324A) an ein XC6SLX9 angeschlossen ist. Ähm. Ich würde in den Schaltplan gucken. > Oder gibt es eine Möglichkeit die Konfiguration eines FPGA auszulesen Auslesen sollte gehen. Wie wird denn das FPGA kofiguriert? > und daraus irgendwie ein UCF File zu generieren ? Ein UCF wird da aber nicht rausfallen.... Duke
Hans-Georg Lehnard schrieb: > Oder gibt es eine Möglichkeit die Konfiguration eines FPGA auszulesen > und daraus irgendwie ein UCF File zu generieren ?. Wenn der Hersteller das nicht gesperrt hat ja. Sperren geht sinnvoll nur mit Platform Flash. Aber aus dem Bit-File kannst du keine Design-Daten herausbekommen. Das wäre ja noch schöner. Es gab mal eine Diplom- oder Doktor-Arbeit, wo versucht wurde, Bit Files von alten Virtex II o.ä. zurück zu wandeln. Soweit ich mich erinnere hat das aber auch nur teilweise geklappt.
Duke Scarring schrieb: > Hans-Georg Lehnard schrieb: >> ich möchte herausfinden wie ein 32Bit breites SDR-SDRAM >> (ESMT M12L128324A) an ein XC6SLX9 angeschlossen ist. > Ähm. Ich würde in den Schaltplan gucken. > Leider habe ich den Schaltplan nicht und er ist auch nicht vom Hersteller zu bekommen ;) >> Oder gibt es eine Möglichkeit die Konfiguration eines FPGA auszulesen > Auslesen sollte gehen. Wie wird denn das FPGA kofiguriert? > >> und daraus irgendwie ein UCF File zu generieren ? > Ein UCF wird da aber nicht rausfallen.... > Mir würde die Information, wie die IOs configuriert sind schon einmal weiterhelfen und das ich das UCF File selbst von Hand erstellen muss ist klar .
Christian R. schrieb: > Hans-Georg Lehnard schrieb: >> Oder gibt es eine Möglichkeit die Konfiguration eines FPGA auszulesen >> und daraus irgendwie ein UCF File zu generieren ?. > > Wenn der Hersteller das nicht gesperrt hat ja. Sperren geht sinnvoll nur > mit Platform Flash. > Aber aus dem Bit-File kannst du keine Design-Daten herausbekommen. Das > wäre ja noch schöner. Es gab mal eine Diplom- oder Doktor-Arbeit, wo > versucht wurde, Bit Files von alten Virtex II o.ä. zurück zu wandeln. > Soweit ich mich erinnere hat das aber auch nur teilweise geklappt. Manchmal hilft denken ;) Das Board hat kein Flash und das FPGA wird über den FX2 geladen. Da kann ich auch direkt nach dem Bitfile auf der Platte bei den Treibern suchen. Und du meinst bestimmt diese Arbeit: http://www2.uni-frankfurt.de/40067115/2011_-_Design_and_Implementation_of_an_Object-Oriented_Framework_for_Dynamic_Partial_Reconfiguration__Abel_.pdf Da wird die Bitstream Komposition beschrieben, vielleicht ein Ansatz ...
Hans-Georg Lehnard schrieb: > Mir würde die Information, wie die IOs configuriert sind schon einmal > weiterhelfen und das ich das UCF File selbst von Hand erstellen muss ist > klar . Die kriegt man aber auch nicht aus dem Bit File wieder heraus. Du musst wohl oder übel physisch da ran.
Hans-Georg Lehnard schrieb: > Hallo, > > ich möchte herausfinden wie ein 32Bit breites SDR-SDRAM > (ESMT M12L128324A) an ein XC6SLX9 angeschlossen ist. > FPGA und RAM sind leider BGA und die Platine ist mehrlagig. > Bei SDR (single data rate) wird ja der eingebaute Memory Controller > nicht benutzt, sonst wärs ja relativ einfach. > > Die einzige Möglichkeit, die ich im Moment sehe ist das Ram auslöten und > über Boundary Scan die Verbindungen suchen. Man könnte auch Chipscope / Vio einbauen und die leistungsaufnahme des SDRAM überwachen (Shunt an Stromversorgung oder IR- Kanera). Dann legst du an alle "verdächtigen" FPGA-Pins bis auf eins einen Takt und an das eine Pin ca 1s lang 1 oder 0. geht die Stromaufnahme in die Höh, hast du CLKE gefunden. jetzt schaltest du von allen anderen Pins nach und nach den takt weg bis der Stromverbrauch sinkt - du hast CLK gefunden. Es lohnt sich auch die IO-Spannungen an den FPGA zu prüfen. Die Bänke die nicht an 3V3 hängen, werden es nicht sein. beim Spartan6 gibt es noch Einschränkungen bezüglich local clocking, das könnte die Auswahl auch einschränken. Terminierungswiderstände könnten auch einen Tip geben wofür die Leitung benutzt wird. Ebenso Pull-Widerstände in der Nähe des sdrams, da könnte einer an CLKE sein, dann siehst du im FPGA an dieser Stelle eine fixe '1'. Manchmal setzt man in die Taktleitung einen kleinen serienwiderstand (22 Ohm) um die EMV durch verschleifen der Flanken zu verbessern. Ist aber bei Hi-Speed eher unwahrscheinlich. "Interessante" leitungen (wie ras/cas/clk) haben gern vias, damit man bei der InBetriebnahme des PCB direkt messen kann. Also mal alle Vias oder Testpunkte am SDRAM per scope anschauen. Dann könnte man dort kurze Pulse reinjagen und schauen an welchen FPGA-Pin die ankommen. MfG,
Christian R. schrieb: > Die kriegt man aber auch nicht aus dem Bit File wieder heraus. Wenn man einen Weg findet, aus dem Bit-File ein ncd-File zu erzeugen, könnte man dieses im FPGA-Editor öffnen. Dort findet sich dann auch "relativ komfortabel" die Einstellung für die IO. Duke
Ich muss mich korrigieren, es sitzt noch ein SPI 8Mbit (MX25L8006E)Flash im auslötbarem Gehäuse auf dem Board. Dieser Chip hat aber HW Protect und da muss ich erst mal schauen ob das aktiviert ist. @Fpga Kuechle Meine Chipscope Version ist leider auf den Zynq beschränkt. Aber es gibt ja diese Register, die sowohl von JTAG als auch von der FPGA Logik angesprochen werden können da kann man bestimmt ein Chipscope für "arme" selbst stricken. Jetzt such ich erst mal mein Jtag Kabel zusammen ;)
Hans-Georg Lehnard schrieb: > @Fpga Kuechle > Meine Chipscope Version ist leider auf den Zynq beschränkt. > > Aber es gibt ja diese Register, die sowohl von JTAG als auch von der > FPGA Logik angesprochen werden können da kann man bestimmt ein Chipscope > für "arme" selbst stricken. Da gibbets diesen Fred: Beitrag "Logic Analyzer im FPGA via JTAG" MfG,
Mit JTAG bzw. dem Bit-File kriegst du ja nur die IO-Konfig raus, aber ob dir das bei deinem SDRAM-Chip weiterhilft? Evtl. sind alle SDR-Pins BIDIR-Pins... Ich hatte vor ein paar Monaten ein Virtex2-FF980 mit SSRAM, die restlichen Pins alle auf 2 grosse IO-Stecker. Falls alle FPGA-Pins auf der Unterseite zugänglich sind: Im ersten Schritt habe ich die CE-Leitungen zum SSRAM gesucht (ging rel. schnell, ist der "grosste" Teil der Arbeit). Dann habe ich eine kleine UART-Komponente geschrieben und jedem Pin ausser den CE-Pins eine ID zugeordnet. Per Messspitze habe ich dann an allen SSRAM-Pins und IO-Pins diese ID abgelesen und so meine UCF-Datei erstellt (ging ebenfalls recht schnell, glaube so um die 1-2 Stunden).
Wenn man an das FPGA ankommt, kann man ein Leer-Image draufspielen, bei dem man immer nur einen Ausgang treibt und liest, um die Leitungsimpedanz zu messen. Die RAM-Bus-Daten müssten sich da deutlich von den Steuersignalen abheben. Ich halte das gesamte Vorgehen aber dennoch für abenteuerlich. Bei den ganzen möglichen Konfigurationen dürfte das Suchen der richtigen Kombi ins Nirvana führen. In der Zeit kann man die Platine neu bauen!
Sigi schrieb: > Mit JTAG bzw. dem Bit-File kriegst du ja nur die IO-Konfig raus, > aber ob dir das bei deinem SDRAM-Chip weiterhilft? Evtl. sind alle > SDR-Pins BIDIR-Pins... > Wenn ich aus dem Konfig File die bidirektionale IO des RAMs finde sind das schon mal 32 Leitungen ;) > Ich hatte vor ein paar Monaten ein Virtex2-FF980 mit SSRAM, die > restlichen Pins alle auf 2 grosse IO-Stecker. Falls alle FPGA-Pins > auf der Unterseite zugänglich sind: Im ersten Schritt habe ich die > CE-Leitungen zum SSRAM gesucht (ging rel. schnell, ist der "grosste" > Teil der Arbeit). Dann habe ich eine kleine UART-Komponente > geschrieben und jedem Pin ausser den CE-Pins eine ID zugeordnet. > Per Messspitze habe ich dann an allen SSRAM-Pins und IO-Pins diese > ID abgelesen und so meine UCF-Datei erstellt (ging ebenfalls recht > schnell, glaube so um die 1-2 Stunden). Es ist kein Pin der BGAs zugänglich.
Xilinx Phreak schrieb: > Wenn man an das FPGA ankommt, kann man ein Leer-Image draufspielen, bei > dem man immer nur einen Ausgang treibt und liest, um die > Leitungsimpedanz zu messen. Die RAM-Bus-Daten müssten sich da deutlich > von den Steuersignalen abheben. > Ich kann am RAM ohne es auszulöten leider nichts messen, aber wahrscheinlich wird mir nichts anderes übrig bleiben. > Ich halte das gesamte Vorgehen aber dennoch für abenteuerlich. > Bei den ganzen möglichen Konfigurationen dürfte das Suchen der richtigen > Kombi ins Nirvana führen. > > In der Zeit kann man die Platine neu bauen! Ich will ja die Platine nicht nachbauen ! Sondern einfach eine vorhandene Platine zweckentfremden ..
Hans-Georg Lehnard schrieb: > Wenn ich aus dem Konfig File die bidirektionale IO des RAMs finde sind > das schon mal 32 Leitungen ;) Das geht aber definitiv nicht, glaub´s doch endlich. Das Format der Bitstreams sind gut gehütete Geheimnisse der FPGA Hersteller. Hätte auch keinen Sinn, denn nach dem Routing sind nahezu keine Signalnamen aus dem Design mehr vorhanden. Bleibt nur RAM auslöten und z.B. mit einem Boundary Scan Tool* jeden Pin setzen und am RAM messen, welcher wo dazu gehört. * z.B. das hier: http://wesche.we.ohost.de/Homepage/Version_3/index.php?section=PC_Delphi_FT2232_JTAG.html
:
Bearbeitet durch User
Hans-Georg Lehnard schrieb: > Sigi schrieb: > Es ist kein Pin der BGAs zugänglich. Was nicht heisst, das keines der Signale zugänglich ist. Schau doch mal nach Vias oder Bauelementen nahe oder unter dem SDRAM. Bspw. liegen immer Koppel-C zwischen Vcc und GND, somit sind diese BGA-Pins "zugänglich". Ebenso braucht es durchkontaktierungen um die Signale von den landing-Pads für das BGA in die Signal-layer des PCB's zu bringen. Das können zwar blind vias (Sacklöcher) sein, mußen aber nicht. Es kann gut sein das die Rückseites des PCB's ("gegenüber" des SDRAMs/FPGAs) fein gelöchert ist wie ein Schweizer Käse. Dann hast du zu jedem Pin/Landing Pad ein Via an dem du messen kannst. Bsp.: http://saturnelectronics.com/images/product/finepitchbga/finepitchbga2.jpg MfG,
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.