<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于VHDL的時鐘分頻和觸發(fā)延遲電路在FPGA上的實(shí)現(xiàn)

          基于VHDL的時鐘分頻和觸發(fā)延遲電路在FPGA上的實(shí)現(xiàn)

          作者: 時間:2017-06-05 來源:網(wǎng)絡(luò) 收藏

          0 引言

          EAST(先進(jìn)實(shí)驗(yàn)超導(dǎo)托卡馬克)是我國自行設(shè)計(jì)研制的國際首個全超導(dǎo)托卡馬克裝置。是EAST托卡馬克裝置的重要組成部分。EAST中央定時與同步系統(tǒng)為分布廣泛的數(shù)據(jù)采集系統(tǒng)和其它子系統(tǒng)提供精確的方波時鐘信號,以及精確的同步觸發(fā)信號,控制各子系統(tǒng)按照預(yù)設(shè)的時序流程工作。該系統(tǒng)主要由EAST可視化中央控制臺,時序信號光纖網(wǎng),核心模塊,若干個分布式節(jié)點(diǎn)以及外圍隔離驅(qū)動設(shè)備組成,見圖1。核心模塊負(fù)責(zé)向各分布式節(jié)點(diǎn)發(fā)送同步的基準(zhǔn)系統(tǒng)時鐘和系統(tǒng)觸發(fā)信號。分布式節(jié)點(diǎn)根據(jù)設(shè)置對核心模塊發(fā)送的基準(zhǔn)時鐘信號進(jìn)行分頻,得到所需要頻率的時鐘發(fā)送到子系統(tǒng)。通過設(shè)置的模件參數(shù)可以得到子系統(tǒng)所需要的觸發(fā)時刻。

          目前,進(jìn)行分頻電路設(shè)計(jì)主要采用定時器來實(shí)現(xiàn),8254計(jì)數(shù)器所支持的最高時鐘頻率有限(最高為10 MHz)以及誤差較大也不是理想的實(shí)現(xiàn)方案??删幊踢壿嬈骷﨔PGA是當(dāng)今最熱門的邏輯開發(fā)器件之一,它在工作最高頻率、集成度、時序控制能力上具有無與倫比的優(yōu)勢。因此選用FPGA芯片來實(shí)現(xiàn)時鐘分頻和電路是當(dāng)前的主流。在使用FPGA做時鐘分頻設(shè)計(jì)時,文獻(xiàn)設(shè)計(jì)計(jì)數(shù)器的時候用做了分頻器的設(shè)計(jì),但是只討論了偶數(shù)的分頻;文獻(xiàn)在運(yùn)動控制系統(tǒng)中使用Verilog描述語言在FPGA環(huán)境下對通用整數(shù)分頻器進(jìn)行了設(shè)計(jì),但在通用任意整數(shù)分頻器中分頻系數(shù)的設(shè)置稍顯復(fù)雜,不利于分布式中央定時系統(tǒng),并且主要討論的都是單路輸出;文獻(xiàn)在FPGA上實(shí)現(xiàn)了奇數(shù)和偶數(shù)的通用分頻器,將半整數(shù),奇數(shù),偶數(shù)放在一個模N計(jì)數(shù)器里進(jìn)行預(yù)置,這樣分頻系數(shù)的設(shè)定比較方便,但輸出奇數(shù)分頻時鐘信號時的誤差過大,達(dá)不到分布式定時同步系統(tǒng)的精度。而對輸出方面,之前這方面的研究主要采用的是模擬電路實(shí)現(xiàn)的方法,不易進(jìn)行遠(yuǎn)程控制和更改。
          本文首先介紹的基本組成結(jié)構(gòu),隨后具體給出了時鐘分頻和觸發(fā)延遲電路的邏輯設(shè)計(jì)。利用FPGA芯片來實(shí)現(xiàn)對輸入基準(zhǔn)時鐘信號進(jìn)行多通道任意整數(shù)倍的等占空比分頻輸出,同時對觸發(fā)脈沖進(jìn)行任意時刻延遲的多路輸出。本設(shè)計(jì)主要采用語言來設(shè)計(jì),利用QuartusⅡ9.0對設(shè)計(jì)進(jìn)行了仿真分析,結(jié)果表明該設(shè)計(jì)滿足分布式定時觸發(fā)系統(tǒng)的分頻延遲功能。

          本文引用地址:http://www.ex-cimer.com/article/201706/349081.htm

          1 系統(tǒng)組成

          EAST定時與同步系統(tǒng)主要由一個核心模塊和多個分布式節(jié)點(diǎn)構(gòu)成,核心模塊給分布式節(jié)點(diǎn)提供一道基準(zhǔn)時鐘信號和一道基準(zhǔn)觸發(fā)信號,各分布式節(jié)點(diǎn)負(fù)責(zé)對基準(zhǔn)時鐘和觸發(fā)進(jìn)行分頻和延時處理,為子系統(tǒng)系統(tǒng)提供它所需要的時鐘和觸發(fā)??傮w系統(tǒng)結(jié)構(gòu)如圖1所示。分布式節(jié)點(diǎn)是該中央定時觸發(fā)系統(tǒng)的核心,而時鐘分頻和觸發(fā)延遲也是分布式節(jié)點(diǎn)最重要的任務(wù)。分布式節(jié)點(diǎn)主要由微處理器和FPGA組成,外圍由以太網(wǎng)絡(luò)端口,光電轉(zhuǎn)化模塊等等組成。微處理器接收核心模塊發(fā)送的分頻系數(shù)和延遲參數(shù),F(xiàn)PGA主要根據(jù)微處理器傳輸來的參數(shù)對輸入的基準(zhǔn)時鐘進(jìn)行相應(yīng)的分頻,并對核心模塊發(fā)送的主觸發(fā)信號進(jìn)行延遲輸出。時鐘同步系統(tǒng)分布式節(jié)點(diǎn)結(jié)構(gòu)如圖2所示。


          2 時鐘分頻設(shè)計(jì)

          對基準(zhǔn)時鐘的整數(shù)分頻主要分為等占空比偶數(shù)分頻和等占空比奇數(shù)分頻,它們的分頻原理也是不同的,必須要分別對待。對于單通道偶數(shù)分頻,設(shè)計(jì)比較簡單,之前已經(jīng)有很多這方面的研究,在此不再贅述。在本設(shè)計(jì)中,由于EAST定時觸發(fā)系統(tǒng)需要多路分頻信號,可以在程序設(shè)計(jì)的時候采用里面的類屬參量和元件例化語句,類屬參量Generic是一種端口界面常數(shù),常以一種說明的形式放在實(shí)體或塊結(jié)構(gòu)體前的說明部分。類屬參數(shù)映射的綜合處理較簡單,所有的參數(shù)配置都通過Generic map來傳遞,子模塊內(nèi)部只需要根據(jù)上層模塊指定的參數(shù)進(jìn)行綜合即可。整數(shù)時鐘分頻電路需要在一個程序中可以同時對基準(zhǔn)時鐘進(jìn)行奇數(shù)和偶數(shù)分頻,所以在頂層文件中需要聲明元件的語句格式如下:

          時鐘分頻設(shè)計(jì)的RTL Viewer,即在FPGA中所設(shè)計(jì)的電路原理圖如圖3所示,所有的計(jì)數(shù)分頻模塊都采用同樣的基準(zhǔn)時鐘,以保證每路時序信號能夠完全的同步。等占空比奇數(shù)分頻設(shè)計(jì)所采用的方法是:假設(shè)所需要的分頻系數(shù)為n(n為奇數(shù)),首先定義2個buffer類型的信號端口clk1和clk2,在上升沿敏感的情況下,當(dāng)從0計(jì)數(shù)到(n-3)/2時,給clk1賦值1;當(dāng)從(n-3)/2計(jì)數(shù)到n-1時,給clk1賦值0;同樣的,在下降沿敏感的情況下,0到(n-3)/2時給clk2賦值1,(n-3)/2到n-1時給clk2賦值0。由于VHDL語言中process里的語句都是并行執(zhí)行的,所以再將2路信號相或輸出便得到分頻數(shù)為n的分頻信號。為了實(shí)現(xiàn)多路的觸發(fā)延時,和前面所述多路分頻電路一樣,在頂層文件中做個例化,取各種不同的奇數(shù)來驗(yàn)證輸出結(jié)果。下圖4中clkout1~clkout8分別為2,3,4,5,6,7,8,9次分頻,可以看到所輸出的信號均為同步等占空比的分頻信號。更多路、其他分頻信號的實(shí)現(xiàn)可以稍加修改頂層程序即可。

          實(shí)驗(yàn)采用50 MHz晶振,時鐘周期為20μs。從圖4中可以看出每路分頻信號均為等占空比,由于偶數(shù)和奇數(shù)分開進(jìn)行分頻,因此是對奇數(shù)分頻的輸出是很精確的,例如clkout6輸出的7分頻信號里剛好是7個基準(zhǔn)時鐘周期。系統(tǒng)中在放電前需要設(shè)定分頻參數(shù)時,只需要發(fā)送相應(yīng)的指令改動頂層文件中的n值即可。

          3 觸發(fā)延遲設(shè)計(jì)

          時鐘分頻電路是為了使各子系統(tǒng)能夠更好的做到時序同步,而觸發(fā)延遲電路是對子系統(tǒng)進(jìn)行定時啟動和停止各正在運(yùn)行的子系統(tǒng)。觸發(fā)延遲模塊主要是將輸入的原始觸發(fā)信號按延時參數(shù)進(jìn)行延時輸出,為EAST中的數(shù)據(jù)采集和其它子系統(tǒng)提供精確的同步觸發(fā)信號。本設(shè)計(jì)采用VHDL中移位寄存器來實(shí)現(xiàn)觸發(fā)延遲功能。首先定義一個類屬參數(shù)delay_count,在頂層設(shè)計(jì)實(shí)體中可以設(shè)置延遲參數(shù)。然后在延遲程序模塊的結(jié)構(gòu)體中定義一個移位寄存器trigger_r(delay_count-1 downto 0),其中delay_count代表所要延遲的位數(shù)。然后每隔一個時鐘讓寄存器左移一位,直至將原始觸發(fā)信號放到寄存器trigger_r的最后一位,最后再把它輸出,結(jié)果便是延遲了delay_count個單位時鐘的觸發(fā)信號了,該移位寄存器的功能語句如下所示:

          4路延遲仿真結(jié)果如圖5所示。圖中每個時鐘周期為20 ns,其中,delclk1是延遲10 ns×10=0.1μs的觸發(fā)信號,delclk2是延遲0.3μs的觸發(fā)信號,delclk3和delclk4分別是延遲0.9μs和1.2 μs的延遲信號。其他任意時間的延遲都可以這樣方便的實(shí)現(xiàn),延遲誤差在ns級范圍。

          4 結(jié)語

          本文所使用的時鐘分頻和觸發(fā)延遲實(shí)現(xiàn)簡單,充分發(fā)揮了FPGA邏輯器件的高集成度、高速、高可靠性和并行處理能力的優(yōu)勢,方便每次放電時設(shè)定時鐘和觸發(fā)參數(shù),非常適合EAST分布式中分布式節(jié)點(diǎn)的設(shè)計(jì)。在FPGA上的分頻延時設(shè)計(jì)與仿真工作已經(jīng)完成,接下來的工作就是要把設(shè)計(jì)文件下載到芯片中,使設(shè)計(jì)工作賦予實(shí)際。結(jié)合FPGA的高效性和嵌入式系統(tǒng)的以太網(wǎng)通信功能,便可以實(shí)現(xiàn)EAST分布式中央定時同步系統(tǒng)的時鐘同步和觸發(fā)延遲功能,滿足EAST分布式節(jié)點(diǎn)對各子系統(tǒng)的同步觸發(fā)的要求。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();