phpt測試文件說明 phpt文件用於PHP的自動化測試,這是PHP用自己來測試自己的測試數據用例文件。 測試腳本通過執行PHP源碼根目錄下的run-tests.php,讀取phpt文件執行測試。 phpt文件包含 TEST,FILE,EXPECT 等多個段落的文件。在各個段落中,TEST、FILE ...
筆者最近用FPGA實現的64點IFFT,記錄一下作為筆記也可以為各位讀者提供一個思路。(輸入12bit實數+12bit虛數)
IFFT演算法的原理這裡就不再贅述,主要講解演算法的實現過程。
如圖2:我們要用FPGA實現此演算法的話,利用流水線的思想,可分為如下幾步:1.輸入重新排序。2.對應數據與蝶形運算元相乘。3.將復乘結果與對應數據相加/減得到輸出。4.輸出作為輸入參與下一級運算直到最後一級。
1.輸入排序:如下麵圖1和圖2所示,輸入序列的順序就是自然序的二進位的倒序對應的十進位數。
圖1
圖2
2.復乘運算:復乘運算的對象是每一級的輸入數據與旋轉因數。旋轉因數實際的值是實部虛部都不大於1的複數,如果不對旋轉因數進行放大就去參與復乘運算需要浮點運算,而fpga實現浮點運算特別消耗資源,所以這裡我將旋轉因數×2^10後變成12bit複數與對應的每一級輸入進行復乘運算。運算工具用vivado自帶的Complex Multiplier IP核。
註:因為 在運算前將旋轉因數×2^10,對於復乘後的結果要右移十位。此外,我們可以根據結果適當刪去不需要的位數。例如這裡的復乘是實虛12bit數據×實虛12bit旋轉因數,本來複乘需要乘法和加法兩次運算,而每次運算導致結果都會增加1bit,但在這裡擴大後的旋轉因數最大隻有2^10,與數據相乘後的最大值並不達到要擴充位數的標準,所以這裡的復乘運算的結果是實部虛部都是13bit的複數,於是我們可以對Complex Multiplier IP核輸出的結果進行截位以減少資源消耗。
3.加/減法運算:將復乘後的結果與對應輸入相加/減得出這一級的輸出。
4.下一級重覆上述操作直到最後一級。
附:對於批量編輯代碼的問題,我們可以利用matlab提供的互動式操作方式去產生我們想要的結果複製後利用在文本編輯器的列模式下粘貼。