章節及內容
9 堂課
212 分鐘
單元1-快速簡介 (免費預覽課堂)
15 分鐘
OpenRoad下載連結
Lab 1 Source.zip
Unit 1-1 Digital IC Design Flow 數位IC設計流程詳解
69 分鐘
Unit 1-2 Design Constraint 如何給設計最適當的約束
47 分鐘
Unit 1-3 OpenROAD 45nm gcd design
28 分鐘
Lab 1-3 OpenROAD 實例練習參考影片
15 分鐘
Unit 1-4 Adding Chip Level I/O PAD瞭解在晶片層級I/O如何規劃
33 分鐘
Lab 1-4 加PAD練習參考影片
5 分鐘
14 堂課
184 分鐘
單元2-快速簡介 (免費預覽課堂)
17 分鐘
單元2-Lab Source 檔案準備
1 分鐘
單元2-Overview and Tool Installaion
21 分鐘
單元2 - Verilog Modeling
12 分鐘
單元2 - Instantiation-Operators-Lab-updown-counter
35 分鐘
單元2 - lab2-1-updown_counter
4 分鐘
單元2- always-if-case-for-generate
17 分鐘
單元2-lab2-2-for_generate
2 分鐘
單元2 - blocking-non-blocking
14 分鐘
單元2-lab2-3-nonblocking_blocking
4 分鐘
單元2-delay-define-task-function-bi-directional-io
24 分鐘
單元2- lab2-4-task_function
4 分鐘
單元2- Finite State Machine
25 分鐘
單元2-Lab 2-5 FSM
4 分鐘
8 堂課
75 分鐘
單元3-快速簡介 (免費預覽課堂)
13 分鐘
Lab 3 source and reference answer.zip
Unit 3-1 改寫組合電路加法器為 Pipeline全加器/Testbench/進行模擬
25 分鐘
Lab 3-1 模擬/電路合成(面積預估,時序分析)
8 分鐘
Unit 3-2 追求更高速的 Pipeline超前進位加法器
6 分鐘
Lab 3-2 最佳化電路後模擬/電路合成(面積預估,時序分析)
4 分鐘
Unit 3-3 繼續追求更高速的 Pipeline超前進位加法器
14 分鐘
Lab 3-3 繼續最佳化電路後模擬/電路合成(面積預估,時序分析)
5 分鐘
12 堂課
276 分鐘
單元4-快速簡介 (免費預覽課堂)
26 分鐘
Lab4 Source and Reference.zip
Unit 4-1 學習使用DDR SDRAM Controller IP
57 分鐘
Lab 4-1-1 熟悉DDR SDRAM Controller及Synthesizable Testbench-基礎版Test Pattern
13 分鐘
Lab 4-1-2 進階PRBS Test Pattern Synthesizable Testbench
5 分鐘
Lab 4-1-3 PRBS 進階Test Pattern Testbench 效能評估
4 分鐘
Unit 4-2 設計與模擬 Multiple port virtual FIFO design
54 分鐘
Lab 4-2 模擬測試multiport_vfifo 的自動比較AutoCompare Testbench
30 分鐘
Unit 4-3 multiport_vfifo電路合成/實現 : Synthesis/Implementation
24 分鐘
Lab 4-3 multiport_vfifo 使用工具完成電路合成/布局/繞線
7 分鐘
Unit 4-4 multiport_vfifo 測試與除錯
43 分鐘
Lab 4-4 multiport_vfifo 測試與除錯
13 分鐘
產品介紹
以設計服務導向的 : 數位IC/FPGA邏輯設計實戰課程
將真正用於實際應用的電路,以完整的開源程式碼,文件,影片及參考答案,帶領學習數位IC/FPGA設計入門與進階,少走彎路!
本課程由單元1~3循序漸進,提示數位IC設計重點,
並在單元4(詳細介紹如下)集大成,把一個真正的用於實際應用的設計
由方塊圖,設計方式及自動比較的Synthesizable Testbench
提供源碼,並逐步講解說明與練習,以徹底了解單元4的重點及源碼
我們能幫助以下學員:
第一類:已有數位邏輯及HDL基礎,想要進階的人。
第二類:幾乎或没有任何基礎,準備開始學習的人。
對於第一類人,我們的課程,如果你能理解每個單元的精髓,我們有信心,一定可以幫助你快速昇級。
對於第二類人,如果你能夠先什麼都不管, 硬著頭皮把每一張投影片都讀過,每個lab都執行過,甚至
每行每個程式碼都讀過,記起來,甚至理解,那你就能快速入門了。
不過,很顯然地,對於這二類人,需要付出的時間多寡與方向並不相同。
對於第一類人,課程的目標,是錦上添花,提醒一些我們自已入門時,很重要的觀念或技巧;
是年少那時花了很多時間才弄清楚的重點;只因為没有機緣得到太多人給我們指點。
對於第二類人,課程的目標,是要先指明,要如何學數位IC設計才最有效率。
以武俠小說的世界來類比,我們的課程重點是條列重要的心法及招式。
對於已有基本功夫的第一類人,那我們的作用就像風清揚幫助令狐沖;
對於第二類人,就比較像石破天從不會武功,到最後參透俠客島太玄經。
第二類人會比較辛苦,但透過效率學習,會少走非常多彎路。
熟悉我們的課程就能學會數位IC/SoC/FPGA設計的精髓。但是,
令狐沖跟石破天的內功跟招式也是學了又學;並且由實戰得到進步。
能力的累積,在於持續不斷地練習;也在於向高手有效地學習。
我們仍將陸續將各自的專長,濃縮記錄成為對一代新人有用的課程。
如何使用本課程
首先,如果您自認已了解單元1/2/3的內容,那可以快速看一下單元1/2/3的影片,也可跳過Lab
但是一定要花時間及精力在單元4,單元4可以說是本課程的集大成之作。
單元4的價值在於:教你釣魚,也給你魚,藉由所有的源碼你可以學會進階的數位IC/FPGA設計
並且在修改後,甚至可以就直接用在實際的數位電路應用,例如多路影像或網路封包傳送接收。
單元4是由一個真正的設計來講解數位IC邏輯設計:系統架構方塊圖,測試架構方塊圖,
Verilog Design/Testbench撰寫,Constraint,模擬/合成/P&R/STA Timing/Area/Power reporting...
善用集體學習
學習課程前/中/後,可以善用我們的討論區(目前是FB社團/以後也許加上Wechat或Discord)
No question is stupid question!
https://www.facebook.com/groups/217033867946809
簡介:
- 本課程是數位IC/SoC/HLS高階合成/FPGA-快速入門與應用設計-單元1-4
- 內容是數位IC/FPGA邏輯設計的入門到進階實戰單元的整合
- 單元1:用簡短的方式及時數,講成數位IC設計工具與流程的理論基礎,並提示面試常問的問題
- 單元2:Verilog HDL,濃縮學習可以撰寫"大部份"電路的語法及避免常見電路模擬或合成錯誤
- 單元3:單元2後的實戰課,三步驟打造更快的加法器,包括自動比較的testbench (成為高手的必備技能)
- 單元4:HDL進階實戰課, 學習真正的設計:多通道記憶體控制器 multiport virtual FIFO,你將融合/學會多種技巧
- DDR4 Memory & IP Controller
- Cross Clock Domain(CDC) ; 跨時鐘域設計
- FSM有限狀態機
- Asynchronous FIFO的應用與控制技巧(FWFT)
- 10 channel round-robin Arbiter 撰寫一個公平的仲裁器
- Bus Width Converter : 不同module之間位元寬度的轉換
- generate/for : 展開10 channel virtual FIFO模組的簡潔語法
- parameter/ifdef/define...
- Syntheizable Testbench : 完整測試10 ch vfifo 並自動比較的可合成Testbench
- Constraint : 設計與IP的約束,包括CDC false_path 設定等等
- 提供以上所有源碼 (除了工具內的DDR4/FIFO IP之外)
註:現在的單元4為早先在介紹影片中的單元5, 但經過評估,目前的更改比較合理,
單元1-4著重在數位邏輯設計;之後的單元將著在SoC/HLS及其他更進階的主題設計。
單元1/2/3/4細節如下:
- 單元1 : 數位IC設計流程與實例演練
- 培訓目標:
- 幫助學員瞭解數位IC設計工具與流程的理論基礎
- 能夠在面試時回答常見問題(Frequently Asked Questions)
- 江湖一點訣,說穿不值錢;我們用最精簡的方式說明白
- 授課方式:
- 講解一定要知道的約束(constraint), 以及靜態時序分析STA
- 講解設計流程中每個重要階段,工具,檔案與產出結果
- 學習數位IC設計,瞭解每一個流程在做什麼十分重要
- EDA工具每個公司會有不同的選擇與考量,但其原理都是類似的
- 學習時,先把"約束",跟工具與流程一起思考,理解背後的意義
- 數位IC設計最後目標:靜態時序分析(STA)沒有錯誤
- 設計工具的效能與時俱進,然而數位IC設計的本質並沒有改變
- 定義好最上層電路(Top Schematic),子模組和I/O
- 規劃好所有Clock及Reset;規劃好所有跨時域的非同步處理->產生"約束"
- 用HDL描述組合與循序電路(通常會搭配IP的使用);及對應的Testbench
- 進行Functional/Behavioral 模擬, 直到模擬完成
- 將約束(constraint)與HDL電路,作為輸入,進行電路合成,及後端佈局繞線,時序分析,DRC/LVS等等...
- Unit 1-1數位IC設計流程詳解
- 詳細說明IC前端設計流程;且能理解後端設計的流程,如此在專案合作才會順利
- Unit 1-2 如何給設計最適當的約束(constraint)
- Unit 1-3 OpenROAD安裝/用範例跑流程
- Lab 1-3 實例演練
- Unit 1-4 瞭解在晶片層級I/O PAD如何規劃
- Lab 1-4 實例演練I/O PAD floorplan
- 單元2 : 數位電路與HDL語言
- 培訓目標:
- 幫助學員快速瞭解數位IC的Verilog RTL語言
- 借由練習模擬基礎模組元件;為實作真正大型電路作準備
- 授課方式:
- 只講解重要的語法及模組元件
- 搭配多個實例與模擬
- 善用免費/試用版的工具大量練習
- 數位設計軟件的安裝與使用
- 數位電路/可合成/不可合成Verilog語言
- 建議先自行熟悉數位設計/數位邏輯/Verilog HDL
- 內容
- General Verilog &Testbench Module
- Frequently Used Commands in Simulation (w/ Lab)
- Verilog basic :moduleand I/O
- Verilog Data type & Operators
- conditional/concatenation/replication/reduction and bit-wise/...
- Verilog modelingand instantiation
- Behavioral and Dataflow modeling
- always/assign/if else/case/for/generate/genvar(w/ several Labs)
- Verilog blocking and non-blocking guideline (w/ Lab)
- Verilog – timescale and delay
- define/parameter/localparam
- Task/fuction (w/ Lab)
- Bi-birectional I/O example – Memory and I/O
- Moore/Mealy Finite State Machine (w/ two Labs)
- 單元3 :由加法器開始實例理解數位設計與 Pipeline設計
- 培訓目標:
- 用一個加法器來理解數位IC Pipeline設計
- 做為單元二HDL語言的進階練習
- 授課方式:
- 由三種設計方式一步一步實現搭建愈來愈快的加法器
- 每個設計皆進行模擬以驗證功能正確
- 每個設計皆進行電路合成(合成)以驗證達到速度效能
- 內容 : 32-bit 超前進位加法器(CLA Adder)
- Unit 3-1 改寫組合電路加法器為 Pipeline全加器/Testbench/進行模擬
- 撰寫Auto-compare 自動比較Testbench
- Lab 3-1 模擬/電路合成(面積預估,時序分析)
- Unit 3-2 追求更高速的 Pipeline超前進位加法器
- 用二個 16-bit改寫32-bit 超前進位加法器
- Lab 3-2 最佳化電路後模擬/電路合成(面積預估,時序分析)
- Unit 3-3 繼續追求更高速的 Pipeline超前進位加法器
- 用三個 16-bit改寫32-bit超前進位加法器/進行模擬(使用相同Testbench)
- Lab 3-3 繼續最佳化電路後模擬/電路合成(面積預估,時序分析)
- 與原32-bit超前進位加法器比較面積與速度改善幅度
- 單元4 : 多通道記憶體控制器 multiport virtual FIFO
- 培訓目標:
- 熟悉數位IC設計中常用的DDR記憶體控制器IP
- 瞭解如何使用在真正的應用中,使用DDR記憶體控制器IP
- 授課方式:
- 練習DDR記憶體控制器IP的基礎範例
- 根據硬體配置設定IP,模擬(Synthesizable Testbench寫入/讀取測試數據&自動比較)
- 設計Testbench產生效能評估數據
- 設計10通道的Virtual FIFO DDR記憶體控制器 (含Arbiter模組)
- 所謂的VFIFO,就是一種簡單的FIFO讀寫介面,提供使用者很方便的讀寫數據
- 將DDR內存空間切割為多通道的虛擬FIFO
- 撰寫Synthesizable Testbench & 自動比較寫入/讀取測試數據
- Unit 4-1 學習使用DDR SDRAM Controller IP
- DDR SDRAM and Controller Basic
- 依據硬體開發板上的DDR4 DIMM(Micron MTA18ASF2G72PZ-2G3B1IG 16GB DDR4 RDIMMs)設定 IP
- 產生DDR4 記憶體控制器IP, Testbench以及其對應的DDR4 simulation model
- Understand and get familiar with testbench
- Execute simulation
- Enable performance traffic generator
- Execute simulation
- Showing performance statistics
- Lab 4-1-1 熟悉DDR SDRAM Controller及Synthesizable Testbench-基礎版Test Pattern
- Lab 4-1-2 進階PRBS Test Pattern Synthesizable Testbench
- Lab 4-1-3 PRBS 進階Test Pattern Testbench 效能評估
- Unit 4-2 設計與模擬 Multiple port virtual FIFO design
- Partition DDR Memory to multiple independent sectors
- Provide multiple channel of FIFO user interface for each sector
- Asynchronous clocks handling (user write/read, memory clock)
- User FIFO data width to Memory data width conversion
- Multiple port round-robin arbitration
- Lab 4-2 模擬測試multiport_vfifo 的自動比較AutoCompare Testbench
- 撰寫/理解multipot_vfifo 設計;
- 修改Synthesizable Testbench; 加入10 channel vfifo的Testbench
- Unit 4-3 multiport_vfifo電路合成/實現 : Synthesis/Implementation
- False Path/IO Constraint
- STA Timing report
- Area report
- Power report
- GUI觀看在FPGA 合成/布局/繞線後的真實圖示
- Lab 4-3 multiport_vfifo使用工具完成電路合成/布局/繞線
- Unit 4-4 multiport_vfifo 測試與除錯
- 用特殊的移位暫存器製造一 Power On Reset
- 用Logic Analyzer IP 量測電路內部訊號
- Lab 4-4 multiport_vfifo 測試與除錯
課程注意事項
-
基礎課程單元1-單元7 皆没有時間限制