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