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