課程概述
本課程主要講述採用大規模FPGA處理器實現典型數字信號處理的基本方法。課程以AMD Xilinx公司的超大規模FPGA為例,詳細講解了可編程邏輯器件的內部結構及其工作原理,概要介紹了FPGA的設計流程,針對其中的時鐘優化、流水線優化等FPGA優化技術進行了詳細說明。在此基礎上,面向採用FPGA開發數字信號處理系統過程中需重點考量的兩個問題:低功耗設計、時序收斂設計技術進行了詳細講解。最後,本課程深入淺出地講解了採用大規模FPGA實現數字信號處理的典型實例:包括基本算術運算單元設計、FIR濾波器設計、FFT處理設計,以及FPGA實現卷積神經網絡設計的過程及方法。學習本課程,可以幫助同學們提高解決電子信息系統設計的複雜工程問題的能力,為同學們進一步的學習及走向實際工作崗位打下一個良好的工程基礎。
該課程適合於高年級本科生及研究生。校內相關課程講授32學時,效果良好。
隨著人工智能、大數據和雲計算等新信息技術的廣泛應用,人們所獲取的信息量急劇增加,需要有高性能的數字信號處理系統高效地處理海量信息。傳統的使用計算機或高性能數字信號處理器實現數字信號處理,已經遠遠不能滿足諸如實時圖像和通信系統等高通量信息處理的要求。現場可編程門陣列(Field
Programmable Gate Array,FPGA)具有並行處理能力以及整體功耗較低的優勢,使得它成為目前新一代信息技術普及推廣不可或缺的硬件處理平台。
在FPGA上實現一個數字信號處理算法包括根據應用需求確定具體算法、對算法進行並行性改造、將算法中計算和存儲需求與FPGA內部可用資源相映射、將算法映射到硬件結構上等步驟。然而,目前只有很少的公開資料可供初學者學習該領域的知識,可以讓學生深入瞭解FPGA設計思路、過程、代碼的課程更難找到。目前高校跟FPGA技術相關的教材和課程,對數字信號處理理論、硬件描述語言設計、關鍵功能模塊等描述較多,但是對如何基於FPGA技術構建整個信號處理系統、以及在系統實現過程中涉及的工程優化問題,幾乎沒有描述。
申請人從事基於FPGA的複雜數字信號處理系統集成技術研究已有25年,是最早使用FPGA進行科研和教學的高校教師之一,在相關領域新開課程達10門,一直致力於如何讓學生由淺入深,逐步掌握用FPGA實現複雜數字信號處理系統,解決根據應用需求確定具體算法、算法優化、算法並行性改造、計算和存儲設計優化、算法映射、系統實現等問題。因此申請人想改變上述現狀,構建高性能FPGA從教材到共享課程到實踐平台一系列課程改革建設,從數字信號處理理論和分析入手,重點講解信號處理算法移植到FPGA中的基本思路和方法,突出工程應用。同時,通過校企合作借助依元素科技有限公司構建的FPGA智慧教育社區,在各種實驗板卡、多門學科實驗平台上,進行實踐活動。
教學單元
1 第一章:概述
1.1 課程介紹
1.2 FPGA的歷史
1.3 FPGA的發展趨勢
習題
2 第二章:可編程器件結構和工作原理
2.1 可編程邏輯器件結構與原理-CPLD
2.2 可編程器件結構與原理-FPGA
2.3 AMD Xilinx FPGA系列器件
習題
3 第三章:FPGA設計技術
3.1 FPGA設計流程
3.2 FPGA設計指導原則
3.3 FPGA設計優化
3.4 FPGA中的IP核技術
3.5 FPGA原語
習題
4 第四章:低功耗設計
4.1 數字電路的功耗
4.2 數字電路低功耗設計技術
4.3 FPGA低功耗設計考慮
習題
5 第五章: 時序分析與設計
5.1 時序分析相關概念
5.2 FPGA中的時鐘
5.3 時序收斂過程
習題
6 第六章:FPGA實現DSP設計實例
6.1 FPGA實現DSP概述
6.2 算術運算單元
6.3 FIR濾波器設計
6.4 FFT設計
習題
7 第七章:FPGA實現卷積神經網絡設計實例
7.1 卷積神經網絡算法原理
7.2 卷積神經網絡關鍵模塊設計
7.3 卷積神經網絡量化方法
7.4 系統架構及實例
習題
8 實踐平台介紹
基於FPGA課程體系「智慧教育」實踐課程建設-1
基於FPGA課程體系「智慧教育」實踐課程建設-2
基於FPGA課程體系「智慧教育」實踐課程建設-3
課程列表
名稱 時間長度
第01講1.1 課程介紹 00:06:23
第02講1.2.1 集成電路發展史 00:06:58
第03講1.2.2 FPGA的發展史 00:05:21
第04講1.3 FPGA的發展趨勢 00:12:09
第05講2.1 可編程邏輯器件結構與原理-CPLD 00:08:28
第06講2.2.1 SRAM-查找表類型FPGA 00:08:14
第07講2.2.2 其他類型FPGA 00:14:37
第08講2.2.3 可編程器件的選擇 00:13:52
第09講2.3.1 早期FPGA器件 00:12:22
第10講2.3.2 7系列以後FPGA器件 00:09:03
第11講3.1 FPGA設計流程 00:09:41
第12講3.2.1 FPGA設計原則-1 00:15:27
第13講3.2.2 FPGA設計原則-2 00:11:58
第14講3.3.1 流水線設計技術 00:10:55
第15講3.3.2 其他設計優化技術 00:19:28
第16講3.4 FPGA中的IP核技術 00:14:47
第17講3.5 FPGA原語 00:12:23
第18講4.1 數字電路的功耗 00:09:14
第19講4.2 數字電路低功耗設計技術 00:19:29
第20講4.3 FPGA低功耗設計考慮 00:13:08
第21講5.1 時序分析相關概念 00:14:10
第22講5.2.1 FPGA中的時鐘-1 00:09:39
第23講5.2.2 FPGA中的時鐘-2 00:12:01
第24講5.3 時序收斂過程 00:17:42
第25講6.1.1 FPGA實現DSP的優勢 00:09:53
第26講6.1.2 Xilinx實現DSP的解決方案 00:09:29
第27講6.2.1 加法器設計 00:15:26
第28講6.2.2 乘除法單元設計-1 00:12:44
第29講6.2.2 乘除法單元設計-2 00:09:30
第30講6.2.3 CORDIC算法與實現 00:17:33
第31講6.3.1 流式數字信號處理與FIR濾波器分析 00:19:53
第32講6.3.2 基於MAC引擎的FIR濾波器設計 00:17:34
第33講6.3.3 並行FIR濾波器設計 00:13:10
第34講6.3.4 基於DA的FIR濾波器設計 00:07:53
第35講6.4 FFT設計 00:14:24
第36講7.1.1 卷積神經網絡算法簡介 00:11:49
第37講7.1.2 FPGA實現卷積神經網絡映射策略 00:06:17
第38講7.2 卷積神經網絡關鍵模塊設計 00:03:59
第39講7.3 卷積神經網絡量化方法 00:09:12
第40講7.4 系統架構及實例 00:08:32
第41講基於FPGA課程體系「智慧教育」實踐課程建設-1 00:09:14
第42講基於FPGA課程體系「智慧教育」實踐課程建設-2 00:12:43
第43講基於FPGA課程體系「智慧教育」實踐課程建設-3 00:07:42
|