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
Gast
#4012078
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?
Gast
#4012116
Einfach die Component aus dem generierten instanciation template (*.vho datei) in die vorgesehene *.vhd kopieren und port map machen ist das einfachste...
Gast
#4012120
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 (=>)?
Gast
#4012132
richtig. Und morgen gehst du in die Bücherei und holst dir ein brauchbares VHDL-Buch ;-)
Gast
#4012208
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.
Gast
#4012329
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.
Gast
#4012594
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...
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.