常量:
整數:<位寬 num'><進制 b|o|d|h><數字>,例如 4'b1010
x值(不定值)和z值(高阻值,也可用?代替)
x和z可以標識某一位或者某一個數字
4'b10x0,4'bx,4'b101z,4'bz,4'b?
負數:整數最前面加-
下劃線:分割數字部分,更加易讀(8'b1000_1000)
參數:parameter
parameter 參數名=表達式;
表達式只能是數字或者定義過的參數
變量:
wire型:wire [n-1:0] 數據名;
wire表示信號,常用來表示assign關鍵字指定的組合邏輯信號
wire型信號可以用作輸入,輸出
reg型:reg [n-1:0] 數據名;
對存儲單元的抽象
常用來表示always模塊內的指定信號,常代表觸發器
always塊內被賦值的每一個信號都必須定義為reg型
memory型:reg [n-1:0] 存儲器名[m-1:0];
reg [n-1:0]表示基本存儲單元的大小
存儲器名[m-1:0]表示基本存儲單元的個數,存儲空間的容量
對存儲器進行地址索引的表達式必須是常數表達式
一個n位寄存器可以在一條賦值語句里進行賦值,而一個完整的存儲器不行
運算符及表達式:
基本運算符:+ - * / %
位運算符:~ & | ^ ^~
邏輯運算符:&& || !
關系運算符:< > <= >=
等式運算符:== != (不管x、z,結果可能是不定值)
=== !==(對參數的x、z都進行比較)
移位運算符:<< >>
位拼接運算符:{ },將幾個信號拼接起來,例如{a,b[3:0],w,3'b100}
縮減運算符:C =&B;C =|B;C =^B;
優先級別:和c語言差不多,加括號
賦值語句:
1)非阻塞賦值方式(b <= a)
a.塊結束才完成賦值
b.b的值不是立刻就改變的
c.在可綜合的模塊中常用
2)阻塞賦值方式(b = a)
a.賦值語句執行完成后,塊才結束
b.b的值在賦值語句執行后立刻改變
c.可能會產生意想不到的結果
簡單理解:
非阻塞賦值用了多個觸發器,每次時鐘到達,所有觸發器都觸發一次
阻塞賦值連到同一個觸發器上,時鐘到達,導致所有寄存器被賦值
原文標題: 常量 變量
文章出處:【微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
Verilog
+關注
關注
28文章
1345瀏覽量
109996
原文標題:verilog數據類型 常量 變量
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論