Gast
#951825
Hallo liebe FPGA-Gemeinde, ich hätte da gern mal ein Problem... Im Rahmen meiner Diplomarbeit muss ich mein Design an eine bereits existierende Prozessor-Architektur (DLX) anbauen. Nun ergibt sich daraus die Schwierigkeit, dass ich die DLX solange anhalten muss, bis meine Verarbeitung beendet ist. Sprich, ich muss sie zeitweise vom System-Takt trennen, da es sonst keine andere Möglichkeit gibt, sie anzuhalten. Wenn ich das nun einfach über eine Und-Verknüfung mit einem Enable-Signal mache, gibt es Glitches... logisch.... Der Einsatz eines BUFGMUX bzw. BUFGCE, wie er bei den Xilinx-Primitives existiert, würde zwar den gewünschten Erfolg bringen, aber diese existieren leider nicht für den Spartan II E. Meine Versuche diesen Anhand der in ISE enthaltenen unisims-Bibliothek nachzuprogrammieren sind leider bisher an den ieee.vital-Bibliotheken gescheitert. In den Xilinx White-Papers habe ich einen vlt. interessanten Ansatz für einen "gupufferten Muxer" gefunden: buf_clk : process (CLK_IN) begin if (CLK_IN'event and CLK_IN = '1') then case W_CLK_DLX_EN is when '1' => W_CLK_DLX <= CLK_IN; when others => W_CLK_DLX <= '0'; end case; end if; end process; -- buf_clk Ich weiß, so Zeug sollte man schon wg. des Clock-Skews nicht machen, aber ich sehe derzeit keine andere Möglichkeit. Das würde auch soweit funktionieren, wenn nicht sich dadurch die DLX-Clock auf einen Systemtakt verbreitern würde. Führt man meherer Taktzyklen hintereinander aus, so fehlen die Fallenden Flanken - die DLX-Clock entspricht genau dem Verlauf des Enable-Signales. Hat jedmand eine Idee, wie ich das besser/anders machen kann? Wäre über konstruktive Antworten äußerst dankbar :) Viele Grüße Michael