[單元1/2/3/4] 數位IC/FPGA​ 邏輯設計實戰課程

將真正用於實際應用的電路,以完整的開源程式碼,文件,影片及參考答案,帶領學習數位IC/FPGA設計入門與進階,少走彎路!

TWD $9200

12 hours 27 mins
作者
ChipSkywalker
請先登入才能購買課程
章節及內容

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 皆没有時間限制