Hallo! Ich habe vor, auf den BlockRAM meines Spartan 6 zuzugreifen und habe rausgefunden, dass das mti den Cores geht. Ich habe mit dem ISE Webpack jetzt auch erfolgreich einen Core generiert, habe aber keine Ahnung, wie man jetzt drauf zugreift. Wenn ich die Core-Datei markiere, kann ich die Wrapper-Datei anzeigen, aber wie greife ich auf die in VHDL zu? Muss ich sie kopieren und als vhdl datei ins Projekt einfügen? Kann ich auf den BlockRAM auch anders zugreifen? MFG Leon
Leon Loeser schrieb: > Wenn ich die Core-Datei markiere, kann ich die > Wrapper-Datei anzeigen Du meinst das Instantiierungs-Template (*.vho), oder? Das ist in der Tat dazu gedacht, dass du die Deklaration und die Instantiierung in eine VHDL-Datei deines Projekts kopierst und dort so viele Instanzen des BlockRAM erzeugst, wie du benötigst. Leon Loeser schrieb: > Kann ich auf den > BlockRAM auch anders zugreifen? Wahrscheinlich schon. Du kannst es z.B. auch ganz ohne IP-Generator "von Hand" beschreiben. Aber was stört dich an der vorgesehenen Methode?
ok, das core hat scheinbar ein "HDL functional model" und ein "HDL instantiation template" und die sind beide in verilog. wie kann ich die denn in vhdl instanzieren? EDIT: ok, wenn man die preffered language auf vhdl stellt, macht er auch VHDL dateien^^ Aber wie "use" ich diese teile in meiner haupt vhdl datei?
:
Bearbeitet durch User
Einfach die Component aus dem generierten instanciation template (*.vho datei) in die vorgesehene *.vhd kopieren und port map machen ist das einfachste...
Leon Loeser schrieb: > Aber wie "use" ich diese teile in meiner haupt vhdl datei? So wie du auch jede andere component benutzt: du setzt die Komponentendeklaration in den Header, und du erzeugst im body die benötigten Instanzen und verbindest sie mit Signalen. Hast du den Reichardt/Schwarz? -> Kapitel 7.2: Struktureller Entwurf mit Komponenten und Blöcken. In jedem anderen VHDL-Buch sollte es auch beschrieben sein.
ich bin relativ neu in vhdl und dem ganzen fpga kram, deshalb hatte ich keine ahnung von components, sorry^^ Soviel ich jetzt verstanden habe, kopiere ich die "COMPONENT" bis "END COMPONENT" stelle in meiinen architecture header und lege nach dem "begin" das instantiation template hin. in dem ändere ich den "your component name" in was brauchbares und setze die passenden signale hinter die zuweisungspfeile (=>)?
Welchen Vorteil soll es haben, für RAM explizit die herstellerspezifischen Primitiven zu verwenden? Das macht den Code nur unportabel. Probleme mit der Inferenz hat man bei sinnvoller allgemeiner Beschreibung von RAM nicht.
drama schrieb: > Welchen Vorteil soll es haben, für RAM explizit die > herstellerspezifischen Primitiven zu verwenden? Für einen Anfänger, der sich noch mit der Instanziierung einer Komponente schwertut, ist die Nutzung des IP-Generators imho schlicht einfacher umzusetzen. Die mangelnde Portierbarkeit stellt bei diesen Randbedingungen aus meiner Sicht auch keinen relevanten Nachteil dar - er ist wahrscheinlich einfach froh, wenn es auf seinem vorhandenen System läuft.
Achim S. schrieb: > drama schrieb: >> Welchen Vorteil soll es haben, für RAM explizit die >> herstellerspezifischen Primitiven zu verwenden? > > Für einen Anfänger, der sich noch mit der Instanziierung einer > Komponente schwertut, ist die Nutzung des IP-Generators imho schlicht > einfacher umzusetzen. > > Die mangelnde Portierbarkeit stellt bei diesen Randbedingungen aus > meiner Sicht auch keinen relevanten Nachteil dar - er ist wahrscheinlich > einfach froh, wenn es auf seinem vorhandenen System läuft. 'drama' schrieb von Inferieren, nicht Instanziieren... Ein Blick in das Synthese-Guide des jeweiligen Tools/Herstellers zeigt, wie man das in purem VHDL oder Verilog machen kann. Das ist nur ein bisschen Copy&Paste...
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.