Xilinx zeitliche Randbedingung: Wie Objekt angeben?

B

buenos

Guest
hallo können sagen, ich habe ein Projekt wie dieses: toplevel.vhd wie oben mit Entity-Namen Toplevel inerface1.vhd Datei hat eine Entität namens Schnittstelle1, und es ist in topmodule als inst_interface1 instanziiert. Schnittstelle1 hat ein internes Taktsignal genannt interface1_internalclock1 läuft bei 50MHz und ist in einem Submodul Schnittstelle1 genannt sub_inerface1.vhd als inst_sub_inerface1 instanziiert generiert. Wie kann ich den genauen Takt Namen in einem ucf Einschränkung Datei? Im mit ISE12 WebPack für die Entwicklung. Ich habe es in ein paar Möglichkeiten ausprobiert, aber ich bekomme immer eine Fehlermeldung, dass "NET" xxxx "nicht gefunden". Timespec TS_adcif_wb_clk_o = ZEIT "adcif_wb_clk_o" 20 ns HOCH 50%;; b) NET "Inst_s6bfip_adc/adcif_wb_clk_o" TNM_NET = "adcif_wb_clk_o"; timespec TS_adcif_wb_clk_o = ZEIT "adcif_wb_clk_o a) NET" adcif_wb_clk_o "TNM_NET =" adcif_wb_clk_o ": Ich habe diese versucht, "20 ns HOCH 50%;
 
in der Regel versuche ich, abgeleitet Einschränkungen nutzen. zB einschränken PAD_CLK und lassen Sie die Werkzeuge bestimmen Dinge. Dies ermöglicht im Zusammenhang Uhren einfach eingeschränkt werden. Eine andere Methode ist, um an der PAR Bericht für Dinge, die die Tools aufrufen Uhren schauen. Das ist wirklich nützlich, da Sie wird zeigen, ob Sie einfache Einschränkungen verpasst. In Bezug auf Namen, keine Ahnung. das Problem ist, dass die Werkzeuge können mangle Namen ziemlich schlecht. um die Uhr könnten am Ende mit einer beliebigen Anzahl von Namen, wie top_level_signal, zB / instance_port, zB / Ansteuersignal, signal_BUFG_O, ect ... einige Optimierungen auch zerstören Namen. Uhren der Regel am Ende das gleiche auf jedem Build mit der gleichen Optimierungen, aber auch andere Netze auch nicht. Der VHDL / Verilog und UCF "keep" (und manchmal auch "save") Attribute können nützlich sein
 
Oft werden die Synthese-Tools umbenennen Signale. Es kann notwendig sein, um die. EDF-Datei gehen und schauen durch it yourself. Normalerweise finden Sie die Module dort, und dann ist es eine Frage der Suche das Modul Sie interessiert sind, und sehen, was Netznamen der Synthesizer verwendet, um das Modul die Ports von Interesse zu verbinden. Dies funktioniert in der Regel für mich. rb
 
ih Gibt es eine Möglichkeit, um die Umbenennung Signale zu verhindern? wie die syn_keep in Synplify, aber mit XST. Die Probleme, die ich mit dieser Methode sehen kann, sind:-es tut erzeugen eine Auflage, genertes es Ich denke, ein ngc oder so etwas. - Die Netzliste ist wie eine große zufällige Zeichenfolge, etwas zu finden, in diesem können schwierigem werden - ich habe rund 10 Uhren zu beschränken. vorherige Xilinx-Tools, wie 6,2 geklappt hat mit dieser Art von timinjg Zwänge, aber er v12 doesnt

<span style="color: grey;"><span style="font-size: 10px">---------- Beitrag hinzugefügt um 10:26. - -------- Vorherige Nachricht wurde um 08:49 ----------</span></span>
", schränken PAD_CLK und lassen Sie die Werkzeuge bestimmen Dinge" im mit GTP-Transceiver mit ihren Wrapper in coregenerator generiert. die GTP hat einen Referenztakt Pin und eine interne PLL. Es erzeugt die parallel Bustakt, und das ist, was ich zu beschränken wollen. Ich habe ähnliche Fehler für diff io Uhren auch. LVDS diff Dateneingaben vom ADC mit diff Eingangstakt. i angegeben haben in Zwang ausgeglichen, aber ich weiß nicht, wie man auf die diff Eingangstakt beziehen. ist es clockx_P oder clockx_N oder Clockx oder was?
 
Nun, obwohl ich nicht immer XST verwendet haben, ist das Äquivalent von syn_keep nur "halten". Ich habe festgestellt, dass diese Einschränkung nicht funktioniert 100% der Zeit, besonders wenn Sie weist damit zwei Drähte gleich verwenden. Sie können jederzeit erzeugen eine EDF-Datei mit dem ngc2edf Befehl auf der Kommandozeile oder in der SE-Konsole-Fenster eingegeben. Zumindest dann können Sie prüfen die Netzliste und herauszufinden, was ihre mit den Namen gemacht! Ich bin aus dem Gedächtnis gehen, aber Sie würden einfach "ngc2edf blah blah", vorausgesetzt, Sie wollten blah.ngc aus blah.edn erstellen. rb
 
es gibt auch den gleichen Fehler (oder eine Warnung, wenn ich es egnore set) über die Lage Einschränkungen: WARNUNG: ConstraintSystem - Ein Ziel Design-Objekt für das Suchen-Einschränkung '[User_Constraints/s6bf_board_constraints.ucf (296)]' konnte nicht gefunden und so werden das Suchen Einschränkung entfernt werden. Ich habe eine PCI-Express-und ein Polarlicht-Schnittstelle, natürlich wäre es schlecht um ihre GTPS zufällig zu tauschen. Es muss eine generelle Lösung sein "poreserve alle Objektnamen" Früher habe ich die KEEP-Attribut in UCF und in VHDL, aber es hatte keine Wirkung. ISE einfach ignoriert alle Objektnamen, die nicht Top-Level-Port-Namen. bedeutet es, dass mit Xilinx FPGAs können wir nur Single-File-kombinatorische Logik bis zu einem unbekannten Geschwindigkeit und die Hard-IP-Ressourcen sind nicht verfügbar, für die Nutzer?
 
Ist aurora_module_i den Namen der obersten Ebene der Gestaltung sind Sie einschränkende? Wenn nicht, müssen Sie unter Umständen mehr Hierarchieebenen zu den Modul-Namen voranstellen. Dies ist oft notwendig, wenn Sie oder erhalten einen Kern und seine Einschränkungen, z. B. wenn Sie erzeugen sie aus Coregen generieren. Da Coregen weiß nichts über den Rest des Systems der Hierarchie, kann es nur Name des Moduls auf dem Teil des Systems, die es kennt basiert. Wenn Sie die Aurora-Schnittstelle in Ihre Top-Modul haben instanziiert, kann die tatsächliche Pfad der aurora-Schnittstelle / aurora_module_i /.... Und in der Antwort auf Ihre erste Frage, nein es gibt keine solche Einschränkung. Was die zweite Frage, bedeutet eine wirklich harte IP-Block, dass es bereits angelegt und geführt, so gibt es keinen wirklichen einschränkenden Sie tun können, außer von und nach seiner IO. rb
 
eine Methode, die gut funktioniert, ist nur zu bauen das Design, dann herausfinden, was die Werkzeuge haben. Es dauert etwa eine Stunde zu tun. Sobald Sie den ngd Sie fpga_editor laden können und finden Sie die Namen und LOC ist. Es erlaubt Ihnen auch, UCF Einschränkungen für LOCs (und Verschmutzungen bei Bedarf) zu machen. Alternativ können Sie sehen, ob es Warnungen, warum Einschränkungen ignoriert werden. LOC'ing der GTP ist nicht erforderlich, wenn Sie die RXP / RXN und TXP / TXN LOC'd werden. diese Verbindungen nicht Route irgendwo anders als die angeschlossenen GTP Fliesen, und die Werkzeuge der Lage sein sollten, um einfach festzustellen, dieser. (Der andere Fall ist auch wahr - wenn Sie loc ein GTP Fliesen, Sie werden nicht an LOC der RXP / RXN 's braucht)
 
ok. Was, wenn ich LOC der GTP-Pins und nicht die GTP-Fliesen? zwingt es den GTP-Fliese zu diesem Ort? i hope so. über den Zeitpunkt Constraint-Name Fehler: Ich glaube, ich habe damit ise auf die Zwänge zu ignorieren, so kann ich den Punkt in der Umsetzung, wo ich bereits Zugriff auf die Einschränkung Editor, in dem es zeigt die verfügbaren Clock-Namen in einer Liste zu erreichen. seine sehr dumm, dass in ise zu können eingerichtet Timing-Vorgaben, benötigen Sie ein Design frei von Timing-Fehlern ... zu bewahren Hierarchie, versuchte ich dieses: attribute keep_hierarchy: string; Attribut keep_hierarchy von s6bfip_dsp: entity "ja"; in jeder Untermodul von Toplevel-Datei. Ich habe es vor der Entity-Deklaration versucht, nach dem Unternehmen vor Architektur, Architektur nach Namen, bevor beginnen ... aber ise hat mir Fehler sagen seine ist nicht in dem Abschnitt es erwartet, dass sie sein. Wo genau hat das jetzt sein? zwischen welchen Keywords? Ich habe angegeben halten für Netze und ich habe nicht Fehler für sie, entfernt nur die Synthesizer der Netznamen sowieso.
 

Welcome to EDABoard.com

Sponsor

Back
Top