Hallo, wie lange dauert es in etwa, bis ein FPGA von einem externen ROM seinen Initialzustand geladen hat? Ich moechte eine PC-Erweiterungskarte bauen, die schon direkt beim Einschalten in der Lage ist, via Memory Mapping Daten in den Adressraum einzublenden. Klassischerweise nimmt man dazu ja ein paralleles ROM und knueppert das mit etwas Logik an den Bus. Da ich aber mehr Funktionalitaet brauche (dafuer das FPGA) war meine Ueberlegung, ob ich nicht auch das Memory Mapping ueber das FPGA erschlagen kann....nur muss das Teil ja selber erst initialisiert werden. Wenn es zu spaet fertig ist, dann kommt das Memory Mapping zu spaet und der PC wird das ROM nicht erkennen :/ Danke fuer ein paar Kommentare! Joerg
Datenblätter der Hersteller. Ich kann nur für Actel ProAsic FPGAs sprechen, und die sind schnell genug oben, um am Rechner zB als PCI-Device erkannt zu werden, dazu gehören ja auch direkt am Start Zugriffe auf den Configspace des Pci-Cores. Sind aber Flashbasierte FPGAs, die beim Start nicht erst geladen werden müssen.
Das Open Graphics Project hatte genau damit mal Probleme, weil deren FPGA nicht schnell genug oben war. Evtl findest du bei denen Info: www.opengraphics.org/. Hab hier aber schon gesagt bekommen dass das nicht mehr zwangsläufig ein Problem ist. Ansonsten bist du mit den Flashbasierten Sachen auf der Sicheren Seite. Manche FPGAs haben Flash drin, ansonsten CPLDs (die sind fast immer Flash-basiert). Da brauchst du dann außerdem kein externes config-ROM mehr.
Danke fuer den Hinweis auf die Flash-basierten FPGAs. Da waere dann ja auch weniger zu loeten :) Joerg
Bietet PCI keine Möglichkeit den Start des Rechners oder zumindest die PCI-Erkennung zu verzögern, bis die Karte initialisiert ist? Ich kann mir irgendwie sonst nicht vorstellen, dass alle anderen Karten am Markt mit jeder Rechnergeschwindigkeit klarkommen.
Je nach Komplexizität dauert das. Zum Beispiel ein Spartan 3E-250 gut zur Hälfte befüllt, per Master Serial aus dem Platform Flash: etwa 2,5 Sekunden. Ein Virtex 4-LX40, auch etwa zur Hälfte voll, gleiche Bootmethode etwa 4,5 Sekunden. CoolRunner2 512 volles Design benötigt immerhin nur knapp 300ms etwa. Gibts an dem Bus keine Busy oder Ready Leitung?
Leider keine ready-Leitung o.ae., daher meine Frage...sonst haett ich die benutzt. Ist im Prinzip XT bus.
Nimm einem flashbasierten FPGA von Actel oder Lattice, und du hast keine Probleme. Die sind wie dafür gemacht, XT Bus klingt auch nicht nach extremen Timingforderungen (womit der Actel zB seine Probleme hat). Vorteil des Lattice ist, dass der Konfigurationsspeicher flashbasiert ist, die Logik jedoch wie bei Xilinx SRAM-basiert. Das heisst, er lässt ähnliche Taktfrequenzen zu wie Xilinx/Altera, ist kommt aber ohne externen Konfigurationsspeicher aus und ist schneller hochgefahren. Vorteile der Actel FPGAs liegen allgemein im bedeutend niedrigerem Strombedarf und in der Resistenz gegen Fehler durch elektromagnetische Strahlung.
Die flash basierten FPGAs sind schon arg winzig, letztlich haengt die ganze Sache davon ab welchen "Bus" die Karte nutzen soll und was fuer ein FPGA es sein soll. Aber im Endeffekt ist es keinerlei Problem einen FPGA schnell genug zu konfigurieren, um sicher zu gehen dass es schnell genug ist sollte man aber nicht seriell konfigurieren. Und natuerlich sollte man in der Spec nachschlagen wieviel Zeit man hat. (Natuerlich wird die Spec von den Boards nicht richtig implementiert.)
Ich weiß ja nicht, was du mit winzig meinst, aber ich finde 3Mio Gatter und 75.000 Register beim ProAsic3E-3000 nicht so wenig. Hier gilt das Prinzip, man wähle den Baustein nach Analyse der Aufgabe. Da die meisten jedoch noch nie mit etwas anderem ausser Xilinx oder Altera in Berührung gekommen sind, ist die Sicht dementsprechend eingeschränkt. Für die oben genannte Aufgabe wäre ein ProAsic von Actel so ziemlich ideal. Wenn man natürlich Zeit hat, sich mit etweigen Problemen bei der Konfiguration rumzuschlagen, kann man auch nen Spartan3 oder so nehmen.
ProAsic3E-3000 ,ich kann jetzt noch genau abschaetzen wie gross der Actel ist, aber ich seh als Nachteil, dass die Teile nichtmal SERDESe haben und nur 504 kBit RAM. Also weit weg von einem grossen high performance FPGA, wie es sie von Altera und Xilinx gibt. (Lattice sind nur auf Papier oder im Webbrowser toll) Aber vielleicht reicht der Platz ja. Es gibt scheinbar einige Nutzer von PCIe mit Spartan3, dafuer gibt es auch Eval Boards. Der Interessante Punkt ist, dass man einen externen PHY fuer den Spartan3 braucht, weil er keine integrierten SERDESe hat. Dieser PHY implementiert (wenn ich das richtig verstanden habe) dann auch low level Teile von PCIe und gibt einem extra Zeit beim starten. Also bei PCIe hat man 100µs. Ich weiss allerdings nicht ob der PCIe core von xilinx ordentlich funktioniert oder ob man timing Probleme hat.
@Christian R.: Der Füllgrad des FPGAs sollte eigentlich nichts mit der Konfigurationszeit zu tun haben. Die Bitfiles haben (im Prinzip) immer die gleiche Größe und nicht genutzte Blöcke müssen mit Null initialisiert werden. Das stimmt natürlich nur solange, wie die Konfigurationsdaten nicht komprimiert werden. Rick
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.