做者:桂。html
時間:2018-05-07 19:11:23算法
連接:http://www.cnblogs.com/xingshansi/p/9004492.html app
前言ide
該文私用,不按期更新,主要彙總記錄Xilinx經常使用的基本模塊,列出清單,方便查閱。ui
關於原語,主要參考【原語時序爲何好,一個猜測是:我吃不一樣的食物,要去不一樣的餐廳,跑的路程天然多一些;而若是我有這些原材料,本身動手,費點功夫但跑的路少,路程長短對應時間長度、對應時序特性,這個是本身想固然,須要結合CLB特性。 此處待驗證】:this
7series_hdl.pdfcode
1、模塊彙總component
路徑:印象筆記-1/0019/001htm
描述:三個數加、減混合運算
路徑:印象筆記-1/0019/002
描述:數據延拍,延遲delayval-1拍
路徑:印象筆記-1/0019/003
描述:兩個數的加、減運算(實數)
路徑:*/003
描述:求絕對值(實數),與addsub_premitive相似,符號位做爲標誌位,正數x = 0 + x,負數x = 0 - x,輸出即爲絕對值。
路徑:*/004
描述:求兩個數據的最大值
路徑:*/005
描述:複數幅度近似估計。
藉助複數幅值近似估計一文的思路,進行復數幅度的近似計算,其中以上幾個模塊,此處被調用。
路徑:*/006
描述:求相反數-原語, 0 latency.
路徑:*/007
描述:4種經常使用延拍思路
路徑:*/008
描述:主要借鑑FFT節省資源的思路一文的思路,一個複數乘法須要3個乘法器。latency:0
乘法位寬的特性:
實數: 對於無符號數:n_bit x m_bit <= m+n_bit,有符號各添加1bit符號位
複數:有符號數,(n+1_bit x (m+1)_bit <= (m+n+2)_bit
output signed [2*width-1:0] outr; output signed [2*width-1:0] outi; assign outr = (ar-ai)*bi+(br-bi)*ar; assign outi = (ar-ai)*bi+(br+bi)*ai;
路徑:*/009
描述:複數共軛相乘,與複數相乘相似,bi換作-bi便可。直接處理內部也是調用DSP48,此處採用IP核(DSP48)進行硬件描述。 latency:4 clocks
關於DSP48,可參考:基礎004_V7-DSP Slice,各IP核具體參數設置,參考印象筆記*/009截圖。
路徑:*/010
描述: 複數數據移位,本質上:1)[實部, 虛部]拼成一個長數據,直接按實數移位的思路移位便可; 2)實部、虛部分別按照實數移位思路移位便可; 這裏單獨列出來,主要是改用shift_ram進行移位操做,思路上並沒有新意。 shift RAM參數設置可參考印象筆記*/010截圖。depth即爲延遲的拍數。
wire [datwidth*2-1:0] din = {din_i, din_r};
路徑:*/011
描述:CORDIC計算幅度、相位,cordic原理可參考:Cordic算法簡介。
主要分爲:象限斷定(-pi/2 ~ pi/2,所以根據xin符號位斷定便可。)
其中(補碼數據讀取參考:FIR基本型仿真_03)
x_new = x+y*2^-i;%此處移位寄存器實現 y_new = y-x*2^-i;%此處移位寄存器實現可藉助3- addsub_premitive模塊求解,標誌位由y符號位給出,generate迭代便可。
印象筆記目錄:
2、原語簡介
primitive 與 macro:
A primitive is the most basic FPGA element that can be instantiated with out any extra logic.
A macro is basically a combination of different primitives that requires logic beyond the most basic components. Primitives can be instantiated while macros cannot be instantiated in HDL.
We can add a macro to a schematic and generate the HDL so you can view combination of logic inside of the macro. We can then use this HDL in our design.
以一個基本的加法器舉例:
查看schematic:
其中LUT爲查找表,實現邏輯功能,因爲LUT是基本單元,可調用原語,以LUT3爲例:
原語在hdl.pdf或language template可查看: