Guten Tag. Ich möchte den BUFR an einem Ausgang des FPGAs verwenden (siehe S. 378 ff. http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_2/xst_v6s6.pdf). Wie funktioniert dieses richtig? Ich habe folgendes versucht: output : out std_logic; -- an dieser Stelle Buffer Deklaration einführen ? attribute buffer_type of output: output is "bufr"; output <= '1'; Ist das so korrekt? Wenn in einem VHDL-Code keine Buffer-Type-Deklaration zu finden ist, was wird dann default-mäßig verwendet ("none" ?) ?
was genau ist der Sinn des Wunsches? Die Treiberstärke und Art der IOs werde am Besten im sog. UCF-file eingestellt und nicht im RTL code, und der "BUFR" ist eher was FPGA- internes, darum kümmert sich normalerweise die ISE-Software... Im ucf-file werden dir Ports der Toplevel entity in VHDL den FPGA Pins zugeordnen und z.b. mit Treiberstärken versehen. in deinem Falle z.B.: so NET output LOC = A1 | DRIVE = 2 | FAST; Hier die wichtigsten UCF-Dinge unter Pinzuordnung, Ausgangstreiber und Pullup/down http://www.mikrocontroller.net/articles/UCF-Dateien Und hier habe ich ein Tutorial er"bingt" :) http://www.lothar-miller.de/s9y/uploads/Tutorial_Xilinx_ISE13.pdf Lesenswert! U.a: wird die Pinzuordnung mittel "planahed" kurz erklärt. Und alle UCF constraints sind hier Erschlagend gelistet: http://www.xilinx.com/support/documentation/sw_manuals/xilinx13_4/cgd.pdf
Danke euch. @ bko es bezieht sich auf den Beitrag Beitrag "Error in Xilinx EDK -> CLOCK_DEDICATED_ROUTE = FALSE". Ich möchte nun den IO auf BUFR setzen, um ein Problem mit der äußeren Treiberbank zu umgehen. Habe gedacht, dass ich für das Thema einen neuen Post mache, da es ja allgemein ist und eventuell auch andere Leute interessiert. Was genau schreibe ich dafür für eine Zeile ins ucf? Momentan steht dort: NET rx_clk_in_p_2 LOC = K26 | IOSTANDARD = LVDS_25 | DIFF_TERM = TRUE; NET rx_clk_in_n_2 LOC = K27 | IOSTANDARD = LVDS_25 | DIFF_TERM = TRUE; Wie sieht die Zeile aus, wenn ich auf BUFR setzen möchte? In dem von mir geposteten Dokument (http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_2/xst_v6s6.pdf) steht auf Seite 387 attribute buffer_type of signal_name :signal is "{ibufg|bufg|bufgp|bufh|bufr|bufio|ibuf|obuf|buf|none}"; Das ist aber keine Zeile für das ucf-File,oder? Kann mir wer da helfen?
Ohne jetzt die Details genau zu kennen, eine kleine Anmerkung: Die Buffer Elemente sind meist interne Strukturen, die vom Compiler automatisch eingefügt und verwendet werden, z.B. wenn er merkt, dass ein Signal als Takt verwendet wird, dann wird damit damit ein "normales" Signal auf das dedizierte Clock-Netz geroutet. Man muss sie nur in den seltensten Fällen manuell instantieren. In deinem Fall scheint mir, wurde einfach ein falsches Pin-Paar als Takteingang verwendet, eines das nicht dazu gedacht war und das intern z.B. nicht direkt an die DCM geht. Mit "CLOCK_DEDICATED_ROUTE=FALSE" wird dem Compiler erlaubt, eine alternative Route zu suchen, aber das geht auf Kosten von einem definiertem Timing, deshalb muss es explizit erlaubt werden. Ich glaube nicht, dass das manuelle Einfügen eines BUFR diese Situation korrigieren kann, wobei zu sehen ist, wo diese BUFR Resource im FPGA überhaupt liegt und wie dahin geroutet werden kann.
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.