FPGA各位和數(shù)字IC設(shè)計崗位面試時常常會問下verilog的一些基本概念,做了下整理,面試時一定用得上!
1,reg與wire的區(qū)別:
相同點:
都能表示一種類型類型。
不同點:
wire
連線型數(shù)據(jù),線網(wǎng)類型;
表示元件間的物理連線,不能保存數(shù)據(jù);
線網(wǎng)是被驅(qū)動的,可以用連續(xù)賦值語句或把元件的輸出連接到線網(wǎng)等方式進(jìn)行驅(qū)動;
給線網(wǎng)提供驅(qū)動的賦值元件就是“驅(qū)動源”,線網(wǎng)的值由驅(qū)動源來決定;
如果線網(wǎng)沒有連接到驅(qū)動源,線網(wǎng)的缺省值為“Z”。
reg:
寄存器型數(shù)據(jù)類型,通常用于對存儲單元進(jìn)行描述;
這種變量可以保持它們自身的數(shù)值,直到該變量被指定了新的值為止 ;在過程被賦值的變量必須定義為reg型;
只能存放無符號數(shù);
有符號數(shù)寄存器變量:integer 。
2,$stop:
表示停止命令,常用格式為,位于initial語句中:
#時間(N) $stop;
表示在(N)個時間單位后,停止仿真。
3,參數(shù)聲明parameter:
在程序中需要多次使用同一個數(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í)行。
仿真過程在遇到非阻塞型過程賦值語句后,首先計算其右端賦值表達(dá)式的值,然后等到仿真時間結(jié)束時將該計算結(jié)果賦值變量。也就是說,這種情況下的賦值操作是在同一時刻上的其他普通操作結(jié)束后才得以執(zhí)行。
(2),阻塞賦值語句
用操作符“=”來標(biāo)識“阻塞賦值語句”;
在begin-end串行語句中的各條阻塞型過程賦值語句將它們在順序快中的排列次序依次得以執(zhí)行。
阻塞型賦值過程賦值語句的執(zhí)行過程:首先計算右端賦值表達(dá)式的值,然后立即將計算結(jié)果賦值給“=”左端的被賦值變量。
原文標(biāo)題:verilog的一些技巧,就靠他拿offer了!
文章出處:【微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
FPGA
+關(guān)注
關(guān)注
1645文章
22050瀏覽量
618731 -
寄存器
+關(guān)注
關(guān)注
31文章
5434瀏覽量
124582 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7256瀏覽量
91925 -
Verilog
+關(guān)注
關(guān)注
29文章
1367瀏覽量
112315
原文標(biāo)題:verilog的一些技巧,就靠他拿offer了!
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Debian和Ubuntu哪個好一些?
了解虛擬電廠的基本概念

光伏是什么原理 光伏發(fā)電的基本概念
一些常見的動態(tài)電路

分享一些常見的電路

Linux應(yīng)用編程的基本概念
X電容和Y電容的基本概念
LED驅(qū)動器應(yīng)用的一些指南和技巧

集電極開路的基本概念與原理

評論