hdlbits系列verilog解答(always块)-29


一、问题描述

由于数字电路由用网线连接的逻辑门组成,因此任何电路都可以表示为模块和赋值语句的某种组合。然而,有时这不是描述电路的最方便方式。过程procedure(其中 always 的块就是一个示例)提供了描述电路的替代语法。

对于可综合的硬件,有两种类型的 always 模块是相关的:
Combinational: always @(*) --组合逻辑
Clocked: always @(posedge clk) --时序逻辑

组合逻辑的always模块等同于assign连续赋值语句,因此两种方法都可以表达组合逻辑电路。选择使用哪种语法主要是哪种语法更方便的问题。过程块内的代码语法与过程块外部的代码不同。procedure过程块具有更丰富的语句集(例如,if-then,case),不能包含连续赋值 * ,但也引入了许多新的非直观的错误方式。 * ( 程序连续赋值确实存在,但与连续赋值略有不同,并且不可综合。

例如,assign 和 combinational always 模块描述相同的电路。两者都创建相同的组合逻辑电路。每当任何输入(右侧)更改值时,两者都将重新计算输出。

assign out1 = a & b | c ^ d;
always @(*) out2 = a & b | c ^ d;

组合逻辑电路
对于组合逻辑的 always 块,请始终使用敏感信号列表 () .显式列出信

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值