Verilog中幾種賦值語句

2021-12-29 16:22:32 字數 2087 閱讀 3035

在verilog中有兩種型別的賦值語句 連續賦值和過程賦值 賦值表示式由三個部分組成 左

值賦值運算子=或<= 和右值右值可以是任何型別的資料報括net型和register型但對連續

賦值 左值必須是net型別的資料 而過程賦值 左值必須是register型別的資料 下面將作詳細描

述1連續賦值

在initial或always外的assign賦值語句 稱為連續賦值語句 一般在描述純組合電路時使用 例

如wire out //型別定義左值必須是net型別包括wire tri wand wor等等

assign out = a + b //綜合結果為加法器

assign out = en ? a : b //多路選擇器

assign out = en ? in : z //三態門

也可以在資料定義時同時進行連續賦值如

wire out = a + b

使用連續賦值語句 所有右值都是敏感訊號 當右值發生變化時 計算表示式的值 並將結

果傳給左值具有組合電路的特性輸入變化輸出立即變化

2過程賦值

在initial或always塊中的賦值語句 稱為過程賦值語句 包括三種 blocking賦值

non-blocking賦值和過程連續賦值assign/deassign

blocking賦值與順序相關的而non-blocking賦值與順序無關一般來說使用non-blocking賦

值描述時序邏輯電路使用blocking賦值語句描述組合邏輯電路例如

reg x,y,z;

//non-blocking assignment

always @(posedge clk)

begin

x <= a && b;

y <= x;

z <= y;

endreg x,y,z;

//blocking assignment

always @(posedge clk)

begin

x = a && b;

y = x;

z = y;

end在verilog中有兩種型別的賦值語句 連續賦值和過程賦值 賦值表示式由三個部分組成 左

值賦值運算子=或<= 和右值右值可以是任何型別的資料報括net型和register型但對連續

賦值 左值必須是net型別的資料 而過程賦值 左值必須是register型別的資料 下面將作詳細描

述1連續賦值

在initial或always外的assign賦值語句 稱為連續賦值語句 一般在描述純組合電路時使用 例

如wire out //型別定義左值必須是net型別包括wire tri wand wor等等

assign out = a + b //綜合結果為加法器

assign out = en ? a : b //多路選擇器

assign out = en ? in : z //三態門

也可以在資料定義時同時進行連續賦值如

wire out = a + b

使用連續賦值語句 所有右值都是敏感訊號 當右值發生變化時 計算表示式的值 並將結

果傳給左值具有組合電路的特性輸入變化輸出立即變化

2過程賦值

在initial或always塊中的賦值語句 稱為過程賦值語句 包括三種 blocking賦值

non-blocking賦值和過程連續賦值assign/deassign

blocking賦值與順序相關的而non-blocking賦值與順序無關一般來說使用non-blocking賦

值描述時序邏輯電路使用blocking賦值語句描述組合邏輯電路例如

reg x,y,z;

//non-blocking assignment

always @(posedge clk)

begin

x <= a && b;

y <= x;

z <= y;

endreg x,y,z;

//blocking assignment

always @(posedge clk)

begin

x = a && b;

y = x;

z = y;

end

Verilog中幾種賦值語句

在verilog中有兩種型別的賦值語句 連續賦值和過程賦值 賦值表示式由三個部分組成 左 值賦值運算子 或 和右值右值可以是任何型別的資料報括net型和register型但對連續 賦值 左值必須是net型別的資料 而過程賦值 左值必須是register型別的資料 下面將作詳細描 述1連續賦值 在in...

Verilog中的阻塞賦值和非阻塞賦值

verilog中阻塞賦值和非阻塞賦值的異同 一 阻塞賦值 操作符 把賦值運算看做 lhs rhs 在阻塞賦值時,先計算等號右手方向 rhs 的值,這時候賦值語句不允許別的verilog語句的干擾,直到現行的賦值過程完成,即將rhs計算得到的值賦給lhs 左手方向 然後才允許別的語句執行。從理論上來說...

Makefile中幾種賦值( )

變數的引用方式 變數名 或者 例如 就是取變數objs的值 注意 當變數名為單字元是可以採用 a 的方式引用,多字元則不行 var a abc var b var a 222 var c var a var a def var b的值會改變為def,而var c的值還是為abc var a var ...