Hallo FPGA-Gemeinde, Ich sitze gerade an einem Projekt mit dem iCEStick Evaluation Kit von Lattice und habe einige Probleme mit der Benutzung der PLL. Habe mir für den Anfang ein einfaches UART-Modul geschrieben, dass auch sehr gut funktioniert, solange ich direkt die 12 MHz vom Quarz nehme. Da ich aber höhere Frequenzen benötige, brauche ich die PLL. IceCube2 stellt hierzu einen PLL-Generator bereit. Nach Instantiieren der PLL in meinem Top-Level und das hinzufügen von folgendem timing-constraint: create_clock -period 83.33 -name {my_clk} [get_ports {clk_in}] (Damit sag ich dem Programm eigentlich, dass es an dem Pin clk_in die 12 MHz-Clock zu erwarten hat, oder liege ich da falsch?) und den ganzen weiteren Schritten(Synthese,P&R,..) bekomme ich im Report folgenden Clock Summary: 1::Clock Frequency Summary ===================================================================== Number of clocks: 3 Clock: I9.uart_pll_inst/PLLOUTGLOBAL | N/A | Target: 100.50 MHz | Clock: my_clk | N/A | Target: 12.00 MHz | Clock: uart_pll|PLLOUTCORE_inferred_clock | Frequency: 142.73 MHz | Target: 108.34 MHz | Ich habe also eine Clock, nur leider ist die zu schnell und was ich vor allem nicht verstehe ist, dass der MHz-Wert variabel ist. Verändere ich ein paar Konstanten im Code,ändert sich auch der Wert. Liegts also am Code/Design? Hat schonmal wer mit IceCube2 gearbeitet und kann mir eventuell weiterhelfen? (für den Ice40 gibts leider keine Diamond-Unterstützung). Gibts irgendwelche Richtlinien/Tipps um das ganze sauber zu designen? Ich bin noch nicht recht erfahren auf dem ganzen Gebiet und bin für jede Hilfe dankbar, auch was Timing-Constraints etc. angeht. Vielen Dank schonmal für jegliche Hilfe, MfG, AD
PLL ist hier beschrieben. http://www.latticesemi.com/~/media/Documents/ApplicationNotes/iCE40sysCLOCKPLLDesignandUsageGuide.pdf Gruss Holger.
AD schrieb: > create_clock -period 83.33 -name {my_clk} [get_ports {clk_in}] > > (Damit sag ich dem Programm eigentlich, dass es an dem Pin clk_in die 12 > MHz-Clock zu erwarten hat, oder liege ich da falsch?) Habe im ersten Moment eine Einheit hinter der Zahl vermisst, scheint aber so zu passen, da in deinem Clock Summary korrekt steht: Clock: my_clk | N/A | Target: 12.00 MHz | AD schrieb: > Clock: uart_pll|PLLOUTCORE_inferred_clock | Frequency: 142.73 MHz | > Target: 108.34 MHz | Beim Problem, dass der 108.34 MHz Zieltakt nicht dem entspricht, was du möchtest, kann ich dir leider nicht helfen. Dass sich der Frequenzwert bei der Angabe "Frequency" ändert ist normal: Dieser gibt nähmllich an, wie schnell dein fertiges Design getaktet werden könnte. (Also sind es schlechte Nachrichten wenn "Frequency" kleiner als "Target" ist...)
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.