比較器如何用DSP48實現
- 2019 年 10 月 30 日
- 筆記
從結構上而言,DSP48可分為輸入暫存器組、MUX、乘法單元、算數邏輯單元(ALU)和輸出暫存器組。如下圖所示。

圖片來源: figure 2-3, ug579
實際上,DSP48的功能是很強大的,除了常規的乘法運算、乘累加運算、加法、累加等之外,還可以用作關係運算,以比較兩個數的大小。其基本思想是將關係運算轉換為減法運算,並對結果進行檢測。這種檢測是通過DSP48的模式檢測功能來檢查ALU的輸出是否與指定模式匹配。尤其是對於大位寬的比較,採用該方法一方面可減少LUT的利用率;另一方面還可提高系統時鐘頻率,加速時序收斂。
來看一個例子。兩個48-bit有符號整數a和b,需要判斷這兩個數是否相等。我們可以將關係運算(a==b)轉換為(a-b)。如果a與b相等,那麼兩者之差應為0。只需要把模式檢測設置為全0即可。這樣,要求數據a由DSP48的A埠(30-bit)和B埠(18-bit)進入,數據b由DSP48的C埠進入。需要對DSP48的OPMODE和ALUMODE設置,以確保進入ALU的數據分別來自於埠C和A:B(表示A與B拼接),同時保證ALU工作模式為減法模式。整體電路如下圖所示。

同時,模式檢測設置如下圖所示。為了提高時鐘頻率,可對輸入和輸出設置流水暫存器。這樣,實際檢測結果將晚於輸入兩個時鐘周期之後獲得。

模擬結果如下圖所示。
