第三章 模塊的結(jié)構(gòu)、數(shù)據(jù)類型、變量和基本運(yùn)算符號(hào)
概述
如第三章標(biāo)題
3.1模塊的結(jié)構(gòu)
模塊=接口+邏輯功能(定義輸入如何影響輸出的)
3.1.1模塊的端口定義
module 模塊名(口1,口2……);
引用
①模塊名();//按順序
②模塊名(.端口名(端口信號(hào)名)……)//可不按順序,代碼可讀性較高
3.1.2模塊內(nèi)容
I/O
input\output\inout?[信號(hào)位寬-1:0] 端口名;//輸入\輸出\輸入輸出口
也可以寫在module聲明里
內(nèi)部信號(hào)
wire\reg
功能定義
assign/實(shí)例元件(and)/always塊
3.1.3理解要點(diǎn)
時(shí)序、順序\并行執(zhí)行
3.1.4要點(diǎn)總結(jié)
模塊并行
只有連續(xù)賦值assign語(yǔ)句和實(shí)例語(yǔ)句可以獨(dú)立于過程塊而存在于模塊的功能定義部分。
先后出現(xiàn)的秩序沒有關(guān)系
3.2數(shù)據(jù)類型及其常量和變量
reg\wire\integer\parameter
3.2.1常量
數(shù)字
①常量不說明位數(shù)的時(shí)候,默認(rèn)32位
②不說明進(jìn)制的時(shí)候,默認(rèn)十進(jìn)制
參數(shù)型
①parameter 參數(shù)名=表達(dá)式 //提升代碼可讀性和可維護(hù)性
②Decode #(4,0) D1
③defparam 用在一個(gè)模塊中改變另外一個(gè)模塊的參數(shù)的時(shí)候。
defparam Test.T.B1.P=2;
3.2.2變量
wire 變量默認(rèn)時(shí)候即為wire型
reg
①默認(rèn)初始值為x;被用作操作數(shù)的時(shí),為無符號(hào)值,“-1”為15
②always塊內(nèi),所有的信號(hào)必須被定義為reg型。
memory
①reg[7:0] memg[255,0];//定義了一個(gè)memg的存儲(chǔ)器,256個(gè)8位的寄存器構(gòu)成。
②注意寄存器和存儲(chǔ)器的讀寫操作不同。
3.3運(yùn)算符及表達(dá)式
取余% 結(jié)果取第一個(gè)操作數(shù)的符號(hào)
算數(shù)運(yùn)算操作時(shí),一個(gè)為z則結(jié)果為z
長(zhǎng)度不同時(shí),運(yùn)算自動(dòng)高位補(bǔ)0