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