[Jam] 26.6Mhz dari 80Mhz.

P

pjyc

Guest
HI THERE.
Saya telah 80Mhz jam di sistem saya.
dan kita perlu mendapatkan 26.666Mhz dari 80Mhz.(80Mhz / 3 = 26.666Mhz)
Bawah kode sumber adalah bagian dari 26.6Mhz jam generater.
Kami punya hasil yang baik oleh simulator.tapi sistem sebenarnya tidak baik.
Apakah ada orang yang dapat menyarankan anyting untuk melakukan hal itu?
terima kasih.

Kode:

library IEEE;

menggunakan ieee.std_logic_1164.all;

menggunakan ieee.std_logic_unsigned.all;clk26M entitas adalah

port (CLK: di std_logic;

outclk: std_logic buffer);

clk26M akhir;arsitektur p1 dari clk26M adalah

sinyal count: std_logic_vector (2 downto 0);

sinyal div2: std_logic;

sinyal div3: std_logic;

sinyal dlydiv3: std_logic;mulai

- Dibagi 2

proses (CLK)

mulai

if (clk'event dan CLK = '1 ') maka

div2 <= tidak (div2);

end if;

proses akhir;- Dibagi 3

proses (CLK)

mulai

if (clk'event dan CLK = '1 ') maka

if (count <2) kemudian

count <= count '1 ';

lain

div3 <= tidak (div3);

count <= (orang lain => '0 ');

end if;

end if;

proses akhir;- 1,5 langkah Delay

proses (CLK)

mulai

if (clk'event dan CLK = '0 ') kemudian

if ((div2 xor div3) = '1 ') maka

dlydiv3 <= tidak (dlydiv3);

end if;

end if;

proses akhir;outclk <= div3 xor dlydiv3;akhir p1;
 
coba kode ini

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Senyum" border="0" />Library IEEE;
menggunakan ieee.std_logic_1164.all;
menggunakan ieee.std_logic_unsigned.all;

clk26M entitas adalah
port (CLK, reset: di std_logic;
outclk: keluar std_logic);
clk26M akhir;

arsitektur p1 dari clk26M adalah
sinyal count: std_logic_vector (1 downto 0);
ck1 sinyal, ck1_dly: std_logic;
mulai

proses (reset, CLK)
mulai
jika reset = '0 'lalu
count <= (orang lain => '0 ');
ck1 <= '0 ';
elsif (clk'event dan CLK = '1 ') maka
jika count = "10" kemudian
count <= "00";
lain
count <= count "01";
end if;
jika count = "00" kemudian
ck1 <= '1 ';
lain
ck1 <= '0 ';
end if;
end if;
proses akhir;

proses (reset, CLK)
mulai
jika reset = '0 'lalu
ck1_dly <= '0 ';
elsif (clk'event dan CLK = '0 ') kemudian
ck1_dly <= ck1;
end if;
proses akhir;

outclk <= ck1_dly atau ck1;

end;

 
Aku punya masalah ur!!
Ur div2 sinyal internal, div3 dan harus dalam dlydiv3 sync!
Anda belum menambahkan reset ke jepit ini!untuk menginisialisasi mereka nol!
Dalam simulasi jepit seperti yang dont telah mereset, harus dipaksa untuk
acak lembah.Cobalah salah satu simulasi dengan
Kode:

sinyal div2: std_logic: = '1 ';

sinyal div3: std_logic: = '0 ';

sinyal dlydiv3: std_logic: = '1 ';
 
Hai,
mungkin coba ini, saya pikir ini memakan waktu kurang ruang dan juga bekerja pada frekuensi clock yang lebih tinggi.Jika ada yang salah Please let me know ...

Salam,
Maaf, tapi Anda harus login untuk melihat lampiran

 
Ya!Sirkuit disediakan oleh dBUGGER akan bekerja dengan benar tanpa reset!
Tetapi hubungan antara CLK fase dan akan clk_out acak
setiap kali Anda kekuatan pada logika.Kelemahan lain di sini adalah kedua
tepi posdege dan neg jepit diperlukan!!

 
Jika Anda menggunakan FPGA Xilinx, cara terbaik adalah dengan menggunakan CLKDLL ...

kala

 
Thanks all.
Aku memeriksa bahwa dBUGGER's sirkuit bekerja dengan benar tanpa reset.
Aku punya 26.88Mhz dari 80Mhz pada sistem saya.
Terima kasih banyak.

 
jika Anda tidak peduli siklus tugas jam keluar, Anda dapat menggunakan kode

Kode://================================================ ====

/ / Creat on 09/07/2005

/ / Tujuan: Bagilah System Clock oleh N

/ / Input CLK, Out meletakkan DivOut

/ / Kita mendapatkan posedge dari aplikasi lain DivOut

/ / Misalkan memerlukan pembagi adalah N = 3

//================================================ ====modul PulseDiv (CLK, DivOut);

masukan CLK;

output DivOut;reg [1:0] DivCount; / / 2 ^ 2 = 4> 3

reg DivOut; / / Divider ouput

parameter pembagi = 3; / / N = 3selalu @ (posedge CLK) DivOut <= (DivCount == pembagi-2);

selalu @ (posedge CLK)

if (DivOut) DivCount <= 0;

lain DivCount <= DivCount 1;

endmodule

 

Welcome to EDABoard.com

Sponsor

Back
Top