fpga verilog語法篇 1基本概念 2數(shù)據(jù)類型 1reg
reg可以理解為存儲數(shù)據(jù)的地方.可以被賦值和修改.不需要驅(qū)動源.?
reg默認(rèn)的初始值是x(未知狀態(tài)).
always模塊內(nèi),被賦值的每一個(gè)信號都必須定義成reg型.
(always是一種函數(shù),后面會細(xì)細(xì)分享...)
需要注意:
reg型數(shù)據(jù)可以賦正值,也可以賦負(fù)值,但當(dāng)一個(gè)reg型數(shù)據(jù)是一個(gè)表達(dá)式中的操作數(shù)時(shí),它的值被當(dāng)做無符號值(即:正值). 如:一個(gè)4位的寄存器被賦值為-1,那么在表達(dá)式被參與計(jì)算時(shí),它的值被認(rèn)為是+15.?
為什么會被認(rèn)為是+15呢?
-1 取絕對值-->1 除符號位的其他二進(jìn)制-->001 取反-->110??加一-->111 再加回符號位-->1111就是15 .

reg有時(shí)也會被編譯器看成wire 這個(gè)是編譯器自動優(yōu)化的結(jié)果.(大多情況不需要認(rèn)為干預(yù)和理睬) always塊中,reg寄存器可能被綜合成邊沿觸發(fā)器. 在組合邏輯中,reg寄存器可能被綜合成wire型變量. 程序中的代碼可以分為可以綜合和不可以綜合. 可以綜合,就是代碼會對應(yīng)硬件中的線或者器件. 不可以綜合,是代碼不會生成"實(shí)物",只是邏輯. 不可以綜合的代碼,常常用于做測試用.
時(shí)序邏輯和組合邏輯
時(shí)序邏輯可以理解為,每一拍執(zhí)行一次.按照時(shí)序工作的電路,
組合邏輯是盡量快的執(zhí)行,一個(gè)時(shí)間拍,可能執(zhí)行很多輪.它不會受時(shí)間脈沖限制.