首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么iverilog会为always_ff生成语法错误?

为什么iverilog会为always_ff生成语法错误?
EN

Stack Overflow用户
提问于 2020-11-06 21:32:56
回答 1查看 949关注 0票数 1

我最近启动了System,我对语法错误感到有点困惑。鉴于以下模块:

test.sv:

代码语言:javascript
复制
module test(
  input logic clk,  
  output logic out );

  always_ff @(posedge clk) begin
    out = 1'b1;
  end
endmodule

使用iverilog -g2012 test.sv编译时,将为第5行(always_ff)生成一个简单的syntax-error。我不知道为什么会发生这种情况,因为我的语法似乎是正确的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-06 23:06:43

SystemVerilog的语法是正确的,但并不是所有的iverilog版本都支持它。来自Icarus Verilog 11的发行说明

现在支持下列SystemVerilog语言特性: always_comb、always_ff和always_latch构造

如果您不使用此版本,则应进行升级。

您的代码在操场上的其他模拟器上编译。

或者,您不需要使用always_ff。您仍然可以使用always

代码语言:javascript
复制
  always @(posedge clk) begin
    out <= 1'b1;
  end

我将您的分配改为非阻塞(<=),这是对顺序逻辑的推荐。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64721874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档