新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于CycloneII系列FPGA的DDFS信號源實現

        基于CycloneII系列FPGA的DDFS信號源實現

        作者: 時間:2009-12-11 來源:網絡 收藏

        3 實現
        根據的原理,其設計原理如圖2所示。其中控制單元由有限狀態機構成。雖然整個系統的控制不一定需要使用有限狀態機,但由于使用的芯片不支持異步的ROM,即從地址鎖存進入ROM單元,到數據從ROM中讀出有至少一個時鐘周期以上的延時。因此采用狀態機來進行控制,可以達到較好的輸出與時鐘同步。控制流程為:時鐘信號進入控制單元,由它產生地址發生單元的輸入時鐘adrclk,地址發生單元在時鐘adrclk的驅動下,結合輸入的步進信號Step,產生地址及此地址所對應的象限Phase,此地址產生后立即輸入到ROM單元中,過兩個時鐘周期后,控制單元從ROM存儲單元中讀出輸入地址對應的數據,并在時鐘的控制下,將前面所產生的象限值Phase與ROM數據一起送到補碼轉換單元,補碼轉換單元根據Phase的值來決定是否需要進行補碼轉換,若需要,則進行補碼運算并將數據輸出,若不需要,則直接將數據輸出。下面給出各模塊的具體設計細節。

        本文引用地址:http://www.104case.com/article/191855.htm

        (1)控制單元:控制單元是整個系統的核心部件。由一個簡單的有限狀態機構成。其狀態轉換圖如圖3所示。

        (2)地址發生單元:設計思路為根據輸入的Step值,計算出總共四個象限所需取值的點數,也就可以計算出一個象限所要取值的點數m,然后在時鐘作用下進行計數,當計數值達m個時,說明一個象限內已經取完點,此時phase自加1,計數變量重新置零。由于在(0,π/2)sin的函數值為從0→1變化;(π/2,π)函數值從1→0變化;(π,3π/2)函數值從0→-1變化;(3π/2,2π)函數值從-1→0變化。故在(0,π/2)和(π,3π/2)地址值從0→32767,每隔一個步進Step讀一個數據,當然后者的數據要經過補碼單元的處理;而在(π/2,π)和(3π/2,2π)象限,地址值則從32767→0,每隔一個步進Step讀一個數據即可,同樣的,后者的數據也要經過補碼單元的處理。
        (3)ROM存儲單元:ROM存儲單元的數據可以通過Matlab進行計算獲得,并將其存儲為*.mif的文件格式。在進行ROM設計時,調用此mif文件作為ROM的初始數據文件即可。
        (4)補碼轉換單元:根據目前地址所處象限來決定是否需要進行補碼轉換。如產生正弦信號時,(0,π)象限sin函數值為正,而(π,2π)象限上sin函數值為負,因此在(π,2π)象限時,需要對輸出數據進行補碼轉換。補碼轉換單元較簡單,根據二進制數取補的原理進行設計即可。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 磐安县| 京山县| 卢龙县| 太原市| 灵璧县| 遵义县| 灯塔市| 宜黄县| 雅安市| 习水县| 马山县| 上蔡县| 金坛市| 青铜峡市| 阳泉市| 习水县| 乳山市| 沙河市| 霍城县| 拉萨市| 乌兰察布市| 泰宁县| 库尔勒市| 阳东县| 邓州市| 石景山区| 瓮安县| 山西省| 台江县| 遵化市| 汾阳市| 丰顺县| 罗平县| 浙江省| 通海县| 五家渠市| 洛南县| 海林市| 剑河县| 南川市| 贺州市|