fpga verilog語(yǔ)法篇 1基本概念 11函數(shù)
在C語(yǔ)言中,實(shí)現(xiàn)一個(gè)功能,通常會(huì)封裝成一個(gè)函數(shù).在verilog中,也會(huì)有類似函數(shù)的代碼塊. 不同于c語(yǔ)言, verilog中"函數(shù)"被分成了三種,?
這三種有各自的名字:?
1,initial;?
2,assign;?
3,always; ?
其中initial的代碼,只執(zhí)行一次.理論上不可以綜合.
assign中的代碼,會(huì)一直執(zhí)行.經(jīng)常會(huì)在連線上.
always中的代碼,會(huì)一直執(zhí)行,經(jīng)常用于時(shí)序的控制. 關(guān)于程序中邏輯的編寫和實(shí)現(xiàn),都要放到上面三種"函數(shù)"中.
上面的三種"函數(shù)",即使在書寫代碼的時(shí)候有先后.但是他們都是獨(dú)立,并行執(zhí)行的.并且所有的邏輯,要寫在函數(shù)體里面.

C語(yǔ)言中,每個(gè)函數(shù)都會(huì)有一個(gè)括號(hào){}去包含里面的語(yǔ)句.verilog中,有不同的關(guān)鍵字來(lái)替代{}.以實(shí)現(xiàn)不同功能:?
1,順序塊?
2,并行塊?
3,嵌套塊?
4,命名塊?
5,disable
順序塊的關(guān)鍵字是begin和end.順序塊中語(yǔ)句都是按照順序一條條執(zhí)行的(非阻塞語(yǔ)句除外). 相當(dāng)于c語(yǔ)言中的{} 下面代碼中,a和b是不同時(shí)間賦值的.

并行塊關(guān)鍵字是fork和join.在并行塊之間的語(yǔ)句都是并行執(zhí)行的.

命名塊,可以對(duì)程序塊進(jìn)行命名,方便其他程序塊中對(duì)其進(jìn)行調(diào)用.


if語(yǔ)句:

case語(yǔ)句:

循環(huán)語(yǔ)句:
