Ich habe ein Design aufgesetzt, in das ein PICOBLAZE hinein soll (aber noch gar keiner drin steckt!) und stosse schon bei der hardware-Verdrahtung auf ein seltsames Problem: Ich benutzte eine UART, die ein internes Register beschreibt, mit dem ich einen Takt umschalten möchte. Die UART läuft mit der System_Clock 50MHz und taktet das Signal raus ins design. Von dort geht es direkt auf einen BUFGMUX, der zwei Takteingänge von Außen (über IBUF, PLL und BUFG) umschalten soll. In der Simulation geht es, d.h. die Takte werden umgeschaltet. Das einzige sonderbare ist, dass der eine der beiden Takte ohne BUFG auf einen BUFGMUX geht obwohl der auch noch Logik treibt. Das soll aber zunächst egal sein. Ungewöhnlich finde ich folgende Fehlermeldung: Xst:3218 - HDL ADVISOR - The RAM <Mram_pci_clk_sel> will be implemented on LUTs either because you have described an asynchronous read or because of currently unsupported block RAM features. If you have described an asynchronous read, making it synchronous would allow you to take advantage of available block RAM resources, for optimized device usage and improved timings. Please refer to your documentation for coding guidelines. Was hat denn nun der Clock-MUX mit einem MRAM zu tun? Das Signal heisst nämlich "pci_clk_sel" und dieser Takt treibt nirgendwo ein RAM, weder direkt noch eines seiner Derivate (also der gemuxte Takt). Kann jemand was damit anfangen?
MicroController-Ingenieur schrieb: > In der Simulation geht es, d.h. die Takte werden umgeschaltet. In der Simualtion geht sooooo viel mahr als in der Realität. > taktet das Signal raus ins design. Wo ist hier "innen" und wo "draußen"? > Was hat denn nun der Clock-MUX mit einem MRAM zu tun? Offenbar hat der Synthesizer deine Beschreibung als RAM interpretiert... > Das Signal heisst nämlich "pci_clk_sel" und dieser Takt treibt nirgendwo > ein RAM, weder direkt noch eines seiner Derivate (also der gemuxte Takt). Wenn du in VHDL irgendwas hinschreibst, und der Synthesizer ist der Meinung, das könnte man geschickt mit einem RAM abbilden (und du glaubst nicht, was man alles in RAMs packen kann), dann tut er das auch. > Das einzige sonderbare .... Das soll aber zunächst egal sein. Sollte es wahrscheinlich nicht. Aber die Lösung liegt sehr vermutlich im nicht geposteten Code...
Das Signal für den Takt-MUX geht wirklich nur aus dem Modul für den UART raus ins Restdesign, also die obere Entity und dort auf den selection Eingang des BUFGMUX. Der schaltet zwei externe Takte um. Wo soll da ein RAM hingetan werden können?
MicroController-Ingenieur schrieb: > Das Signal für den Takt-MUX geht wirklich nur aus dem Modul für den UART > raus ins Restdesign, also die obere Entity und dort auf den selection > Eingang des BUFGMUX. Der schaltet zwei externe Takte um. Warum kommt das Signal aus dem UART-Modul? Ich hätte es an ein GPIO-Modul gehangen. Daniel
Daniel schrieb: > Warum kommt das Signal aus dem UART-Modul? Das muss so sein, weil per UARt umgeschaltet werden können muss. Der Aufbau ist so: IO-Pin RX, eingesampelt mit Systemtakt, geht auf UART-VHDL-Block, der mit Systemtakt läuft. Von dort kommt es als Steuersignal raus (synchron mit dem Systemtakt) und geht direkt auf dem MUX. Die beiden PCI-Clocks kommen aus unterschiedlichen PLLs. Ich glaube, dass er intern die ganzen BUFGMUXs irgendwie umbaut und eine ganz andere Architektur rauskommt, als ich sie beschrieben habe. Muss mal das RTL file ansehen. Ich dachte nur, dass vielleicht jemandem die Fehlermeldung geläufig sein könnte, weil Xilinx ja öfter mal Fehler meldet wo keine sind und der Hase woanders begraben liegt.
MicroController-Ingenieur schrieb: > IO-Pin RX, eingesampelt mit Systemtakt, geht auf UART-VHDL-Block, der > mit Systemtakt läuft. Von dort kommt es als Steuersignal raus (synchron > mit dem Systemtakt) und geht direkt auf dem MUX. Die beiden PCI-Clocks > kommen aus unterschiedlichen PLLs. Also steckt in Deinem UART schon ein 'Interpreter' drin. Ich dachte Du verwendest schon den Picoblaze. Zu Deinem Eingangspost: Der HDL advisor gibt keine Fehlermeldung aus, sondern einen Hinweis. Das mit dem Mram ist aber wirklich komisch. Ich würde da mal genau den Synthesereport durchschauen, um die zweifelhafte Beschreibung zu finden. Vielleicht kannst Du den Report hier auch anhängen. Daniel
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.