線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1378
推到 Plurk!
推到 Facebook!

CPLD計數器

答題得分者是:addn
xfox
一般會員


發表:5
回覆:14
積分:8
註冊:2003-04-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-10-26 17:59:44 IP:211.74.xxx.xxx 訂閱
我是做CPLD新手...我利用兩種頻率(2kHZ,16MHZ)合成出我所需的波形,但波形輸出後有時會有遺漏現象,但是我在模擬軟體上所計數又是正常,可麻煩各位大大幫忙一下這問題困擾我很久了又抓不出原因,這樣寫法在程式可以嗎
以下是我的程式碼

module main(RESET,Pulse,OSC,OUT);
input RESET,Pulse,OSC;
output OUT;
reg[20:0] count_pulse,count_OSC,test;
reg OUT;

parameter Pulse_Set = 90;
parameter OSC_Set = 800;

always@(posedge Pulse or posedge RESET)
begin
if(RESET)
count_pulse<=0;
else
begin
if(count_pulse == Pulse_Set)begin
count_pulse<=0;
end
else begin
count_pulse<=count_pulse 1;
end
end
end

always@(posedge OSC or posedge RESET)
begin
if(RESET)
count_OSC<=0;
else
begin
if(count_pulse == 0)begin
test=test 1;
end
if(test == 1) OUT=1;
if(count_OSC <= OSC_Set)begin
count_OSC<=count_OSC 1;
end
else OUT=0;

if(count_pulse == Pulse_Set)begin
count_OSC<=0;
test=0;
end
end
end
endmodule
addn
高階會員


發表:64
回覆:221
積分:202
註冊:2005-03-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-10-26 21:53:49 IP:218.171.xxx.xxx 訂閱
您好
可否以把你的功能進一步說明清楚
何謂兩種頻率合成出我所需的波形

我想你應該是2kHZ跟16MHZ同步沒做好
建議以16MHZ作為整個系統的clock
再去對2kHZ訊號取樣處理
xfox
一般會員


發表:5
回覆:14
積分:8
註冊:2003-04-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-10-26 22:57:00 IP:122.122.xxx.xxx 訂閱
你好
請問一下,你所說的方式是以16MHZ作為系統的頻率再去對2kHZ訊號取樣處理,是不是將always@(posedge Pulse or posedge RESET)及always@(posedge OSC or posedge RESET)合成為一個



我的功能是使用兩個頻率(2KHZ,16MHZ)單獨作計數,依照我程式所設定的次數合成出我所需的波形,這樣就可固定我ON的時間及週期如上圖所示,可是我用模擬軟體都是正常但是實際所合成的波形有時會有遺漏

addn
高階會員


發表:64
回覆:221
積分:202
註冊:2005-03-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-10-26 23:53:31 IP:218.171.xxx.xxx 訂閱
您好
由code看起來,count_pulse及count_OSC 分別由2kHZ及16MHZ訊號當clock驅動
而兩clock之間沒任何同步關係,而count_OSC 又有用到count_pulse當條件判斷
所以會造成問題

模擬之所以會沒發現問題,是因為你給的條件涵蓋率不夠,
若都給best case的條件當然模擬不出錯誤的結果

非同步之間的處理方式,非三言兩語能說清楚,請上網查相關資料,或翻翻書本

之前建議用頻率高的16MHZ訊號當clock來驅動count_pulse及count_OSC 兩記數器
而2kHZ訊號當外部異步訊號,將這異步訊號與16MHZ做同步處理後在經上緣或下緣微分處理
就可當count_pulse的致能訊號

大概做法就這樣,請參考看看




系統時間:2024-05-13 15:26:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!