- Intel FPGA權威設計指南:基于Quartus Prime Pro 19集成開發環境
- 何賓編著
- 1359字
- 2021-10-29 21:33:52
1.5 DSP塊
本節將介紹Cyclone 10 GX器件內DSP塊的性能、資源、架構和應用。
1.5.1 DSP塊特性
Cyclone 10 GX器件中可變精度的DSP塊支持定點運算和浮點運算。
1.定點運算
(1)高性能、功耗優化和完全寄存的乘法操作;
(2)18位和27位字長;
(3)每個DSP塊有兩個18×19的乘法器或27×27的乘法器;
(4)內建加法、減法和64位雙累加寄存器,用于組合乘法結果;
(5)當禁止預加法器時,級聯19位或27位,當預加法器用于生成濾波器應用的抽頭延遲線時級聯18位;
(6)級聯64位輸出總線,將輸出結果從一個塊傳到下一個塊,而無須外部邏輯支持;
(7)硬件預加法器支持19位和27位模式,用于對稱濾波器;
(8)用于實現濾波器的18位和27位模式的內部系數寄存器組;
(9)具有分布式輸出加法器的 18 位和 27 位脈動有限沖激響應(Finite Impulse Response,FIR)濾波器;
(10)支持偏向的舍入支持。
2.浮點運算
(1)完全硬化的架構,支持乘法、加法、減少法、乘法-加法和乘法-減法;
(2)具有累加功能的乘法,以及動態累加器的復位控制功能;
(3)具有級聯求和功能的乘法;
(4)具有級聯減法功能的乘法;
(5)復雜的乘法;
(6)直接矢量點積;
(7)脈動FIR濾波器。
1.5.2 DSP塊資源
Cyclone 10 GX器件中用于定點運算的DSP資源如表1.25所示,用于浮點運算的DSP資源如表1.26所示。
表1.25 Cyclone 10 GX器件中用于定點運算的DSP資源

表1.26 Cyclone 10 GX器件中用于浮點運算的DSP資源

1.5.3 DSP塊架構
Cyclone 10 GX器件內可變精度DSP塊的構成元素如表1.27所示。
表1.27 Cyclone 10 GX器件內可變精度DSP塊的構成元素

用于定點算術18×19模式的可變精度的DSP塊的內部架構如圖1.61所示。
用于定點算術27×27模式的可變精度的DSP塊的內部架構如圖1.62所示。
用于浮點算術模式的可變精度的DSP塊的內部架構如圖1.63所示。
1.5.4 DSP塊應用
本節通過幾個設計實例,說明Cyclone 10 GX器件內DSP塊的使用方法。
1.帶有流水線有符號乘法的實現
一個帶有流水線的有符號數乘法器的 Verilog HDL 描述如代碼清單 1-19 所示,并且在“Assignment Editor”對話框中進行條件約束,如圖1.64所示,將第一級流水線放置在I/O塊中實現,而剩余的兩級輸入流水線在 DSP 塊的兩級流水線寄存器中實現,乘法的結果通過DSP內的流水線寄存器輸出。

圖1.61 用于定點算術18×19模式的可變精度的DSP塊的內部結構

圖1.62 用于定點算術27×27模式的可變精度的DSP塊的內部結構

圖1.63 用浮點算術模式的可變精度的DSP塊的內部結構

圖1.64 “Assignment Editor”對話框
代碼清單1-19 一個帶有流水線的有符號數乘法器的Verilog HDL描述


帶有流水線的有符號乘法器適配后的網表結構如圖 1.65 所示。該設計在底層 DSP 快內的布局和布線如圖1.66所示。

圖1.65 帶有流水線的有符號乘法器適配后的網表結構

圖1.66 帶有流水線的有符號乘法器適配后在DSP塊內的布局和布線
2.乘和累加運算的實現
一個乘和累加運算的 Verilog HDL 描述如代碼清單 1-20 所示。乘和累加運算映射后的網表結構(注:此處為了便于顯示,沒有使用適配后的網表結構)如圖1.67所示。

圖1.67 乘和累加運算映射后的網表結構
代碼清單1-20 一個乘和累加運算的Verilog HDL描述

思考與練習1-9:請讀者打開Chip Planner,查看乘和累加運算在兩個DSP塊內部的布局和布線。
3.浮點運算的實現
在設計中調用浮點IP核實現浮點數運算的Verilog HDL描述如代碼清單1-21所示。浮點運算映射后的網表結構(注:此處為了便于顯示,沒有使用適配后的網表結構)如圖 1.68所示。

圖1.68 浮點運算映射后的網表結構
代碼清單1-21 調用浮點IP核實現浮點數運算的Verilog HDL描述

思考與練習 1-10:請讀者打開 Chip Planner,查看浮點運算在 DSP 塊內部的布局和布線,并與圖1.68給出的結構進行比較。
- 電腦軟硬件維修大全(實例精華版)
- 平衡掌控者:游戲數值經濟設計
- 深入淺出SSD:固態存儲核心技術、原理與實戰(第2版)
- Learning Game Physics with Bullet Physics and OpenGL
- 嵌入式系統中的模擬電路設計
- 單片機系統設計與開發教程
- 單片機開發與典型工程項目實例詳解
- LPC1100系列處理器原理及應用
- 圖解計算機組裝與維護
- Java Deep Learning Cookbook
- 計算機組裝與維護(慕課版)
- 計算機組成技術教程
- Corona SDK Mobile Game Development:Beginner's Guide
- 創客電子:Arduino和Raspberry Pi智能制作項目精選
- Arduino案例實戰(卷Ⅳ)