VCS 遇到未命名的生成块是什么意思?
我的代码:
generate
if(some_condition) begin
assign A=~AB;
end else begin
assign A=AB;
end
endgenerate
我收到一条错误消息,指出 VCS 遇到了未命名的生成块。它指向我有赋值语句的行。是否存在多驱动器问题?
My Code:
generate
if(some_condition) begin
assign A=~AB;
end else begin
assign A=AB;
end
endgenerate
I get an error saying VCS has encountered unnamed generate blocks. And it points to the lines where i have the assign statements. Is there a multiple drive issue?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
试试这个
在几个版本中,Verilog 改变了处理生成的方式。在旧版本中,生成项或关键字本身不会引入新的范围,因此设计人员必须添加一个命名块来执行此操作。我认为这不是 1364-2001 中的“真正”错误,因为您没有在生成中声明标识符,但命名生成块是一个很好的做法。
1364-2005 和 SystemVerilog 通过声明任何未命名的生成块都称为 genblk## 来修复此问题,尽管您仍然应该命名它们。
Try this
In several revisions, Verilog has changed the way generates are handled. In older versions a generate item or keyword by itself did not introduce a new scope so the designer had to add a named block to do this. I don't think this is 'real' error in 1364-2001 since you are not declaring an identifier inside the generate but it is good practice to name generate blocks.
1364-2005 and SystemVerilog fixes this by stating any unnamed generate block are called genblk##, although you should still name them anyway.