1 引 言 要求改變脈沖周期和輸出脈沖個(gè)數的脈沖輸出電路模塊在許多工業(yè)領(lǐng)域都有運用。采用數字器件設計周期和輸出個(gè)數可調節的脈沖發(fā)生模塊是方便可行的。為了使之具有高速、靈活的優(yōu)點(diǎn),本文采用Atelra公司的可編程芯片FPGA設計了一款周期和輸出個(gè)數可變的脈沖發(fā)生器。經(jīng)過(guò)板級調試獲得良好的運行效果。 2 總體設計思路 脈沖的周期由高電平持續時(shí)間與低電平持續時(shí)間共同構成,為了改變周期,采用兩個(gè)計數器來(lái)分別控制高電平持續時(shí)間和低電平持續時(shí)間。計數器采用可并行加載初始值的N位減法計數器。設定:當要求的高電平時(shí)間以初始值加載到第一個(gè)減法器中后,減法器開(kāi)始減計數,計數到零時(shí)自動(dòng)停止,同時(shí)啟動(dòng)第二個(gè)記錄低電平持續時(shí)間的計數器計時(shí)。當第二個(gè)減法計數器也減計到零時(shí),計數器自動(dòng)停止。這樣就完成一個(gè)脈沖的輸出,而這個(gè)脈沖的周期控制完全可以在計數器的初始值中進(jìn)行有效的設定.以達到脈沖周期可調的目的。為了控制脈沖個(gè)數的輸出,在脈沖輸出通道上設計一個(gè)數量控制計數器,對脈沖個(gè)數進(jìn)行計數,當計到要求輸出的個(gè)數時(shí).完成輸出并給出一個(gè)done信號作為該模塊工作完成的標志信號。封裝好的脈沖發(fā)生器設計框圖如圖1所示。 引腳信號說(shuō)明: start信號:?jiǎn)?dòng)信號。 reset,信號:系統復位信號。 clock信號:系統時(shí)鐘信號。 high信號:高電平持續時(shí)間初值。 low信號:低電平持續時(shí)間初值。 num信號:個(gè)數控制寄存器初始值。 output信號:脈沖輸出信號。初始化時(shí)為低。 done信號:脈沖輸出完的標志信號。 3 高低電平計時(shí)器設計 3.1 設計方法 為了產(chǎn)生所需要時(shí)間的高電平,可以利用一個(gè)可預置數的減法計數器來(lái)達到目的,計數器設計分為兩個(gè)部分,一部分是可預置數的自控制減法計數器:另一部分是減法計數器工作完成后的檢測系統,檢測到計數器工作完成后輸出一個(gè)時(shí)鐘周期寬的脈沖作為該計數器工作完成信號,并可作為下一個(gè)計數器工作的啟動(dòng)信號。原理框圖如圖2所示。 3.2 工作原理 首先.外部的復位信號reset給出一個(gè)時(shí)鐘周期寬的脈沖,復位內部各個(gè)信號及觸發(fā)器。 然后,在下一個(gè)有效時(shí)鐘時(shí)刻,外部start信號給出一個(gè)時(shí)鐘周期寬度的脈沖,用來(lái)啟動(dòng)計數器的工作。在設計中,當start信號有效時(shí)(設計為高有效),外部數據high加載到Q,當Q不為零時(shí),輸出信號pulse將跳變?yōu)楦唠娖,當Q減到零的時(shí)候,pulse信號再跳變回低電平。這個(gè)脈沖信號的后沿將被后面的由兩個(gè)D觸發(fā)器構成的檢測單元捕獲,并在pulse信號的下降沿后產(chǎn)生一個(gè)時(shí)鐘周期寬的脈沖,定義為done信號,表示該信號完成輸出。 低電平計時(shí)器的設計與高電平計時(shí)器完全一樣。 3.3 時(shí)序仿真 在QuartusⅡ4.1開(kāi)發(fā)平臺上模擬該模塊兩個(gè)輸出信號,時(shí)序仿真如圖3所示。 從圖中可以看出,done信號在pulse信號輸出完成后輸出一個(gè)時(shí)鐘周期寬度。把這個(gè)完成信號done加到下一級類(lèi)似的減法計數器的start信號上。將會(huì )啟動(dòng)下一級計數器的工作。如果將下一級的完成信號done加載給本級的start信號。將會(huì )重啟一個(gè)脈沖的生成。如此將會(huì )自動(dòng)循環(huán)以達到不間斷輸出一定周期脈沖的目的。 4 數量控制計數器設計 4.1 設計方法 數量控制計數器設計與高低電平計數器類(lèi)似.不同之處在于,減法計數器的時(shí)鐘輸入端接脈沖的輸出信號,當要求輸出脈沖的個(gè)數到達時(shí),輸出一個(gè)門(mén)控信號door,后面的兩個(gè)D觸發(fā)器仍然用來(lái)捕獲門(mén)控信號door的后沿。一旦輸出個(gè)數到達,done信號立即輸出一個(gè)時(shí)鐘周期寬度的脈沖作為標志。具體設計框圖如圖4所示。 4.2 時(shí)序仿真 在QuartusⅡ4.1開(kāi)發(fā)平臺上軟仿真,把脈沖發(fā)生器中產(chǎn)生的每個(gè)脈沖的start信號作為數量控制器的輸入信號,仿真結果如圖5所示。 每次輸出任務(wù)完成后。由總體模塊輸出一個(gè)OV信號標志該批次任務(wù)結束。OV信號可再次加載到總的reset信號上,即該批次輸出完成可復位進(jìn)入下一批次任務(wù)的輸出。圖5中的door信號出現了很窄的毛刺,這是由于內部計數器的翻轉不同步造成的。加同步電路可以消除,但會(huì )影響電路的工作頻率。由于毛刺很窄,對整個(gè)電路工作無(wú)任何影響。所以,該模塊設計中并未處理。 5 內部信號連接及工作方式 根據各個(gè)模塊的功能和邏輯關(guān)系,由高電平計時(shí)器、低電平計時(shí)器和數量控制計數器可以搭建整個(gè)周期脈沖發(fā)生器.其內部電路按照圖6的方式連接。 首先,在時(shí)鐘信號上升沿給出一個(gè)時(shí)鐘周期寬度的reset信號以復位整個(gè)電路的觸發(fā)器和各個(gè)輸出信號。當一個(gè)啟動(dòng)信號start在時(shí)鐘的上升沿被檢測到時(shí),高電平開(kāi)始計時(shí),計時(shí)長(cháng)度等于high數值與時(shí)鐘周期之積。當計時(shí)到達時(shí),高電平計時(shí)器停止工作,高電平計時(shí)器輸出一個(gè)完成信號,該信號接在低電平計時(shí)器的start信號腳上,以啟動(dòng)低電平計時(shí)器,低電平計時(shí)器計時(shí)完成時(shí),低電平計時(shí)器停止工作,并輸出一個(gè)完成信號,該信號通過(guò)或門(mén)接在高電平計時(shí)器的start信號腳,再次啟動(dòng)高電平計時(shí)器,開(kāi)始第二個(gè)脈沖高電平的輸出。由于低電平計時(shí)器的完成信號也連接在數量控制計數器的start引腳上.所以,與此同時(shí),數量控制計數器開(kāi)始對其輸入脈沖s_input進(jìn)行數量監測。在脈沖輸出數量未達到預定個(gè)數(數量控制計數器中的初始值)時(shí),門(mén)控信號door一直輸出"高",以允許脈沖通過(guò)。一旦脈沖輸出的數量達到預定個(gè)數時(shí),門(mén)控信號door輸出變?yōu)?低",關(guān)閉輸出通道,并輸出一個(gè)任務(wù)完成的標志信號done。done又通過(guò)或門(mén)連接在全局復位信號reset上,所以,系統完成后即可復位到原狀以等待下一次啟動(dòng)信號來(lái)臨。 周期脈沖發(fā)生器模塊整體時(shí)序仿真如圖7所示。 圖7模擬了兩路脈沖的輸出,第一路輸出兩個(gè)脈沖,第二路輸出一個(gè)脈沖,當兩路脈沖都輸出完成時(shí),系統恢復到初始狀態(tài)。而當start信號再次給出一個(gè)啟動(dòng)脈沖后,將再執行一次任務(wù)。 6 結束語(yǔ) 從模擬結果看出,本文給出的設計完全可以達到設計要求。由于FPGA的運行速度最高可以達到100 MHz量級,輸出的脈沖調節步長(cháng)和最小寬度都可以到ns量級。在此基礎上,筆者設計了一個(gè)多路可調脈沖周期的時(shí)序電路,并運用在團簇粒子的核物理實(shí)驗中。收到滿(mǎn)意效果。 |