1,reg與wire的區(qū)別:
相同點:
都能表示一種類型類型。
不同點:
wire
連線型數(shù)據(jù),線網(wǎng)類型;
表示元件間的物理連線,不能保存數(shù)據(jù);
線網(wǎng)是被驅(qū)動的,可以用連續(xù)賦值語句或把元件的輸出連接到線網(wǎng)等方式進行驅(qū)動;
給線網(wǎng)提供驅(qū)動的賦值元件就是“驅(qū)動源”,線網(wǎng)的值由驅(qū)動源來決定;
如果線網(wǎng)沒有連接到驅(qū)動源,線網(wǎng)的缺省值為“Z”。
reg:
寄存器型數(shù)據(jù)類型,通常用于對存儲單元進行描述;
這種變量可以保持它們自身的數(shù)值,直到該變量被指定了新的值為止 ;在過程被賦值的變量必須定義為reg型;
只能存放無符號數(shù);
有符號數(shù)寄存器變量:integer 。
2,$stop:
表示停止命令,常用格式為,位于initial語句中:
#時間(N) $stop;
表示在(N)個時間單位后,停止仿真。
在程序中需要多次使用同一個數(shù)字時,可以考慮采用參數(shù)來提高代碼的簡潔度,降低代碼的設(shè)計量。
參數(shù)一經(jīng)聲明,就視其為一個常量,在整個過程中值不在改變。
其定義方式如下:
《變量名》=《變量定義》;
例如:
parameter SET_TIME_1S=27‘b50_000_000;
//把常量50000000用標(biāo)識符SET_TIME_1S來代替。
用同一個 parameter 同時定義多個參數(shù)時,各個參數(shù)之間用“ , ”來隔開。
使用參數(shù)可以提高代碼的可讀性,也便于修改。
4,仿真時的端口定義
與模塊輸入端口相連的信號端口是產(chǎn)生仿真信號的端口,需定義為reg類型;
與模塊輸出端口相連的信號端口是被輸出信號所驅(qū)動的端口,需要定義為wire類型;
5,阻塞與非阻塞賦值語句
1,非阻塞賦值語句
用操作符“《=”來標(biāo)識“非阻塞賦值語句”;
在begin-end串行語句中,一條非阻塞賦值語句的執(zhí)行不會阻塞下一條語句額執(zhí)行,也就是說,在本條非阻塞型過程賦值語句對應(yīng)的賦值操作執(zhí)行完之前,下一條語句也可以開始執(zhí)行。
仿真過程在遇到非阻塞型過程賦值語句后,首先計算其右端賦值表達式的值,然后等到仿真時間結(jié)束時將該計算結(jié)果賦值變量。也就是說,這種情況下的賦值操作是在同一時刻上的其他普通操作結(jié)束后才得以執(zhí)行。
2,阻塞賦值語句
用操作符“=”來標(biāo)識“阻塞賦值語句”;
在begin-end串行語句中的各條阻塞型過程賦值語句將它們在順序快中的排列次序依次得以執(zhí)行。
阻塞型賦值過程賦值語句的執(zhí)行過程:首先計算右端賦值表達式的值,然后立即將計算結(jié)果賦值給“=”左端的被賦值變量。
原文標(biāo)題:verilog的一些技巧
文章出處:【微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
Reg
+關(guān)注
關(guān)注
0文章
20瀏覽量
11496 -
端口
+關(guān)注
關(guān)注
4文章
983瀏覽量
32123 -
代碼
+關(guān)注
關(guān)注
30文章
4808瀏覽量
68814 -
Wire
+關(guān)注
關(guān)注
0文章
23瀏覽量
15890
原文標(biāo)題:verilog的一些技巧
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論