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