《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的高速可變周期脈沖發(fā)生器的設(shè)計(jì)
基于FPGA的高速可變周期脈沖發(fā)生器的設(shè)計(jì)
摘要: 要求改變脈沖周期和輸出脈沖個(gè)數(shù)的脈沖輸出電路模塊在許多工業(yè)領(lǐng)域都有運(yùn)用,。采用數(shù)字器件設(shè)計(jì)周期和輸出個(gè)數(shù)可調(diào)節(jié)的脈沖發(fā)生模塊是方便可行的,。為了使之具有高速、靈活的優(yōu)點(diǎn),,本文采用Atelra公司的可編程芯片F(xiàn)PGA設(shè)計(jì)了一款周期和輸出個(gè)數(shù)可變的脈沖發(fā)生器,。經(jīng)過板級(jí)調(diào)試獲得良好的運(yùn)行效果,。
Abstract:
Key words :

   1 引 言

  要求改變脈沖周期和輸出脈沖個(gè)數(shù)的脈沖輸出電路模塊在許多工業(yè)領(lǐng)域都有運(yùn)用。采用數(shù)字器件設(shè)計(jì)周期和輸出個(gè)數(shù)可調(diào)節(jié)的脈沖發(fā)生模塊是方便可行的,。為了使之具有高速,、靈活的優(yōu)點(diǎn),本文采用Atelra公司的可編程芯片FPGA設(shè)計(jì)了一款周期和輸出個(gè)數(shù)可變的脈沖發(fā)生器,。經(jīng)過板級(jí)調(diào)試獲得良好的運(yùn)行效果,。

  2 總體設(shè)計(jì)思路

  脈沖的周期由高電平持續(xù)時(shí)間與低電平持續(xù)時(shí)間共同構(gòu)成,為了改變周期,,采用兩個(gè)計(jì)數(shù)器來分別控制高電平持續(xù)時(shí)間和低電平持續(xù)時(shí)間,。計(jì)數(shù)器采用可并行加載初始值的N位減法計(jì)數(shù)器。設(shè)定:當(dāng)要求的高電平時(shí)間以初始值加載到第一個(gè)減法器中后,,減法器開始減計(jì)數(shù),,計(jì)數(shù)到零時(shí)自動(dòng)停止,同時(shí)啟動(dòng)第二個(gè)記錄低電平持續(xù)時(shí)間的計(jì)數(shù)器計(jì)時(shí),。當(dāng)?shù)诙€(gè)減法計(jì)數(shù)器也減計(jì)到零時(shí),,計(jì)數(shù)器自動(dòng)停止。

  這樣就完成一個(gè)脈沖的輸出,,而這個(gè)脈沖的周期控制完全可以在計(jì)數(shù)器的初始值中進(jìn)行有效的設(shè)定.以達(dá)到脈沖周期可調(diào)的目的,。為了控制脈沖個(gè)數(shù)的輸出,在脈沖輸出通道上設(shè)計(jì)一個(gè)數(shù)量控制計(jì)數(shù)器,,對脈沖個(gè)數(shù)進(jìn)行計(jì)數(shù),,當(dāng)計(jì)到要求輸出的個(gè)數(shù)時(shí).完成輸出并給出一個(gè)done信號(hào)作為該模塊工作完成的標(biāo)志信號(hào)。封裝好的脈沖發(fā)生器設(shè)計(jì)框圖如圖l所示,。

  引腳信號(hào)說明:

  start信號(hào):啟動(dòng)信號(hào),。

  reset,信號(hào):系統(tǒng)復(fù)位信號(hào),。

  clock信號(hào):系統(tǒng)時(shí)鐘信號(hào)。

  high信號(hào):高電平持續(xù)時(shí)間初值,。

  low信號(hào):低電平持續(xù)時(shí)間初值,。

  num信號(hào):個(gè)數(shù)控制寄存器初始值。

  output信號(hào):脈沖輸出信號(hào),。初始化時(shí)為低,。

  done信號(hào):脈沖輸出完的標(biāo)志信號(hào)。

  3 高低電平計(jì)時(shí)器設(shè)計(jì)

  3.1 設(shè)計(jì)方法

  為了產(chǎn)生所需要時(shí)間的高電平,可以利用一個(gè)可預(yù)置數(shù)的減法計(jì)數(shù)器來達(dá)到目的,,計(jì)數(shù)器設(shè)計(jì)分為兩個(gè)部分,,一部分是可預(yù)置數(shù)的自控制減法計(jì)數(shù)器:另一部分是減法計(jì)數(shù)器工作完成后的檢測系統(tǒng),檢測到計(jì)數(shù)器工作完成后輸出一個(gè)時(shí)鐘周期寬的脈沖作為該計(jì)數(shù)器工作完成信號(hào),,并可作為下一個(gè)計(jì)數(shù)器工作的啟動(dòng)信號(hào),。原理框圖如圖2所示。

3.2 工作原理

  低電平計(jì)時(shí)器的設(shè)計(jì)與高電平計(jì)時(shí)器完全一樣,。

3.3 時(shí)序仿真

  在QuartusⅡ4.1開發(fā)平臺(tái)上模擬該模塊兩個(gè)輸出信號(hào),,時(shí)序仿真如圖3所示。

  從圖中可以看出,,done信號(hào)在pulse信號(hào)輸出完成后輸出一個(gè)時(shí)鐘周期寬度,。把這個(gè)完成信號(hào)done加到下一級(jí)類似的減法計(jì)數(shù)器的start信號(hào)上。將會(huì)啟動(dòng)下一級(jí)計(jì)數(shù)器的工作,。如果將下一級(jí)的完成信號(hào)done加載給本級(jí)的start信號(hào),。將會(huì)重啟一個(gè)脈沖的生成。如此將會(huì)自動(dòng)循環(huán)以達(dá)到不間斷輸出一定周期脈沖的目的,。

  4 數(shù)量控制計(jì)數(shù)器設(shè)計(jì)

  4.1 設(shè)計(jì)方法

  數(shù)量控制計(jì)數(shù)器設(shè)計(jì)與高低電平計(jì)數(shù)器類似.不同之處在于,,減法計(jì)數(shù)器的時(shí)鐘輸入端接脈沖的輸出信號(hào),當(dāng)要求輸出脈沖的個(gè)數(shù)到達(dá)時(shí),,輸出一個(gè)門控信號(hào)door,,后面的兩個(gè)D觸發(fā)器仍然用來捕獲門控信號(hào)door的后沿。一旦輸出個(gè)數(shù)到達(dá),,done信號(hào)立即輸出一個(gè)時(shí)鐘周期寬度的脈沖作為標(biāo)志,。具體設(shè)計(jì)框圖如圖4所示。

4.2 時(shí)序仿真

  在QuartusⅡ4.1開發(fā)平臺(tái)上軟仿真,,把脈沖發(fā)生器中產(chǎn)生的每個(gè)脈沖的start信號(hào)作為數(shù)量控制器的輸入信號(hào),,仿真結(jié)果如圖5所示。

每次輸出任務(wù)完成后,。由總體模塊輸出一個(gè)OV信號(hào)標(biāo)志該批次任務(wù)結(jié)束,。OV信號(hào)可再次加載到總的reset信號(hào)上,即該批次輸出完成可復(fù)位進(jìn)入下一批次任務(wù)的輸出,。圖5中的door信號(hào)出現(xiàn)了很窄的毛刺,,這是由于內(nèi)部計(jì)數(shù)器的翻轉(zhuǎn)不同步造成的。加同步電路可以消除,,但會(huì)影響電路的工作頻率,。由于毛刺很窄,對整個(gè)電路工作無任何影響,。所以,,該模塊設(shè)計(jì)中并未處理,。

  5 內(nèi)部信號(hào)連接及工作方式

  根據(jù)各個(gè)模塊的功能和邏輯關(guān)系,由高電平計(jì)時(shí)器,、低電平計(jì)時(shí)器和數(shù)量控制計(jì)數(shù)器可以搭建整個(gè)周期脈沖發(fā)生器.其內(nèi)部電路按照圖6的方式連接,。

  首先,在時(shí)鐘信號(hào)上升沿給出一個(gè)時(shí)鐘周期寬度的reset信號(hào)以復(fù)位整個(gè)電路的觸發(fā)器和各個(gè)輸出信號(hào),。當(dāng)一個(gè)啟動(dòng)信號(hào)start在時(shí)鐘的上升沿被檢測到時(shí),,高電平開始計(jì)時(shí),計(jì)時(shí)長度等于high數(shù)值與時(shí)鐘周期之積,。當(dāng)計(jì)時(shí)到達(dá)時(shí),,高電平計(jì)時(shí)器停止工作,高電平計(jì)時(shí)器輸出一個(gè)完成信號(hào),,該信號(hào)接在低電平計(jì)時(shí)器的start信號(hào)腳上,,以啟動(dòng)低電平計(jì)時(shí)器,低電平計(jì)時(shí)器計(jì)時(shí)完成時(shí),,低電平計(jì)時(shí)器停止工作,,并輸出一個(gè)完成信號(hào),該信號(hào)通過或門接在高電平計(jì)時(shí)器的start信號(hào)腳,,再次啟動(dòng)高電平計(jì)時(shí)器,,開始第二個(gè)脈沖高電平的輸出。由于低電平計(jì)時(shí)器的完成信號(hào)也連接在數(shù)量控制計(jì)數(shù)器的start引腳上.所以,,與此同時(shí),,數(shù)量控制計(jì)數(shù)器開始對其輸入脈沖s_input進(jìn)行數(shù)量監(jiān)測。在脈沖輸出數(shù)量未達(dá)到預(yù)定個(gè)數(shù)(數(shù)量控制計(jì)數(shù)器中的初始值)時(shí),,門控信號(hào)door一直輸出"高",,以允許脈沖通過。一旦脈沖輸出的數(shù)量達(dá)到預(yù)定個(gè)數(shù)時(shí),,門控信號(hào)door輸出變?yōu)?quot;低",,關(guān)閉輸出通道,并輸出一個(gè)任務(wù)完成的標(biāo)志信號(hào)done,。done又通過或門連接在全局復(fù)位信號(hào)reset上,,所以,系統(tǒng)完成后即可復(fù)位到原狀以等待下一次啟動(dòng)信號(hào)來臨,。

  周期脈沖發(fā)生器模塊整體時(shí)序仿真如圖7所示,。

  圖7模擬了兩路脈沖的輸出,第一路輸出兩個(gè)脈沖,,第二路輸出一個(gè)脈沖,,當(dāng)兩路脈沖都輸出完成時(shí),系統(tǒng)恢復(fù)到初始狀態(tài),。而當(dāng)start信號(hào)再次給出一個(gè)啟動(dòng)脈沖后,,將再執(zhí)行一次任務(wù)。

  6 結(jié)束語

  從模擬結(jié)果看出,,本文給出的設(shè)計(jì)完全可以達(dá)到設(shè)計(jì)要求,。由于FPGA的運(yùn)行速度最高可以達(dá)到100 MHz量級(jí),輸出的脈沖調(diào)節(jié)步長和最小寬度都可以到ns量級(jí),。在此基礎(chǔ)上,,筆者設(shè)計(jì)了一個(gè)多路可調(diào)脈沖周期的時(shí)序電路,并運(yùn)用在團(tuán)簇粒子的核物理實(shí)驗(yàn)中,。收到滿意效果,。

  首先.外部的復(fù)位信號(hào)reset給出一個(gè)時(shí)鐘周期寬的脈沖,復(fù)位內(nèi)部各個(gè)信號(hào)及觸發(fā)器,。
然后,,在下一個(gè)有效時(shí)鐘時(shí)刻,外部start信號(hào)給出一個(gè)時(shí)鐘周期寬度的脈沖,,用來啟動(dòng)計(jì)數(shù)器的工作,。在設(shè)計(jì)中,當(dāng)start信號(hào)有效時(shí)(設(shè)計(jì)為高有效),,外部數(shù)據(jù)high加載到Q,,當(dāng)Q不為零時(shí),輸出信號(hào)pulse將跳變?yōu)楦唠娖?,?dāng)Q減到零的時(shí)候,,pulse信號(hào)再跳變回低電平。這個(gè)脈沖信號(hào)的后沿將被后面的由兩個(gè)D觸發(fā)器構(gòu)成的檢測單元捕獲,,并在pulse信號(hào)的下降沿后產(chǎn)生一個(gè)時(shí)鐘周期寬的脈沖,,定義為done信號(hào),表示該信號(hào)完成輸出,。




 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。