單元一:FPGA Verilog 數位邏輯設計與核心控制
在FPGA數位電路設計上超大型積體電路設計(VLSI)或系統晶片(SoC)設計均扮演著非常重要的角色,是軟硬體工程師在職場上必備的工具。工業4.0(生產力4.0)應用以機器手臂為重要抓手的“工業4.0”戰略,會加速智慧製造的進程。未來物聯網與工業4.0是大勢所趨,而高性能電機控制是實現工業4.0的關鍵應用。使用FPGA/Verilog可充分滿足當今磁場定向控制(FOC)等複雜控制演算法所提出的苛刻的時序和性能要求。
本課程搭配FPGA實驗板示範進行,先詳細講述FPGA / Verilog HDL語法與應用,採深入淺出講解並輔以實作DEMO方式進行實務教學,並結合【IP-Core設計應用】以加速產品開發速度。
將完整解說Verilog HDL語法及其對應之數位邏輯電路之呈現,課程後能熟悉Verilog語言全貌,帶領大家進入以Verilog為主的各種相關設計領域,因此非常適合各層次的設計者參考使用,上完課程後可與實務銜接,真正提升數位邏輯電路設計能力。
目前業界FPGA / CPLD的主流廠家為AMD Xilinx,本課程將於設計語法與實務並重,透過範例與各種介面專題之設計,讓學員在以Verilog為主的各種相關設計領域中,熟悉Verilog語言全貌,期能實際提升學員的數位設計與IC設計能力。
由講師實際講解 Verilog Coding 的實用技巧之心法,讓學員心中有數位邏輯電路,手中可寫出對應Verilog程式代碼。
帶領學員以數位邏輯電路之思維方式,熟知Verilog程式不再是一行行的代碼,而是一塊一塊的硬體模組,進而達到在FPGA處理速度與面積間,獲得最佳效果。
想從事CPLD、FPGA相關研發工作者。
資訊、資工、資管、電子、電機等相關科系畢業生。
熟悉邏輯設計以計算機組織者佳。
★【基礎LAB示範】
Verilog 循序電路設計:正反器、暫存器(Flip-Flop)、LED或七段顯示器(一位數與多位數七段顯示器)、按鍵控制電路、計時器(Timer)/毫秒、計數器(Counter)電路實驗、Finite State Machine:比大小遊戲電路實驗、紅綠燈控制電路實驗
★【進階LAB示範】
Simple 4 bit ALU implementation、PLL電路實驗、LCD1602實驗、RS-232通訊(UART)控制電路實驗、I2C/SPI 系統電路實驗(24C08讀寫LAB)、PWM 控制電路實驗(Servo Controller)、VGA 控制電路實驗
| 序 | 日期 | 課程內容 |
| 1 | 115/03/13 (五) 9:30-17:30 | - FPGA工具介紹、安裝與使用及如何使用電路模擬:介紹AMD Xilinx 之FPGA/CPLD開發工具 Vitis / Vivado
- 階層模組觀念(Hierarchical Modeling Concepts)設計方法
- Verilog HDL語法協定( Lexical conventions):資料型態(data types)、記憶體(Memories)、系統任務(system tasks)、編譯命令(compiler directives)
- Verilog HDL 模組與輸出入埠(Modules and Ports):模組(Module definition),輸出入埠(port declaration, connecting ports)、階層化取名(hierarchical name referencing)
- 邏輯合成(Logic Synthesis)、邏輯閘層次模型(Gate-Level Modeling)
|
| 2 | 115/03/20 (五) 9:30-17:30 | - Verilog HDL資料處理模型(Dataflow Modeling):持續指定(Continuous assignments)、延遲(delay specification)、運算式(expressions)、運算子(operators)、運算元(operands)、運算子種類(operator types)
- Verilog HDL行為模型( Behavioral Modeling):結構化程序(Structured procedures)、initial 及always敘述、程序指定(阻礙指定blocking 及無阻礙指定nonblocking statements)、時序控制(delay control, event control)、條件敘述(conditional statements)、多路徑分支(multiway branching)、迴圈(loops)、循序與平行區塊(sequential and parallel blocks)
- Verilog HDL 任務(Tasks)與函數(Functions) : 函數(Functions)、任務(Tasks)、Assignment
|
| 3 | 115/03/27 (五) 9:30-17:30 | - 演算法狀態機(Algorithmic State Machine)、有限狀態機(Finite State Machine):Moore FSM、Mealy FSM and Modeling。
- Verilog HDL 時序及遲延(Timing and Delays)、Verilog HDL 時序仿真(Timing Simulation)
- Verilog generate / endgenerate statement (genvar、localparam、generate if、generate for、generate case)
- Verilog HDL有用之程式技巧(Useful Modeling Techniques):程序持續指定(assign與deassign 及 force與release),參數(parameter) and 複寫參數(defparam, module instance),條件式的編譯與執行,時間刻度(Time Scales) ,有用的系統任務: File ($fopen,$fdisplay,…)、隨機亂數產生器(Random Number Generation)、VCD File
|
| 4 | 115/04/10 (五) 9:30-17:30 | - FPGA晶片內建記憶體 (In-System Memory)、Memory Synchronous/Asynchronous Read/Write,Synchronous FIFO and Asynchronous FIFO
- 【IP-Core設計應用】:Verilog IP-Core(Intellectual Property Core)<<for AMD Xilinx>>
- 添加設計和發布IP-Core (Adding design and publish IP-Core)
- 如何添加AMD Xilinx的IP-Core (How to adding AMD Xilinx's IP-Core: such as General-purpose input/output, PLL, Timer, RAM, ROM, UART, I2C, SPI...)
- 如何移植OpenCores (How to Porting OpenCores: such as UART IP)
- 設計除錯(Design Debugging):ILA IP、Timing Analyzer
|
※ 因不可預測之突發因素,主辦單位得保留課程之變更權利。