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