一種多通道時鐘分頻和觸發(fā)延遲電路的設計
等占空比奇數(shù)分頻設計所采用的方法是:假設所需要的分頻系數(shù)為n(n為奇數(shù)),首先定義2個buffer類型的信號端口clk1和clk2,在上升沿敏感的情況下,當從0計數(shù)到(n-3)/2時,給clk1賦值1;當從(n-3)/2計數(shù)到n-1時,給clk1賦值0;同樣的,在下降沿敏感的情況下,0到(n-3)/2時給clk2賦值1,(n-3)/2到n-1時給clk2賦值0。由于VHDL語言中process里的語句都是并行執(zhí)行的,所以再將2路信號相或輸出便得到分頻數(shù)為n的分頻信號。為了實現(xiàn)多路的觸發(fā)延時,和前面所述多路分頻電路一樣,在頂層文件中做個例化,取各種不同的奇數(shù)來驗證輸出結(jié)果。下圖4中clkout1~clkout8分別為2,3,4,5,6,7,8,9次分頻,可以看到所輸出的信號均為同步等占空比的分頻信號。更多路、其他分頻信號的實現(xiàn)可以稍加修改頂層程序即可。本文引用地址:http://www.ex-cimer.com/article/190787.htm
實驗采用50 MHz晶振,時鐘周期為20μs。從圖4中可以看出每路分頻信號均為等占空比,由于偶數(shù)和奇數(shù)分開進行分頻,因此是對奇數(shù)分頻的輸出是很精確的,例如clkout6輸出的7分頻信號里剛好是7個基準時鐘周期。系統(tǒng)中在放電前需要設定分頻參數(shù)時,只需要發(fā)送相應的指令改動頂層文件中的n值即可。
3 觸發(fā)延遲設計
時鐘分頻電路是為了使各子系統(tǒng)能夠更好的做到時序同步,而觸發(fā)延遲電路是對子系統(tǒng)進行定時啟動和停止各正在運行的子系統(tǒng)。觸發(fā)延遲模塊主要是將輸入的原始觸發(fā)信號按延時參數(shù)進行延時輸出,為EAST中的數(shù)據(jù)采集和其它子系統(tǒng)提供精確的同步觸發(fā)信號。本設計采用VHDL中移位寄存器來實現(xiàn)觸發(fā)延遲功能。首先定義一個類屬參數(shù)delay_count,在頂層設計實體中可以設置延遲參數(shù)。然后在延遲程序模塊的結(jié)構體中定義一個移位寄存器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的延遲信號。其他任意時間的延遲都可以這樣方便的實現(xiàn),延遲誤差在ns級范圍。
4 結(jié)語
本文所使用的時鐘分頻和觸發(fā)延遲實現(xiàn)簡單,充分發(fā)揮了FPGA邏輯器件的高集成度、高速、高可靠性和并行處理能力的優(yōu)勢,方便每次放電時設定時鐘和觸發(fā)參數(shù),非常適合EAST分布式中央定時同步系統(tǒng)中分布式節(jié)點的設計。在FPGA上的分頻延時設計與仿真工作已經(jīng)完成,接下來的工作就是要把設計文件下載到芯片中,使設計工作賦予實際。結(jié)合FPGA的高效性和嵌入式系統(tǒng)的以太網(wǎng)通信功能,便可以實現(xiàn)EAST分布式中央定時同步系統(tǒng)的時鐘同步和觸發(fā)延遲功能,滿足EAST分布式節(jié)點對各子系統(tǒng)的同步觸發(fā)的要求。
評論