時間 |
課程大綱 |
第一部分 |
階段目標 |
第一天的課程將幫助學員了解FPGA系統設計的基礎知識,使學員對FPGA的典型應用及解決方案,典型型號及結構特點有一個深入的認識。學員將掌握FPGA系統設計的方法、流程及手段,學會操作FPGA開發軟件來完成簡單的FPGA設計和開發。 |
|
1. FPGA典型應用及解決方案
??
本節將介紹FPGA在不同領域應用的優勢,幫助學員了解FPGA的應用場合及常見的解決方案。
??
本節要點:
??
1.1?嵌入式應用,DSP應用,高速互聯應用,ASIC驗證應用,外設接口互聯應用
??
1.2?FPGA典型應用案例分享
2. FPGA典型器件型號及結構
??
本節將介紹主流FPGA廠商的傳統、主流及新型號的器件特點,幫助學員掌握幾種常見的FPGA器件的結構,了解新的FPGA器件型號特點,掌握FPGA器件選型的原則和方法。
??
本節要點:
??
2.1?Altera:CPLD,CycloneI/II,Arria,Stratix
??
2.2?Xilinx:CPLD,Spartan3/6,Virtex5/6
??
2.3?FPGA兼容設計案例分析
3. FPGA設計流程及開發方法
??
本節圍繞FPGA的設計流程,介紹主流FPGA廠商的開發工具鏈,重點講授關鍵設計環節的工具特點,使學員掌握FPGA設計流程的各個環節及對應的開發方法。
??
本節要點:
??
3.1?FPGA PCB設計要點
??
3.2?Altera:Quartus II,EDS,DSP Builder,SignalTap
??
3.3?Xilinx:ISE,XPS/EDK,System Generator,AccelDSP,ChipScope
??
3.4?Synplify,Modelsim,Matlab,Simulink |
|
1. FPGA實驗平臺介紹
??
本節簡要介紹課程使用的實驗開發平臺:紅色颶風系列開發板,對其資源配置、設計理念、使用方法等進行介紹,使學員具備在此實驗平臺開展FPGA設計開發的基礎。
??
本節要點
??
1.1?PCB設計,電源設計,FPGA配置鏈路,接口設計,使用方法
2. 解剖一個典型的FPGA工程
??
本節以一個典型的FPGA工程為基礎,手把手為學員講授FPGA工程中的關鍵要素,要素的設計方法及作用。幫助學員迅速掌握FPGA開發的主要環節。
??
本節要點:
??
2.1?設計輸入文件,約束文件,仿真激勵文件,波形文件,下載文件,調試文件,設計報告
3. 實戰訓練
??
本節由學員動手,在FPGA實驗平臺上完成第一個FPGA工程設計。學員根據實驗手冊一步一步的完成一個功能直觀步驟完整的FPGA設計,總結在FPGA設計過程中常見的錯誤和問題。
??
本節要點:
??
3.1?工程創建及屬性設置,源文件設計輸入方式,約束設計,工程編譯,功能仿真,時序仿真,硬件下載,硬件調試 |
第二部分 |
階段目標 |
第二天的課程以設計輸入、仿真激勵設計及測試調試為主要內容,學員可以掌握FPGA開發的基本設計輸入方法:原理圖輸入及Verilog硬件描述語言輸入,配合豐富的實例使學員了解FPGA資源的語言描述方法及數字系統的測試驗證方法,同時通過對設計原則和設計技巧部分的課程可以幫助學員提高系統設計的能力,為SOPC的系統設計打下良好的基礎。 |
|
1. FPGA設計輸入方法
??
本節針對FPGA開發過程中的主要工作——設計輸入——進行詳細分析,幫助學員掌握常見設計輸入方法,仿真激勵文件設計方法,理解硬件描述語言的可綜合設計風格。
??
本節要點:
??
1.1?原理圖設計方法,Verilog語言基本結構,可綜合設計,仿真激勵設計
??
1.2?常用設計輸入方法實例分析
2. FPGA常用資源結構特點及調用方法
??
本節將學習FPGA器件的工藝結構,詳細介紹FPGA的各種邏輯資源特點及調用方法,幫助學員深刻理解FPGA的各種內部資源,為系統的進行FPGA開發打下基礎。
??
本節要點:
??
2.1?PLL/DCM等時鐘資源,Select IO資源,RAM資源,乘法器資源,SERDES資源
??
2.2?FPGA常用資源調用方法實例分析
3. 有限狀態機設計
??
本節講授數字系統設計中常見的結構設計方法——有限狀態機,通過學習學員將掌握狀態機設計中的狀態劃分原則及硬件描述語言實現方法。
??
本節要點:
??
3.1?狀態機編碼,三段式狀態機設計
??
3.2?狀態機實例分析 |
|
1. FPGA設計原則及常用設計技巧
??
本節介紹FPGA設計中應遵循的設計原則和常用設計技巧,通過學習學員可從更高的層次上理解數字系統的設計方法。
??
本節要點:
??
1.1?設計原則:模塊化設計,基于IP設計,時鐘復位系統設計
??
1.2?設計技巧:面積與速度互換、兵乓操作、流水線
??
1.3?流水線設計實例分析
2. 設計輸入與驗證實戰訓練
??
本節讓學員動手去完成既定的實驗任務,在實踐中掌握硬件描述語言的編寫方法及系統設計的模塊化設計方法。
??
本節要點:
??
2.1?用Verilog語言實現特定功能組合邏輯電路
??
2.2?用Verilog語言實現特定功能時序邏輯電路
??
2.3?頂層文件設計方法及模塊調用方法
??
2.4?測試激勵的編寫方法及仿真
3. 實時硬件調試實戰訓練
??
本節通過實驗演示及學員動手相結合,是學員掌握FPGA實時調試工具——虛擬邏輯分析儀——的使用方法,提高FPGA調試測試的技能。
??
本節要點:
??
3.1?虛擬邏輯分析儀的原理及特點
??
3.2?使用虛擬邏輯分析儀進行調試的設計流程
??
3.3?Altera實戰:使用SignalTap進行實時硬件調試
??
3.4?Xilinx實戰:使用ChipScope進行實時硬件調試 |
第三部分 |
階段目標 |
第三天的課程以SOPC系統概念為切入點,重點介紹FPGA EDS解決方案的體系結構及硬件設計流程。圍繞軟核處理器、Avalon總線及外圍組件三個方面對SOPC的硬件結構進行介紹。通過簡單實用的SOPC工程使學員掌握EDS/XPS工具的基本使用方法及硬件設計流程。 |
|
1. SOPC系統基礎及典型解決方案
??
本節講授SOPC系統的基礎知識及SOPC的構成要素,介紹當前典型的幾種SOPC解決方案及優缺點,使學員對SOPC有一個基本的認識。
??
本節要點:
??
1.1?SOPC構成要素,典型軟核SOPC解決方案,典型硬核SOPC解決方案,SOPC系統優缺點
2. Altera NIOS II解決方案
??
本節基于Altera NIOS II軟核處理器,通過一個典型的工業數據采集SOPC系統工程,詳細介紹NIOS II SOPC解決方案的構成要素。通過學習,學員將從整體上理解NIOS II SOPC解決方案的架構和重要的構成要素,學會使用原理圖和硬件描述語言的方式調用SOPC工程模塊。
??
本節要點:
??
2.1?一個典型的工業采集系統SOPC工程
??
2.2?NIOS II解決方案架構,開發工具鏈
??
2.3?NIOS II 軟核處理器,Avalon總線,典型外設組件
??
2.4?NIOS II硬件抽象層HAL及系統庫
??
2.5?定制指令及定制組件
??
2.6?SOPC的時鐘與復位系統
??
2.7?NIOS II軟核系統的調用方法 |
|
1. NIOS II解決方案的系統設計流程
??
本節為學員講述NIOS II解決方案的系統設計流程,通過學習學員可以從流程上清晰地理解SOPC設計的各個主要環節。
??
本節要點:
??
1.1?NIOS II解決方案的系統設計流程
??
1.2?NIOS II解決方案的硬件設計流程
??
1.3?NIOS II解決方案的軟件設計流程
??
1.4?NIOS II解決方案的軟硬件下載流程
2. SOPC Builder開發環境及使用方法
??
本節基于實驗平臺的一個SOPC小系統工程,介紹SOPC Builder工具環境的使用方法。學員可學會使用該工具建立SOPC系統,掌握該工具提供的主要功能。
??
本節要點:
??
2.1?實驗平臺上的一個SOPC小系統工程
??
2.2?NIOS II處理器的調用與配置
??
2.3?Avalon總線互聯方法
??
2.4?常用外設組件及調用及其配置
??
2.5?定制外設組件的實現方法
??
2.6?SOPC系統的地址及中斷
??
2.7?SOPC系統軟件設計初步
3. SOPC Builder實戰訓練
??
本節由學員動手設計并實現一個簡單的處理器控制系統,在實踐中加深對SOPC硬件設計流程及常見組件的使用方法,熟練SOPC Builder工具的操作。
??
本節要點:
??
3.1?在FPGA開發板上組建一個簡單的處理器控制系統
??
3.2?SOPC Builder工具操作方法 |
第四部分 |
階段目標 |
第四天的課程以軟件開發及調試為主。通過第四天的學習,學員應掌握NIOS II SOPC系統的軟件開發流程及相關工具,能夠針對不同的系統需求進行系統配置,并選擇或設計相應的API接口進行軟件開發。配合前三天講授的內容,掌握SOPC系統的軟硬件協同設計設計。 |
|
1. NIOS II解決方案的軟件架構
??
本節主要講授NIOS II解決方案的軟件架構,主要圍繞硬件抽象層,API和用戶應用程序三個方面進行介紹,使學員深入了解NIOS II解決方案的軟件設計要素。
??
本節要點:
??
1.1?軟件架構,軟件開發工具鏈
??
1.2?HAL硬件抽象層
??
1.3?HAL API接口
??
1.4?用戶應用程序
??
1.5?標準系統庫,嵌入式操作系統
2. NIOS II IDE開發環境及使用方法
??
本節為學員介紹NIOS II IDE軟件及其工具鏈的使用方法,按照SOPC軟件設計流程對重要的設計步驟進行講解,使學員學會使用NIOS II IDE工具,了解SOPC軟件設計及調試方法。
??
本節要點:
??
2.1?系統工程向導及模板
??
2.2?系統庫及用戶工程的管理與配置
??
2.3?SOPC軟件設計方法
??
2.4?SOPC軟硬件協同調試方法
??
2.5?SOPC軟件的固化方法
3.NIOS II IDE實戰訓練
??
本節由學員動手在前一天設計的簡單的處理器控制系統上添加軟件功能,理解SOPC系統中軟件實現方法和硬件實現方法的區別,掌握SOPC軟件設計及調試方法,熟練NIOS II IDE工具的操作。
??
本節要點:
??
3.1?在組建的簡單處理器控制系統上添加軟件工程
??
3.2?NIOS II IDE工具操作方法 |
|
1. SOPC軟件工程實例分析
??
本節基于典型的工業數據采集SOPC系統的軟件結構,為學員介紹常見的SOPC外圍組件的軟件控制方法,介紹自定義外圍組件的HAL設計及API封裝方法,使學員具備開發SOPC外圍接口的能力。
??
本節要點:
??
1.1?常見外圍組件的軟件控制方法
??
1.2?用戶自定義組件的HAL設計及API封裝方法
2. SOPC系統綜合訓練
??
本節提出一個SOPC系統需求,要求學員設計一個圖像顯示系統的SOPC結構,并在實驗平臺上實現。通過這個綜合訓練,使學員融會貫通的使用SOPC系統結構設計、FPGA硬件設計、SOPC軟硬件協同設計等方法。具備從需求到實現的設計開發能力。
??
本節要點:
??
2.1?SOPC系統結構設計
??
2.2?FPGA硬件設計
??
2.3?SOPC軟硬件協同設計
??
2.4?SOPC工具鏈使用
3. 課程總結與展望
??
本節將回顧四天SOPC課程的主要內容,幫助學員總結課程的要點和課程培訓中常見的問題,同時為學員介紹進一步學習SOPC系統的相關內容和資源。 |