系列數字SOC集成電路IC設計培訓大綱
第一階段 基礎培訓和Linux環境與指令
Linux和EDA實踐
Linux操作系統
Shell命令
vi/vim文本編輯工具
硬件描述語言HDL
數字電路邏輯設計
第二階段 verilog芯片設計從入門到精通
第一部分
第一部分的課程主要幫助學員了解Verilog 芯片系統設計的基礎知識,掌握FPGA小系統硬件電路設計方法,學會操作QuartusII軟件來完成FPGA的設計和開發。
10.FPGA .V文件的編程規范
10.1 單個.v文件的書寫規范
10.2 多個.v文件的書寫規范
10.3 聲明部分的編寫規范
10.4 主體部分編寫,always、initial、function、task的選擇和使用
10.5 Always語句塊編寫規范和注意要點
10.6 Alwasys內部功能的擴充和Always直接的通信和協調
11.關鍵電路的設計
11.1 FPGA管腳設計
11.3 RS-232串口
11.4 字符型液晶顯示器接口電路設計
11.8 i2c總線電路設計
11.9 時鐘電路設計
11.10 圖形液晶電路設計
1. 項目案例:交通燈的設計實現,如何控制Red,Green,Yellow燈在南北東西各個方向的交替運作。
第二部分
熟練掌握硬件描述語言(Verilog HDL)是FPGA工程師的基本要求。通過本節課程的學習,學員可以了解目前流行的Verilog HDL語言的基本語法,掌握Verilog HDL語言中常用的基本語法。通過本節課程學習,學員可以設計一些簡單的Verilog程序,掌握組合邏輯和時序邏輯電路的設計方法。通過項目訓練,學員可以對Verilog HDL語言有更深入的理解和認識。
1.Verilog HDL語言簡介
2.Verilog HDL語言邏輯系統
3.Verilog HDL操作數和操作符
4.Verilog HDL和VHDL語言的對比
5.Verilog HDL循環語句
6.Verilog HDL程序的基本結構
7.Verilog HDL語言的數據類型和運算符
8.Verilog HDL語言的賦值語句和塊語,阻塞和非阻塞賦值語句的區別
9.Verilog HDL語言的條件語句,包括IF語句和CASE語句的典型應用
10.Verilog HDL語言的其他常用語句
11.Verilog HDL語言實現組合邏輯電路
12.Verilog HDL語言實現時序邏輯電路
1. 項目訓練二:
訓練課題:“順序執行狀態機設計實驗”
實驗要點:
1.2 組合邏輯電路設計實現
1.3 IF語句和CASE語句的使用
2. 項目訓練三:
訓練課題:“跑馬燈設計實現”
實驗要點:
2.2 時序邏輯電路設計實現
2.3 分頻原理和實現方法
3. 項目訓練四:
訓練課題:“7段數碼管測試實驗-以動態掃描方式在8位數碼管“同時”顯示0-7”
實驗要點:
3.1 Quartus II軟件操作
3.2 了解如何按一定的頻率輪流向各個數碼管的COM端送出低電平,同時送出對應的數據給各段。
3.3 介紹多個數碼管動態顯示的方法。
第三部分
雖然利用第二部分課程學到的HDL基本語法可以完成大部分的FPGA功能,但相對復雜的FPGA系統設計中,如果能夠合理的應用Verilog HDL的高級語法結構,可以達到事半功倍的效果。通過第三天課程的學習,學員可以掌握任務(TASK),函數(FUNCTION)和有限狀態機(FSM)的設計方法,可以更好的掌握FPGA的設計技術。此外,本節課程還介紹了QuartusII軟件的兩個常用的高級工具-SignalTAP,可以提高FPGA設計和調試的效率。
1. TASK和FUNCTION語句的應用場合
2. Verilog HDL高級語法結構-任務(TASK)
3. Verilog HDL高級語法結構-任務(FUNCTION)
4. 有限狀態機(FSM)的設計原理及其代碼風格
5. 邏輯綜合的原則以及可綜合的代碼設計風格
6. SignalTap II在線邏輯分析儀使用方法
7. FPGA編程思想梳理和升華
7.1 狀態機的使用技巧(嵌套,相互調用,順序執行)
1.2 標志的編程思想
1.3 并發編程思想(提高代碼執行效率的方法,Always協調和通信)
1.4 分頻的技巧
1. 項目訓練五:
訓練課題:“典型狀態機設計實例”
實驗要點:
1.1 FSM設計方法
1.2 狀態機的編碼
1.3 狀態機的初始化狀態和默認狀態(完整狀態機設計)
1.4 狀態機的狀態定義風格
1.5 狀態機的編寫風格
2. 項目訓練六:
訓練課題:“撥碼開關設計實驗”
實驗要點:
2.1 Quartus II輸入方式
2.2 SignalTap II在線調試
2.3 了解撥碼開關的工作原理及電路設計
3. 項目訓練七:
訓練課題:“矩陣鍵盤設計實驗”
實驗要點:
3.1 Quartus II原理圖輸入方式
3.2 了解矩陣鍵盤的工作原理及電路設計
第三階段 Verilog芯片設計項目訓練高級
第一部分
1.項目訓練十一:
訓練課題:“數碼管進位與刷新綜合設計實驗”
步驟一、詳細一個鋪墊性實驗,通過它講解數碼管各種進位的方法,與進位代碼的編寫,其中注意:
a.數碼管整體刷新和數碼管動態掃描顯示的區別和聯系,怎樣編寫代碼
b.編程中注意FPGA的精髓:并行運行
c.注意在傳遞數據的過程中,采用什么方法比較好
步驟二、學員自己編寫一個數字時鐘程序
a.訓練學員舉一反三的能力
b.注意一些特殊用法
步驟三、總結學員的出錯原因,給出解決方法
2.項目訓練十二:
訓練課題:“蜂鳴器怎樣演奏音樂,怎樣演奏梁祝的曲子”
步驟一、詳細一個鋪墊性實驗,通過它講解怎樣通過分頻來實現音階和音調,其中注意:
a.狀態機的高級用法
b.怎樣分頻
c.注意在傳遞數據的過程中,采用什么方法比較好
步驟二、學員自己編寫一個數字時鐘程序
a.訓練學員舉一反三的能力
b.注意一些特殊用法
步驟三、總結學員的出錯原因,給出解決方法
3.項目訓練十三:
訓練課題:LCD液晶控制實驗
1. 內容的回顧與難點消化,解疑答惑
2.編程中舉一反三和融匯貫通訓練
3. FPGA的程序固化方法
3.項目訓練十四:
訓練課題:串口開發實驗
1. 內容的回顧與難點消化
2.編程中舉一反三和融匯貫通訓練
3.通訊數據協議
第二部分
知識詳解:
1.字符型液晶顯示原理
2.圖形液晶顯示原理
3.液晶顯示原理詳解
4.I2C協議原理與編程
1. 項目訓練十六:
訓練課題:1602字符型液晶顯示實驗
訓練內容: 通過實驗充分理解字符型液晶的顯示原理,是怎樣通過代碼體現的,針對一個綜合性實驗題目,學員獨立完成需求分析,結構設計,代碼設計,仿真。
2. 項目訓練十七:
訓練課題:“128x64圖形液晶顯示實驗”
訓練內容: 通過實驗充分理解字圖形液晶的顯示原理,是怎樣通過代碼體現的針對一個綜合性實驗題目,學員獨立完成需求分析,結構設計,代碼設計,仿真。
3. 項目訓練十八:
訓練課題:“I2C讀寫EEPROM實驗”
訓練內容: 通過實驗充分理解I2C協議原理,用I2C協議實現對EEPROM的讀寫操作,演示是怎樣通過代碼體現的針對一個綜合性實驗題目,學員獨立完成需求分析,結構設計,代碼設計,仿真。
第四階段 IC項目實戰
RTL coding
SRAM的聯合使用
異步SRAM的操作時序
異步SRAM存儲器讀寫操作
異步電路處理
2.1 SRAM存儲器的操作時序設計
2.2 復雜硬件開發的思想方法
AD數據采集系統設計
AD轉換器
第五階段 Synopsys DC(Design Compiler) 綜合項目實戰
Synopsys DC(Design Compiler) 綜合
1,綜合的概念
2,綜合庫與工具介紹
3,工作環境的設立和關鍵命令
4,綜合前的準備工作
5,芯片邏輯代碼和流片廠庫的結合
6,綜合的過程
7, 綜合后網表的導出
8,時序SDC的導出
9,Synopsys DC 為Cadence Encounter工具所做的準備工作。
10,快速綜合TCL腳本使用技巧
第六階段 Cadence Encounter 布局布線
Cadence Encounter 布局布線
1.網表和工程庫的結合
2,環境變量的設置和關鍵命令
3,布局布線前的準備工作
4,Synopsys DC工具和Cadence Encounter工具的銜接和配合
2.Floor plan
3.電源規劃
4.布局、擺放
5.時鐘樹
6.布線
第七階段 Synopsys PT(PrimeTime) 驗證仿真
Synopsys PT(PrimeTime) 驗證仿真
1,環境變量的設置
2,關鍵命令
3,仿真驗證過程
4,仿真驗證報告的產生
5,快速驗證技巧
6,TCL腳本的使用技巧
技巧和總結提高
第八階段 ARM9芯片后端設計整個流程項目實戰
本課程專題實驗是構造一個ARM9的處理器,
ARM9芯片后端設計整個流程項目實戰演練,使用后端的Synopsys公司的DC,PT等工具,
和Cadence公司的Encounter,Virtuoso等工具,多工具聯合從頭至尾強化練習整個芯片的生成過程。
1.架構及設計流程
2.CPU核
1)指令
2)指令流水
3)數據緩沖和指令緩沖
4)內部數據ram和指令RAM
5)使用后端的Synopsys公司的DC,PT等工具,
和Cadence公司的Encounter,Virtuoso等工具,多工具聯合從頭至尾強化練習整個芯片的生成過程。 |