Forum: FPGA, VHDL & Co. Modelsim XE 6.2 // synthesis_translate_on/off


von Seb (Gast)


Lesenswert?

Hallo,

Ich arbeite mit einem Multiplizierer, der von ISE9.1i - Coregen 
generiert wurde. Beim kompilieren und synthetisieren mit ISE gibt es 
keine Probleme, allerding beim Compilieren mit Modelsim XE.

Auszug aus dem VHDL File des Multiplizieres:

38 LIBRARY ieee;
39 USE ieee.std_logic_1164.ALL;
40 --synthesis translate_off
41 Library XilinxCoreLib;
42 -- synthesis translate_on
43 ENTITY mult_fix_wizard IS

Meine Frage: Weiß jemand, wie mit den Zeilen --synthesis 
translate_on/off umgegangen werden muss?

Ich bekomme eine Fehlermeldung beim Kompilieren des VHDL Files:
Internal Error: ../../src/vcom/genexpr.c(5483)

Kann damit jemand etwas anfangen oder Tips geben??? Hängt es vielleicht 
mit o.g. Zeilen zusammen?

Sollten mehr Infos benötigt werden, um etwas zu dem Problem sagen zu 
können, bitte nachfragen.

Vielen Dank!

Gruß Sebastian

von Johnsn (Gast)


Lesenswert?

Verzichte einfach auf die Coregen-Files. Mit der numeric_std Bibliothek 
und den unsigned/signed Typen erreicht du genau dasselbe!

Gruß
johnsn

von Stefan H. (stefanhanke)


Lesenswert?

Johnsn wrote:
> Verzichte einfach auf die Coregen-Files. Mit der numeric_std Bibliothek
> und den unsigned/signed Typen erreicht du genau dasselbe!
Nein.

1. Der Coregen läßt dir die Wahl, ob du den Multiplizierer aus LUTs oder 
aus den 18x18 Blockmultiplizierern aufbauen willst.

2. Du kannst die Pipelinetiefe einstellen. OK, ich weiss nicht, ob man 
das irgendwie mittels VHDL-eigenen Mitteln auch bei solchen Funktionen 
hinbekommt...

@Seb
Du bist übrigens nicht der Erste, dem diese Fehlermeldung begegnet.
http://www.fpga-faq.com/archives/116725.html#116732
Dummerweise gab es da überhaupt keine Antwort...

> Meine Frage: Weiß jemand, wie mit den Zeilen --synthesis
> translate_on/off umgegangen werden muss?
Einfach drinnen lassen.

 -- stefan

von Johnsn (Gast)


Lesenswert?

@Stefan Hanke:

Ob LUT (und ob pipelined) oder Block kannst du genauso auch in den 
Synthese-Optionen einstellen.

von Stefan H. (stefanhanke)


Lesenswert?

Johnsn wrote:
> Ob LUT (und ob pipelined) oder Block kannst du genauso auch in den
> Synthese-Optionen einstellen.

Die Optionen kannte ich nicht, danke!

Die Kodierung (aus: XST User Guide, 8.1i) läßt dann auch eine einfache 
Verlängerung der Pipe zu; einziger Wermutstropfen ist, dass keine 
Hardware-Multiplizierer verwendet werden können. Das ist dann doch eine 
starke Einschränkung, leider.
1
process (clk)
2
begin
3
 if (clk'event and clk='1') then
4
  a_in <= A; b_in <= B;
5
  mult_res <= a_in * b_in;
6
  pipe_1 <= mult_res;
7
  pipe_2 <= pipe_1;
8
  pipe_3 <= pipe_2;
9
  MULT <= pipe_3;
10
 end if;
11
end process;

 -- stefan

von adpat (Gast)


Lesenswert?

Update mal dein Modelsim (bzw. die core libraries des Modelsim), 
möglicherweise kennt es die neuen cores einfach nicht.

von Seb (Gast)


Lesenswert?

... hallo,

@adpat
modelsim ist die neueste verfügbare version, sollte also alles kennen

@stefan
...dann muss wohl der FAE ran :o)

aber danke!

gruß sebastian

von Stefan H. (stefanhanke)


Lesenswert?

> ...dann muss wohl der FAE ran :o)
Ich stehe gerade auf dem Schlauch :)

Übrigens, aus: XST User Guide, 8.1i, p.335
> The Translate Off (TRANSLATE_OFF) and Translate On (TRANSLATE_ON)
> directives can be used to instruct XST to ignore portions of your VHDL or
> Verilog code that are not relevant for synthesis; for example, simulation
> code. The TRANSLATE_OFF directive marks the beginning of the section to be
> ignored, and the TRANSLATE_ON directive instructs XST to resume synthesis
> from that point.

 -- stefan

von Seb (Gast)


Lesenswert?

... der " Field Application Engineer "

...probier gerade noch, den generierten code anzupassen, mal schauen, 
was dabei raus kommt ...

von adpat (Gast)


Lesenswert?

Modelsim kann ja die neueste Version sein aber sind es die libraries 
auch? Die gibts meist als Update extra. Siehe hier

http://www.xilinx.com/xlnx/xil_sw_updates_display.jsp?update=mxe_libs&software=9.1i&os=Windows&submit.x=78&submit.y=11&submit=Search

von adpat (Gast)


Lesenswert?


von Seb (Gast)


Lesenswert?

@adpat: zum zweiten link, genau das habe ich bereits versucht, gut es 
jetzt noch mal zu lesen. den link kannte ich bisher nicht. jetzt hängt 
es wohl noch an anderer stelle. mal schauen. aktualisiere gerade die 
libraries.

gruß seb

von Seb (Gast)


Lesenswert?

... so jetzt geht das alles.
es lag nicht an den libraries. hatte auch noch nen syntaxfehler drin - 
die gutan alten semikolons :o)
jedenfalls war das problem, dass die generics nur im mapping aufgeführt 
waren und nicht im deklarationsteil der architecture des von coregen 
generierten files. das sollte, nein das muss man von hand ändern und 
alles ist gut :o)

in diesem sinne, schönes we!

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.