FPGA技術(shù)高頻疲勞試驗(yàn)機(jī)控制器
4.2 運(yùn)算器設(shè)計(jì)
運(yùn)算器是用來(lái)將頻率數(shù)據(jù)轉(zhuǎn)換成正弦波點(diǎn)與點(diǎn)之間的定時(shí)數(shù)據(jù)。該運(yùn)算器實(shí)際上最終可轉(zhuǎn)換成一除法器。該除法器描述如下:
—VECTOR(WIDTH— R-1 DOWNTO 0));
END COMPONENT;
上述描述實(shí)際上是調(diào)用了Altera公司的參數(shù)化模塊庫(kù)(LPM)中的一個(gè)元件。元件描述后,只要在程序中用Generic map和port map語(yǔ)句映射該元件即可。所要注意的是,上述口信號(hào)remainder是numerator和denominator模運(yùn)算的結(jié)果,所以應(yīng)將remainder與denominator/2相比較,實(shí)際結(jié)果應(yīng)在比較的基礎(chǔ)上決定加1還是不加1。
4.3 定時(shí)器設(shè)計(jì)
定時(shí)器根據(jù)運(yùn)算器傳來(lái)的定時(shí)數(shù)據(jù)定時(shí)。它可以通過(guò)對(duì)基準(zhǔn)時(shí)鐘計(jì)數(shù)來(lái)實(shí)現(xiàn),當(dāng)定時(shí)時(shí)間一到,就觸發(fā)波形的輸出。
設(shè)計(jì)中采用了兩個(gè)計(jì)數(shù)模塊來(lái)同時(shí)計(jì)數(shù),一個(gè)模塊計(jì)數(shù)時(shí)鐘的上邊沿,而另一模塊則計(jì)數(shù)時(shí)鐘的下邊沿。這樣相當(dāng)于使系統(tǒng)時(shí)鐘頻率提高了一倍,充分利用了系統(tǒng)資源。
4.4 波形輸出
波形輸出是當(dāng)定時(shí)器滿足定時(shí)要求觸發(fā)后就輸出此時(shí)的正弦值,多個(gè)點(diǎn)的觸發(fā)輸出就形成了一個(gè)正弦波。
為節(jié)省芯片資源,這部分求某時(shí)正弦值的功能不采用構(gòu)造運(yùn)算器來(lái)算出正弦值,而是利用查表結(jié)構(gòu)。象Xilinx公司FPGA芯片則可以利用CLB塊來(lái)配置RAM或直接利用Logiblox來(lái)生成。還有象Altera公司的Flex10k系列就用查找表結(jié)構(gòu)(LUT)來(lái)構(gòu)建片內(nèi)ROM或RAM。在工程文件中創(chuàng)建RAM或ROM塊以后,可以通過(guò)將各時(shí)刻的正弦值(以ASCII字符表示)寫(xiě)進(jìn)MIF文件(初始化文件)中,從而存儲(chǔ)在RAM或ROM塊中。在定時(shí)器觸發(fā)后生成該時(shí)的地址,通過(guò)查詢(xún)?cè)揜AM或ROM塊就可輸出該時(shí)得正弦值。
5 芯片的具體實(shí)現(xiàn)
本系統(tǒng)的FPGA采用Altera公司的Flex10k系列芯片。芯片利用開(kāi)發(fā)軟件Max+plusII將各個(gè)模塊(圖1虛線框部分)用VHDL語(yǔ)言描述并輸入,由軟件自動(dòng)編譯、綜合、布局和布線,生成編程用的數(shù)據(jù)文件,加載到FPGA的配置存儲(chǔ)單元。對(duì)FPGA芯片進(jìn)行配置可有多種模式,由于本系統(tǒng)中有單片機(jī),所以采用串行從模式,省掉了用一片EPROM來(lái)存儲(chǔ)編程數(shù)據(jù)。當(dāng)系統(tǒng)上電時(shí),單片機(jī)自動(dòng)將存在其內(nèi)部的配置數(shù)據(jù)送到FPGA內(nèi)部存儲(chǔ)單元中。
這個(gè)技術(shù)基本上多運(yùn)用于電路方面.
評(píng)論