[CPLD Design] Frequenzteiler

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
Reply to
Andreas Auer
Loading thread data ...

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

Reply to
M.Randelzhofer

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

Reply to
Martin Schönegg

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

Reply to
Uwe Bonnes

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.