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