XC9536 100 MHz Divider

B

brunoaduarte

Guest
Hoi, ik heb een 100 MHz klok bron en wilt delen door 11 om 9.091 MHz en met 22 voor het verkrijgen van 4,54 MHz op verschillende klok outputs, hoe kan ik dit doen?

Code:module clkdiv (clk, q);

input clk;

uitgang q;

reg [1:0] COUNT;

aanvankelijke COUNT = 0;

toewijzen q = COUNT [1];

altijd @ (posedge clk)

beginnen

COUNT = COUNT 1;

eindigen

endmodule

 
Ik heb dit. JED bestand voor de programmering van mijn XC9536XL, doet verdeel de 100 MHz-klok met 11 en 22, maar ik moet toevoegen wat extra circuit op.

Does any1 weet of het mogelijk
is disassembleren het?
Sorry, maar je moet inloggen om dit onderdeel te bekijken koppelingseisen

 
Iets als:

-module divby_11_22 (
- Input clk,
- Output reg by_11,
- Output reg by_22
-);
-reg [4:0] counter;
-always @ (posedge clk)
- Beginnen
- If (counter == 5'd21) counter <= 5'd0;
- Anders counter <= counter 5'd1;
--
- / / Verdeel-by-11 klok is hoog voor 5, laag voor 6
- If ((counter == 5'd0) | | (teller == 5'd11)
- By_11 <= 1'b1;
- If (counter == 5'd5) | | (counter == 5'd16))
- By_11 <= 1'b0;
--
- / / Verdeel-by-22 is 11 hoog, 11 lage
- If (counter == 5'd0) by_22 <= 1'b1;
- If (counter == 5'd11) by_22 <= 1'b0;
--
- Einde
-endmodule

Nog niet getest, maar het lijkt werkbaar.Dit zal niet helemaal je een 50% duty-cycle van de / 11 klok, maar dicht.
Wade

 
Thank's, maar het werkte niet de manier
is het geschreven:

Probeerde te compileren op Xilinx ISE, verilog module, maar heb fouten:

Code:module divby_11_22 (clk, by_11, by_22);

input clk;

uitgang by_11;

uitgang by_22;reg [4:0] counter;

altijd @ (posedge clk)

beginnen

if (counter == 5'd21) counter <= 5'd0;

anders counter <= counter 5'd1;

/ / Divide-by-11 klok is hoog voor 5, laag voor 6

if ((counter == 5'd0) | | (teller == 5'd11) by_11 <= 1'b1;

if (counter == 5'd5) | | (counter == 5'd16)) by_11 <= 1'b0;/ / Divide-by-22 is 11 hoog, 11 lage

if (counter == 5'd0) by_22 <= 1'b1;

if (counter == 5'd11) by_22 <= 1'b0;

eindigen

endmodule

 
Deze (gewijzigde) kopie stelt juist onder qu (at) rtus 8

//////////////////////////////////////////////
module test (clk, by_11, by_22);
input clk;
output reg by_11;
output reg by_22;

reg [4:0] counter;
altijd @ (posedge clk)
beginnen
if (counter == 5'd21) counter <= 5'd0;
anders counter <= counter 5'd1;
/ / Divide-by-11 klok is hoog voor 5, laag voor 6
if ((counter == 5'd0) | | (teller == 5'd11)) by_11 <= 1'b1;
if ((counter == 5'd5) | | (teller == 5'd16)) by_11 <= 1'b0;

/ / Divide-by-22 is 11 hoog, 11 lage
if (counter == 5'd0) by_22 <= 1'b1;
if (counter == 5'd11) by_22 <= 1'b0;
eindigen
endmodule
////////////////////////////////////////////////// //////////

 
Nou, nu is opgesteld, maar niet die van de 2 uitgangen klok op simulatie, zoals u kunt zien op de bijgevoegde afbeelding.
Sorry, maar je moet inloggen om dit onderdeel te bekijken koppelingseisen

 
Zie bijlage voor de output van het @ ltera simulatie.
Ik weet niet wat ik moet zeggen, behalve dat het er uit ziet hebben we een simulator duel gaan.
Wade Hassler
Sorry, maar je moet inloggen om dit onderdeel te bekijken koppelingseisen

 
Ik
heb geflitst de XC met de. JED bestand, het werkt echt ...Het
is het genereren van zowel 9 MHz en 4 MHz uitgangen.

Sorry, er moet een probleem met mijn simulator ....

Bedankt!

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 

Welcome to EDABoard.com

Sponsor

Back
Top