概述
- 什麼是硬體描述語言(HDL Hardware Description Language)?
硬件描述語言(HDL)顧名思義就是描述數位電路和設計數位系統的語言。設計者可利用這種語言來描述自己的設計想法,利用電子設計自動化(EDA)工具進行仿真,再用ASIC或FPGA實現其功能,常見有Verilog和VHDL。
- 什麼是 FPGA(Field Programmable Gate Array)?
現場可程式邏輯閘陣列,是一種可以使使用者進行編程的邏輯閘元件。FPGA 的 IC 內部已經預先製作好各種的邏輯閘、數位電路,只須將編寫好的 HDL 檔案燒錄至 FPGA,改變 FPGA 內部邏輯閘的連接,達到實現的效果。就某種程度上 FPGA 與 Verilog 的關係就好比 MCU 與 C 語言的關係。
- 關於 Verilog HDL 教學講義
此講義算是 Verilog 的"重點整理"或"備忘錄",內容較為精簡,不會做詳細的解釋,若是沒學過 Verilog 的初學者,建議有了解的人來教學、解答,較不建議拿來自學。
- 關於 Verilog
Verilog 是結構鬆散的語言,也就是自由的語言,相對來說也就是不嚴謹的語言,這種語言的好處是容易撰寫,但缺點就是容易出現BUG,所以建立一套良好的撰寫風格、用法,會影響到日後的撰寫。
Verilog 常用到的關鍵字
module
input , output , inout
wire, reg, parameter
always@(), assign
posedge , negedge
if-else, case, begin ... end
Verilog 常用到的運算子
<= , = (賦值),
> , < , <= , >=
!= , ==
[] , {}
<< , >>
+, - , * , / , %
Verilog 是一種容易入門,但不易掌握的語言,從上面就可看的出來,雖然常用到的東西並不多,但確實了解這些就足夠了。
Verilog 是硬體描述語言,描述硬體的語言,雖然與C相似,但概念卻是大不同。
軟體是循序的,硬體是並行的
C 語言是一行一行的執行,而硬體電路則是只要一供電,所有的電路就會同時工作。
Verilog 程式碼沒有先後之分
除了 Blocking 先後順序執行和 Non-Blocking 的同時執行外,Verilog 的程式碼沒有前後順序之分,先寫的不代表先執行,後寫的也不代表會後執行,所以才稱為『描述』語言,而非『程式』語言。