Forum: FPGA, VHDL & Co. VHDL mit CoreGen erzeugte BRAM-Komp. 2mal instanzieren -> Problem


von Knipser14 (Gast)


Lesenswert?

Hallo,

ich habe mir mit dem CoreGenerator von Xilinx einen BRAM generiert.
Diesen instanziere ich in zwei verschiedenen entities und benenne die 
Instanziierungen auch unterschiedlich.
Ich will also am Ende zwei gleichartige BRAMs haben.

Wenn ich das ganze mit ISIM simuliere bekomme ich folgende Warnhinweise:
1
WARNING:ProjectMgmt - Duplicate Design Unit 'mybram' found in library 'work'
2
WARNING:ProjectMgmt -    "G:/Spartan6_test/median4/ipcore_dir/mybram_synth.vhd" line 64 (active)
3
WARNING:ProjectMgmt -    "G:/Spartan6_test/median4/ipcore_dir/mybram.vhd" line 43 
4
WARNING:HDLCompiler:685 - "G:/Spartan6_test/median4/ipcore_dir/mybram.vhd" Line 43: Overwriting existing primary unit mybram

Bei der zweiten Instanziierung ignoriert er dann auch die eingestellte 
Vorbelegung des BRAMs mit Nullen und meckert dann, dass er mit Us 
rechnen muss...

Synthetisieren lässt sich alles ohne Probleme. Keine Warnung, nicht 
einmal eine Info.

Wie kann ich diesen Fehler beheben? Gibt es da irgendeinen Trick?

Vielen Dank für Eure Hilfe.

von user (Gast)


Lesenswert?

du musst die entity unterschiedlich nennen, sonst bekommst du den 
fehler.

du kannst aber auch deine entity nur einmal angeben, aber 2 mal 
unterschiedlich instanziieren

von Knipser14 (Gast)


Lesenswert?

Danke für deine Antwort.

Ich habe aber bereits zwei unterschiedlich benannte entities...

Ich habe die mit dem CoreGenerator erstellte Komponente mybram. Daraus 
leite ich in 2 unterschiedlich benannten entities die 2 Instanzen Bram1 
und Bram2 ab.

Ich habe jetzt gerade auch noch einmal das Design geändert. Ich habe 
jetzt nur noch eine entity mit 2 Prozessen und den beiden Instanzen 
Bram1 und Bram2. Der Fehler bleibt der gleiche.

Ich hatte auf eine Veränderung gehofft, da ich so die Komponente nur 
noch einmal deklariere, aber dass scheint egal zu sein.

Gute Nacht.

von Georg A. (georga)


Lesenswert?

Ich kenne jetzt Isim nicht, aber das Teil braucht doch sicher eine Liste 
aller Files, die überhaupt analysiert werden. Die Meldung klingt 
irgendwie, als wäre das mybram-File da zweimal drin.

von Gustl B. (-gb-)


Lesenswert?

Du brauchst in deiner TOP entity einmal den RAM als component. Und dann 
unten wo du den einbindest brauchst du zwei unterschiedliche Namen, also 
sowas wie:


architecture behav of blah is

component RAM is
 port();
end component;

begin

r0: RAM port map ();
r1: RAM port map ();

.
.
.

end behav;

Und dann natürlich für jeden der RAMs eigene Signale wie Addresse und 
so.

von Alois Amberger (Gast)


Lesenswert?

Georg A. schrieb:
> Ich kenne jetzt Isim nicht, aber das Teil braucht doch sicher eine Liste
> aller Files, die überhaupt analysiert werden. Die Meldung klingt
> irgendwie, als wäre das mybram-File da zweimal drin.

Also die fehlermeldung schaut so aus also ob in
mybram_synth.vhd und /mybram.vhd jeweils der selbe entity-identifier 
"mybram" benutzt wird ->

Duplicate Design Unit 'mybram' found in library 'work'
    "G:/Spartan6_test/median4/ipcore_dir/mybram_synth.vhd" line 64 
(active)
    "G:/Spartan6_test/median4/ipcore_dir/mybram.vhd"


Lösch doch die work library und compiliere nur eins der beiden Files.

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.