Sv中always_ff/comb/latch语句介绍

本文介绍了SystemVerilog中用于描述组合逻辑、时序逻辑和锁存器的always_comb、always_ff和always_latch语句。通过使用这些关键字,可以更准确地表达设计意图,降低unintentional latch的出现,提高电路设计的准确性。综合工具将根据这些关键字进行相应检查,减少设计错误。
摘要由CSDN通过智能技术生成

Verilog中,设计组合逻辑和时序逻辑时,都要用到always:

always @(*) //组合逻辑
  if(a > b)
    out = 1;
  else
    out = 0;
always @(posedge clk) //时序逻辑 flip-flop触发器
  if(en) 
    out <= in;

仅从关键字上,看不出设计者想要一个什么样的电路。

SystemVerilog把always关键字细化了。对不同的设计要求有不同的关键字:

always_comb //组合逻辑
  if(a > b)
    out = 1;
  else
    out = 0;

comb是combinational的缩写,always_comb表示设计者想要设计一个组合逻辑电路。同时不必再写敏感信号列表。我们在设计组合逻辑电路时,一件最重要的事就是不要一不小心搞一个latch出来。always_comb会告诉综合工具,这里需要的是一个组合逻辑电路。假如我们设计时,if语句或者case语句没有写完整,

always_comb //错误
  if(a 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值