Forum: FPGA, VHDL & Co. Libraries einbinden?


von Michael (Gast)


Lesenswert?

Hallo,

es gibt von Xilinx ein lib.pdf. Darin sind viele nützliche Sachen
definiert. Leider habe ich keine Idee wie ich die Komponenten in meinem
VHDL Code implementieren kann.

Z.B.
-- PULLDOWN: I/O Buffer Weak Pull-down
-- All FPGA, CoolRunner-II
-- Xilinx HDL Libraries Guide version 7.1i

PULLDOWN_inst : PULLDOWN
port map (
O => O -- Pulldown output (connect directly to top-level port)
);
-- End of PULLDOWN_inst instantiation

Vielleicht kann mal jemand eine laufendes Beispiel ins Netz hängen. Ich
wäre sehr dankbar... Bzw. eine Dokumenten-Quelle angeben, in der die
Einbindung auch beschrieben wird...

Danke schon mal,
Michael

von Chris (Gast)


Lesenswert?

Hallo Michael,

hast du schon einmal versucht genau diesen Codeschnipsel einzubinden?
Das Synthesetool sollte dann eine "black box" erzeugen, die später
beim Mapping auf die entsprechend Hardware abgebildet wird.

/Chris

von FPGAküchle (Gast)


Lesenswert?

Einen PullDown kannst du auch bequem (keine neusynthese) per ucf file
einbinden:

NET  "ID0P"  LOC = "A4"  | IOSTANDARD = LVCMOS33 | PULLUP;

                       ^^^Pinbezeichner für dieses Signal
         ^^^^ Signalname wie in Top entity

von Christian (Gast)


Lesenswert?

probier mal:

library UNISIM;
use UNISIM.VComponents.all

einzubinden.


Mfg
Christian

von Michael (Gast)


Lesenswert?

Hallo nochmals,

@FPGAküchle
Danke für den Tip den PULL_UP einfach im UCF File anzugeben. Und vor
allem für die Syntax ;-)

Ich habe mal eine "OR2"- Component aus der library UNISIM
eingebunden. funktioniert im Synthesis XST. Allerdings bekomme ich
immer folgende Warnung:

Generating a Black Box for component OR2.

Kann ich diese Warnung einfach übergehen, oder muss ich da noch was
programmieren??

Danke für Euren Einsteiger-Support,
Michael

von FPGAküchle (Gast)


Lesenswert?

<Ich habe mal eine "OR2"- Component aus der library UNISIM
<eingebunden. funktioniert im Synthesis XST. Allerdings bekomme ich
<immer folgende Warnung:

<Generating a Black Box for component OR2.

Das muss so sein, Black Box heisst für den XST, "ich habe hier ein
Module von dem ich kein VHDL (oder netzliste ) habe, ich kann es nicht
überprüfen". Das ist ganz normal, da du es ja aus der Bibliothek
nimmst und nicht in VHDL Verhaltensbeschreibst. Ein nachfolgendes Tool
z.B. ngdbuilt fügt dann für dieses Element die netzliste ein. Gibt
es diese nicht sind map(FPGA)/cpldfit(CPLD) dran. Die stellen fest, das
es das Element OR2 im Silizum gibt und verwenden dieses. Wenn nicht,
bricht hier die Toolchain mit Error ab.
-> Läuft trotz "Black Box" alles durch, ist alles OK
-> Bricht die Toolchain später ab, stimmen Suchpfade nicht, das Module
   ist falsch geschrieben oder es gibt es nicht für diesen FPGA/CPLD
Typ.

von Christian (Gast)


Lesenswert?

Hallo,

hier nen kleines Beispiel wie du die Blackboxwarnings wegbekommst:

attribute box_type: string;

component and2 is
port(
i0: in std_logic;
i1: in std_logic;
o:  out std_logic
);

end component and2;

attribute box_type of and2 : component is "BLACK_BOX";


Mfg
Christian

von Michael (Gast)


Lesenswert?

Hallo,

@FPGAküchle
Danke für die super Erklärung.

@Christian
Super werde ich sobald wie möglich mal ausprobieren.

Michael

von anderer Michael (Gast)


Lesenswert?

@ FPGAküchle

Ich benutze auch Module aus der Bibliothek. Diese sind auch extra für
den verwendeten FPGA-Typ vorgesehen. Das Erzeugen eines Bit-Files
funktioniert auch, jedoch habe ich Probleme mit der Simulation. Dort
bricht er immer ab, weil er die Simulationsfiles nicht finden kann. Was
kann ich dagegen machen?

Habe schon versucht die unisim oder simprim in die Testbench mit
einzubinden. Dies hat jedoch nicht funktioniert.

Was mache ich falsch?

Grüsse

Michael

von FPGAküchle (Gast)


Lesenswert?

>attribute box_type of and2 : component is "BLACK_BOX";

Xilinx will den Wert "BLACK_BOX" in Zukunft abschaffen und empfiehlt
dafür "PRIMITIVE".

also

 attribute box_type of and2 : component is "PRIMITIVE";

Die Wirkung ist dieselbe.

von FPGAküchle (Gast)


Lesenswert?

Ohne die Bibliotheken geht die Simu nicht. Was geht den schief?
(Cut+Paste der Fehlermeldung hier)

Ich schätze die Bibliotheken sind noch nicht compiliert. schau mal
im Libraray browser ob die Bibliotheken angezeigt sind und ob was drin
ist. (sollten hunderte von Elementen sein). Wenn nicht musst Du die
Bibliotheken erst compilieren. Ich nehm dazu das kommandenzeilentool
compxlib. Xilinx liefert des als binary im Webpack mit. Vielleicht hat
hier auch einer einen Tip wie's bequemer geht.

von anderer Michael (Gast)


Angehängte Dateien:

Lesenswert?

Fehlermdelung lautet:

"[Warning]  S_RAM.SchDoc(106)  VHDL Simulator  ($C0007) : Unbound
instance U1 of component RAMB16_S4_S4"

"VHDL Simulator  ($L0188) : The architecture stimulus has unbound
generics or instantiations."

von anderer Michael (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mal einen ganz einfachen Schaltplan entworfen und davon einen
Screenshot gemacht. Zudem habe ich die Testbench mit online gestellt.

Wenn ich die Module aus der Bibliothek einfüge, dann habe ich doch
schon eine Instanz erzeugt oder liege ich da falsch?

von anderer Michael (Gast)


Lesenswert?

Ich habe mal die Bibliothek aus der ich die Bauteile habe mit wordpad
geöffnet. Da stehe wilde Zeichen drin. Benötige ich extra ein
Simulationsbibliothek?

von anderer Michael (Gast)


Lesenswert?

Jetzt habe ich einen Ordner im Installationsverzeichnis gefunden der
heißt "Edif" dort sind mit zip gepackte Datei drin. Braucht man die
für die Simulation

von FPGAküchle (Gast)


Lesenswert?

EDIF eher nicht ...
Schaumal unter vhdl/src im Installationsverzecihniss, da stehen die
Dateien. Den vermisstes RAMB16_S4_S4 beispielsweise steht u.a. in der
Datei unisim_vcomp.vhd auf Zeile 20235 .

#Also im Modelsim compile wählen, die genannte Datei auswählen und in
die Library unisim compilieren.
#Für Faule soll
es wohl vorkompilierte Dateien auf www.xilinx.com geben.
#Oder als drittes Möglichkeit tippst
du in der doshell (Windows) compxlib -help ein. Dann compilierte Xilinx
alles für Dich.


Ich bin mir nicht sicher ob die Unisim alleine ausreicht, muss ich auch
nicht,
compxlib weiss es und übersetzt alles was ich brauch.

von anderer Michael (Gast)


Lesenswert?

Habe mal in die Unisim Datein hineingeschaut und Du hast recht dort
steht der Ram drin. Aber es gibt auch noch ein Simprimordner. Dort ist
das gleiche in grün. Wo liegt denn nun der Unterschied zwischen Simprim
und Unisim.

Es ist einfach nur zum .... Das die Software das alles nicht alleine
macht. Ich benutze das Tool Protel DXP 2004. Man kann da wunderbar die
Bauteile aus der Bibliothek laden. Aber wenn man die Simulation starten
will dann findet er nicht die Modelle. Ich kann einfach nicht verstehen
warum man die Modelle nicht gleich in die vorhandene Bibliothek mit
einbindet. Sitze schon seit Monaten und versuche herauszufinden wie es
funktioniert, jedoch gibt es keine Informationen darüber.

Jetzt muss man die Bibliotheken schon selber compilieren :-( Warum geht
das denn nicht gleich automatisch mit. Sicherlich wollen die Ihre
teueren Schulungen verkaufen, damit man mit dem Programm umgehen kann.

Grüsse

Michael

von FPGAküchle (Gast)


Lesenswert?

Siehe "delevopment System reference guide" von xilinx.
Simprim ist für timing simulation (inklusive Signalaufzeiten),
unisim für RTL-Level (nur Funktion, keine Signallaufzeiten).

Xilinx liefert Bibliotheken damit man selber einen Simulator seiner
Wahl nutzen kann. Der zur ISE und Webpack gezählte Simulator ist nicht
von Xilinx selber, sondern von Mentor graphics. Grob geschätzt gibt
es ein halbes Dutzend Simulatoren. Diese verlangen nicht selten
neucompilate für die jeweileige Simulatorrevision. Dazu kommen diverse
Compileschalter wie keine Optimierung, optimiert für std_logic, mit
Überlaufcheck oder ohne,.... Xilinx hätte wohl an die Hundert
verschiedene Compilate zu liefern, wenn sie den Nutzer 5 Minuten
nachdenken abnehmen möchte.

Wenn man seinen Computer hasst, sollte man keine FPGA's bauen.

von anderer Michael (Gast)


Lesenswert?

Ich liebe es aber mit FPGAs zu arbeiten. Und Computer liebe ich auch
über alles. Aber des Support ist einfach erschreckend. Aber jetzt weiß
wozu die Datein notwendig sind.

Ich benutze ja das Tool Protel DXP. Nur leider gibt es dort keine
Informationen wie ich die Datein einbinden soll. Eigentlich müsste ich
die Datein nur in Testbench integrieren. Hast Du zufällig ein Beispiel
zur Hand?

von anderer Michael (Gast)


Lesenswert?

Habe jetzt eine Menge darüber gelsen. Man muss beim compilieren der
Bibliotheken angeben, für welchen Simulator das ganze erstellt werden
soll. Ich benutze Protel DXP 2004 (jetzt Firma Altium) die haben einen
internen Simulator mit dem ich auch ganz gut zurecht komme. Nur leider
ist dieser nicht mit aufgeführt. Wie kann ich denn jetzt die
Bibliotheken für diesen Simulator compilieren?

Grüsse

Michael

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
Noch kein Account? Hier anmelden.