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