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
Verzichte einfach auf die Coregen-Files. Mit der numeric_std Bibliothek und den unsigned/signed Typen erreicht du genau dasselbe! Gruß johnsn
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
@Stefan Hanke: Ob LUT (und ob pipelined) oder Block kannst du genauso auch in den Synthese-Optionen einstellen.
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
Update mal dein Modelsim (bzw. die core libraries des Modelsim), möglicherweise kennt es die neuen cores einfach nicht.
... 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
> ...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
... der " Field Application Engineer " ...probier gerade noch, den generierten code anzupassen, mal schauen, was dabei raus kommt ...
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
Noch ein Link für dich falls du den nicht schon kennst: http://www.xilinx.com/xlnx/xil_ans_display.jsp?iLanguageID=1&iCountryID=1&getPagePath=24819
@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
... 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.