基于FPGA的核物理實驗定標器的設計與實現
FPGA設計經過4個基本階段:設計輸入、設計編譯、設計驗證和器件編程。首先,根據系統的邏輯功能生成頂層結構圖,如圖4所示。然后,分成幾個小模塊進行下一級設計。由此由上而下分析其邏輯功能,從底層進行設計編譯,每一級都進行波形驗證。當最后頂層模塊的邏輯功能在波形仿真中滿足系統時序要求時,才可進行器件編程。
本文引用地址:http://www.104case.com/article/85071.htm由于FLEX10K在工作期間,將配置數據保存在SRAM中,而SRAM數據是易丟失的。SRAM單元必須在器件加電后裝入配置數據,且配置完成后,它的存儲器和I/O引腳必須被初化。初始化后,器件進入用戶模式,開始系統運行。對于FLEX10K系列器件,Altera公司提供了4種配置方案:EPC1(或EPC1441)EPPOM方式配置法、被動串行法、被動并行同步法、被動并行異步法。對器件進行配置時,我們先用被動串行法(passive serial)。這種方式是通過下載電纜對器件進行配置的,適合于調試階段。當整個系統設計完成后,利用EPPOM方式對器件進行配置。這樣固化在EPROM中的數據將在系統上電時對FPGA芯片配置,其中EPROM芯片選用EPC1441。
3.2 FPGA單元模塊設計
FPGA單元主由脈沖計數模塊,定時控制模塊,地址鎖存、譯碼、總線驅動、擴展模塊這3大模塊組成。其中脈沖計數模塊和定時控制模塊用來實現對輸入脈沖的計數次數的測量;地址鎖存、譯碼、總線驅動和擴展這部分模塊,主要實現各數據在總線上的分時傳輸。總線上的數據包括脈沖計數數據和電源模塊的高壓數據,以及來自單片機的數據總線D0~D7的數碼顯示用數據。此模塊中的地址譯碼部分,提供鎖存單元片選信號。圖5所示為FPGA頂層電路圖。
在具體設計時,考慮到計數脈沖寬度為0.1~100μs,最高計數率為2MHz,即計數位數達7位,所以設計中的脈沖良數模塊就相當于1個7位的BCD加計數器;而定時控制模塊相當于1個7位的BCD減計數器。減計數器的預置初始值由定時選擇開關控制,從而控制數的時間。CLR信號為“計數鍵”產生的一脈沖信號,標志計數開始,而減計數器減到0時加計數器即停止計數。這部分設計通過調用MAX+PLUS II提供的庫函數用AHDL語言結合圖形輸入完成。地址譯碼、鎖存、總線驅動模塊主要由D觸發器和I/O接口設計而成。由于數據傳輸中用的是雙向輸入/輸出端口,但是Altera芯片的引腳端口并不可以直接使用,需要加1個三態的邏輯門,因此,總線接口部分采用這2種函數原形(三態門和雙向端口)進行組合設計。
3.3 FPGA功能模塊仿真時序
在整個FPGA設計中,各單元模塊都是經過嚴格的設計驗證之后才繼續上一層設計的。這里主要使用MAX PLUS II的TIMER進行波形仿真,來驗證各子模塊的功能,判斷其時序是否滿足要求。若時序稍有不對,甚至僅是小毛刺,也要立即更改輸入設計。這樣,設計的精度才高,系統工作才穩定。當每個模塊最終都在時序上滿足邏輯功能需求時,設計才能完成。圖6為FPGA在MAX PLUS II環境下綜合設計后的時序仿真波形圖。
4 單片機軟件設計
軟件部分主要是單片機AT89C51對系統進行控制及相應的數據處理,整個控制流程如圖7所示。
結束語
本文給出了一種用于核物理實驗中的G-M計數裝置定標器的新設計方案。此方案在傳統的實驗原理下,對舊儀器在電路和功能上做了較大程度的改進。在設計中采用EDA設計思想,以AT89C51單片機作為數據傳輸的控制核心,用Altera現場可編程邏輯器件(FLEX10K系列的FPGA)對核心計數部分電路進行效而靈活的集成,并在此基礎上,擴展了數據的存儲功能,增加了與PC機通信的RS232串行接口,從而更加智能化。
評論