新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的移位寄存器流水線結構FFT處理器設計與實

        基于FPGA的移位寄存器流水線結構FFT處理器設計與實

        作者: 時間:2010-07-16 來源:網絡 收藏

        對于,在實現時,各級的前級深度為N/2-1,從本質而言,是使運算開始的時鐘上升沿到來時,數據已經出現在碟算模塊輸入線上,而不需要下一個時鐘的驅動來移出寄存器,比如第二級的級數為63。這樣,運算周期正好是2的倍數,從而方便使用計數器的各位直接對開關進行控制。
        同時,計數器還可以用來產生所需旋轉因子的RAM地址。根據各級蝶形運算所需旋轉因子的規律,可以利用計數器的高位補零來產生查找表的地址。比如,對于第一級,因為需要在最低位第一次出現1時提供,第二次出現1時提供,…,以此類推,周期為128,所以可以使用計數器的低七位作為地址。對于第二級,由于所需要的地址為偶數,可以由計數器的[6:1]和最低位置O產生。表l為8點時使用三位計數器輸出旋轉因子的地址情況。

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


        控制和地址產生模塊的仿真結果如圖5所示,其中sel代表開關控制,addr代表產生的地址。


        3.2 蝶形運算模塊
        蝶算模塊由一個復數加法器,一個復數減法器和一個旋轉因子的復數乘法器構成,如圖6所示。


        旋轉因子乘法器通常由4次實數乘法和2次加/減法運算實現,但因為cos和sin的值可以預先存儲,通過下面的算法可以簡化復數乘法器:
        (1)存儲如下三個系數:C,C+S,C-S
        (2)計算:E=X-Y和Z=C*E=C*(X-Y)
        (3)用R=(C-S)*Y+Z,I=(C+S)*X-Z,
        得到需要的結果。
        這種算法使用了3次乘法,1次加法和2次減法,但是需要使用存儲3個表的ROM資源。
        設計中數據的輸入為16位復數,所以將旋轉因子cos(2kπ/N),sin(2kπ/N)量化成帶符號數的16位二進制數后,存儲到ROM中,由于值域不同,需要注意C+S和C-S的表要比C表多1位精度。
        運算后的結果需要除以量化時乘以的倍數16b011111llllllllll。具體實現時由于除法運算在器件需要消耗較多的資源,設計中采用二進制數移位的方法來實現除法運算。為了防止數據溢出,設計對輸出結果除以2。圖7為蝶形運算模塊的RTL級結構圖。




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 美姑县| 灵石县| 宁安市| 富源县| 甘肃省| 长子县| 青岛市| 二连浩特市| 宾川县| 衢州市| 翼城县| 镇远县| 将乐县| 台南县| 龙川县| 左贡县| 博白县| 宁国市| 都安| 正安县| 高雄市| 中方县| 尖扎县| 大田县| 遂溪县| 融水| 绥棱县| 濮阳县| 宜宾县| 江油市| 瑞丽市| 尼玛县| 清水县| 武宣县| 漯河市| 东港市| 昌吉市| 扶沟县| 仙游县| 沙湾县| 濮阳市|