[CPLD Design] Frequenzteiler

Nov 07, 2004 3 Replies

Hi.



Ich möchte in nem CPLD einen Frequenzteiler mit variablem Teiler realisieren. Das ist auch nicht das Problem. Ich takte einfach meinen CPLD und bei jeder positiven Flanke, wird von einem variablen Wert einfach runtergezählt und wenn die Variable 0 ist, wird ein Register invertiert (CLK Ausgang).



Mein Problem ist nun, dass ich mein geteilter Clock aber auch durch 1 teilbar sein soll; d.h. ich will auch das orignal Clock Signal an den Ausgang geben können! Kann man das in Verilog implementieren?? Wenn ja, wie (vielleicht hat jemand nen Beispiel Source)??



mfg Andreas


Andreas Auer aauer1 (at) sbox.tugraz.at Student of Telematics http://www.mikrocontroller.at.tt Graz University of Technology

Das geht, ist aber mit Tricks verbunden. Im wesentlichen handelt es sich um asynchrone Clock Umschalterei. Normalerweise sollte man davon die Finger lassen, aber es gibt immer schlaue Leute mit passenden Ideen. Also 1x Clock und die Runtergeteiten werden mit einem spezialspezial Multiplexer wie in

formatting link

Punkt6 beschrieben umgeschaltet.

MIKE

Hallo Andreas, | Mein Problem ist nun, dass ich mein geteilter Clock aber auch durch 1 | teilbar sein soll; d.h. ich will auch das orignal Clock Signal an den | Ausgang geben können!

Wo liegt das Problem, Du kannst Doch in Abhängigkeit Deiner Eingangsgröße entsprechend verzweigen: 1 -> Direkt durchschleifen, >1 Einen Zähler mit n Bit aufbauen, die entsprechend gesetzt werden

| Kann man das in Verilog implementieren??

Auch wenn ich noch nie was mit Verilog gemacht habe... Sicher, wahrscheinlich sogar auf verschiedene Arten. In Abel oder VHDL sinds ein paar Zeilen, werden in Verilog auch nicht mehr sein.

MArtin

Andreas Auer wrote: : Hi.

: Ich m?chte in nem CPLD einen Frequenzteiler mit variablem Teiler : realisieren. : Das ist auch nicht das Problem. Ich takte einfach meinen CPLD und bei : jeder positiven Flanke, wird von einem variablen Wert einfach : runtergez?hlt und wenn die Variable 0 ist, wird ein Register invertiert : (CLK Ausgang).

: Mein Problem ist nun, dass ich mein geteilter Clock aber auch durch 1 : teilbar sein soll; d.h. ich will auch das orignal Clock Signal an den : Ausgang geben k?nnen! : Kann man das in Verilog implementieren?? Wenn ja, wie (vielleicht hat : jemand nen Beispiel Source)??

Xilinx Coolrunner II kennt FFs, die auf beiden Flanken takten. Etwa so:

module teiler (input clk, input [3:0] div, output tclk)

reg [3:0] cnt=3'b0;

always @(posedge clk or negedge clk) cnt

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required