什么时候用 assign什么时候用always
时间: 2023-10-24 11:05:00 浏览: 109
在 Verilog 中,assign 和 always 都是用于给信号赋值的关键字,但它们的使用场景不同。
assign 用于组合逻辑中的信号赋值,即只能用于给组合逻辑的输出信号赋值。它表示逻辑上的连续赋值,即当输入信号发生变化时,输出信号会立即随之变化。assign 可以看作是一种简化的连续赋值语句。
always 用于时序逻辑中的信号赋值,即在时钟沿或触发事件时给信号赋值。always 块中的代码会被分配到一个硬件块中实现,因此其赋值操作具有时序性。always 块可以用于描述时钟边沿触发的行为,也可以用于描述组合逻辑。
总之,assign 用于组合逻辑的赋值,而 always 用于时序逻辑的赋值。需要根据具体的设计需求选择使用哪种关键字。
相关问题
verilog always assign
在Verilog中,always和assign是用来描述组合逻辑的两种常用语句。它们之间有一些差别。被assign赋值的信号定义为wire型,而被always块下的信号定义为reg型。需要注意的是,这里的reg并不是真正的触发器(寄存器),只有敏感列表为上升沿触发的写法才会综合为触发器(寄存器),在仿真时才具有触发器(寄存器)的特性。举个例子,对于wire型信号a和reg型信号b:
wire a;
reg b;
assign a = 1'b0;
always @ (*) begin
b = 1'b0;
end
在这个例子中,由于1'b0一直没有变化,所以b的信号状态一直没有改变。而因为b是组合逻辑输出,所以在复位时没有明确的值,也就是处于不定态。此外,由于always块内没有敏感信号变化,所以b的信号状态会一直保持为不定态。实际上,这个语句的综合结果可能和assign一样,但是在仿真时会出现问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Verilog语言之结构语句:Always过程块和assign连续赋值语句](https://blog.csdn.net/weixin_38197667/article/details/90345243)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Verilog中always与assign详解](https://blog.csdn.net/yang_zm/article/details/125743263)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
verilog assign和always
verilog中的"assign"和"always"是两个关键字,其中"assign"用于赋值,"always"用于描述组合逻辑或时序逻辑的条件。
在verilog中,"assign"语句可以在模块中赋值一个连续的变量。被赋值的变量可以是一个普通的信号、寄存器或是一个wire。这个变量的值是根据右侧表达式的结果赋给它的,这个表达式只能包含其他信号,不能包含寄存器或是内部寄存器。
"always"语句可以被用来定义组合逻辑或时序逻辑的条件。在组合逻辑中,"always"语句被用来定义在一个或多个输入变量上进行的操作或计算。在时序逻辑中,"always"语句被用来描述每个时钟周期的状态转换和输出生成。它可以用来实现各种类型的寄存器和计数器等功能。
阅读全文