verilog设置24进制计数器_阅读笔记:《Verilog HDL入门》第3章 Verilog语言要素
3.1標(biāo)識(shí)符
1.Verilog中的Identifier是由任意字母、數(shù)字、下劃線和$符號(hào)組成的,第一個(gè)字符必須是字母或者下劃線。區(qū)分大小寫(xiě)。
2.Escaped Identifier是為了解決簡(jiǎn)單標(biāo)識(shí)符不能以數(shù)字和$符號(hào)開(kāi)頭的缺點(diǎn)。如下所示:
3.關(guān)鍵字。我的理解是保留字包括關(guān)鍵字,verilog中關(guān)鍵字都是小寫(xiě)的。
3.2注釋
2. //
3.3格式
語(yǔ)句結(jié)構(gòu)既可以跨越多行編寫(xiě),也可以在一行內(nèi)編寫(xiě)。
3.4系統(tǒng)任務(wù)和系統(tǒng)函數(shù)
以$開(kāi)頭的標(biāo)識(shí)符被認(rèn)為是系統(tǒng)任務(wù)或者系統(tǒng)函數(shù)。任務(wù)可以返回0個(gè)或者多個(gè)值,函數(shù)只能返回一個(gè)值。函數(shù)的執(zhí)行不允許由任何延遲,任務(wù)可以有延遲。但是系統(tǒng)任務(wù)不能有延遲。簡(jiǎn)單做個(gè)測(cè)試,但是發(fā)現(xiàn)控制臺(tái)沒(méi)有輸出。
3.5編譯器指令
某些以`(反引號(hào))開(kāi)頭的標(biāo)志符是編譯器指令。
1. `define和`undef指令:宏定義以及取消前面的宏。
2.`ifdef、`ifndef、`else、`elseif和`endif:條件編譯。
3.`default_nettype:該指令用于為隱式線網(wǎng)指定線網(wǎng)類(lèi)型。
4.`include:可以包含其他文件的內(nèi)容(替換的方式)。絕對(duì)路徑和相對(duì)路徑都可以。
5.`resetall:將所有的編譯指令重新設(shè)置為缺省值。
6.`timescale:一般放在模塊聲明的外部,影響其后所有的延遲值。直到遇到另一個(gè)`timescale指令或者`resetall指令。
3.6值集合
Verilog中有四種基本值:0,1,x,z。其中x、z是不區(qū)分大小寫(xiě)的。這四種基本值構(gòu)成了Verilog語(yǔ)言中3種類(lèi)型的常數(shù):Integer、Real和String。下劃線可以自由地在整數(shù)中或者實(shí)數(shù)中使用,用來(lái)改進(jìn)常量的易讀性。
3.6.1整數(shù)型
1.簡(jiǎn)單的十進(jìn)制:+、-這兩個(gè)操作符只能作用于十進(jìn)制,不能作用于其他進(jìn)制。
2.基數(shù)格式表示法:
[size] '[signed] base value
基數(shù)格式的數(shù)通常為無(wú)符號(hào)數(shù)。若某整型數(shù)的位寬沒(méi)有定義,則默認(rèn)是32位的。無(wú)符號(hào)數(shù)在左邊補(bǔ)零,有符號(hào)數(shù)在左邊補(bǔ)符號(hào)位。若數(shù)的最左邊是x或者z,則補(bǔ)x或z。
base是必須要有的。
3.6.2實(shí)數(shù)
1.十進(jìn)制:小數(shù)點(diǎn)兩側(cè)必須有數(shù)字。
2.科學(xué)計(jì)數(shù)法:23_5.1e2。
Verilog將實(shí)數(shù)隱式地轉(zhuǎn)換成整數(shù)。
3.6.3字符串
字符串是雙引號(hào)括起的字符序列。字符串是8位ASCII值的序列。
3.7數(shù)據(jù)類(lèi)型
Verilog有兩大數(shù)據(jù)類(lèi)型:Net Type和Variable Type。
3.7.1線網(wǎng)類(lèi)型
關(guān)于這部分,多個(gè)激勵(lì)源驅(qū)動(dòng)的線網(wǎng),線網(wǎng)的值有效值由表決定。
3.7.2未聲明的線網(wǎng)
3.7.3向量線網(wǎng)和標(biāo)量線網(wǎng)
3.7.4變量類(lèi)型
1.reg變量類(lèi)型
使用了關(guān)鍵詞signed的reg變量,會(huì)以補(bǔ)碼的形式保存。
2.存儲(chǔ)器
存儲(chǔ)器是由reg變量組成的數(shù)組。存儲(chǔ)器聲明格式如下:
reg[[msb : lsb]] memory1[upper1 : lower1], ...;
存儲(chǔ)器中的每一個(gè)元素被稱(chēng)為字,對(duì)存儲(chǔ)器賦值可以分別對(duì)存儲(chǔ)器中的每個(gè)字進(jìn)行賦值。文中提到了使用for循環(huán)對(duì)存儲(chǔ)器進(jìn)行賦值。還可以使用$readmemb和$readmemh這兩個(gè)函數(shù)對(duì)存儲(chǔ)器進(jìn)行賦值。
3.整型變量
整型變量的聲明格式如下所示:
integer integer1, integer2, ... integerN[msb : lsb];
[msb : lsb]指定了整型數(shù)組的范圍。一個(gè)整形數(shù)至少有32位。
整型能被當(dāng)作向量處理。可以通過(guò)賦值將整數(shù)型轉(zhuǎn)換為位向量。
4.time變量
5.real和realtime變量
3.7.5數(shù)組
看一下二維數(shù)組的聲明:
integer一維reg變量的數(shù)組也被稱(chēng)為存儲(chǔ)器。不能對(duì)整個(gè)數(shù)組進(jìn)行賦值。只能對(duì)數(shù)組的一個(gè)元素進(jìn)行賦值。
3.8參數(shù)
參數(shù)聲明語(yǔ)句的格式如下:
parameter [signed][msb : lsb] param1 = const_expr,...;
參數(shù)值在編譯的時(shí)候可以使用defparam進(jìn)行改變。參數(shù)是局部的,只能在其定義的模塊內(nèi)部其作用,而宏定義對(duì)同時(shí)編譯的多個(gè)文件起作用。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的verilog设置24进制计数器_阅读笔记:《Verilog HDL入门》第3章 Verilog语言要素的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 部分乘用车车辆购置税减半 小鹏副总裁:对
- 下一篇: g++ 内存不够_手机内存老是不足?这三