- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个模块,它传递一个参数
,然后实例化与定义的参数相对应的另一个模块。
但是,如果没有为特定参数组合定义案例,我希望在编译时抛出错误以突出显示问题,如下所示:
generate
if (PARAM1 == 1 && PARAM2 == 2) begin
// instantiate module logic_A
end else if (PARAM1 == 2 && PARAM2 == 1) begin
// instantiate module logic_B
end else begin
// throw an error at compile time if we haven't
// defined a case for those parameters
end
endgenerate
但是,尽管插入了错误,但该代码仍然需要可综合(在 Verilog 中,而不是 SystemVerilog 中)并通过 LINTing。
有谁知道在这种情况下我可以用什么?预先感谢您。
最佳答案
我在姊妹网站 Electronics StackExchange 上针对“a way of conditionally triggering a compile-time error in verilog”回答了非常类似的问题。解决方案是有条件地实例化不存在的模块。我建议不存在的模块有一个很长的名称和有意义的名称来解释错误。这也降低了不存在的模块意外地与现有模块同名的风险。
generate
if (PARAM1 == 1 && PARAM2 == 2) begin : use_logicA
// instantiate module logic_A
end
else if (PARAM1 == 2 && PARAM2 == 1) begin : use_logicB
// instantiate module logic_B
end
else begin : illegal
illegal_parameter_condition_triggered_will_instantiate_an non_existing_module();
end
endgenerate
这是有效的,因为只有在细化阶段评估参数值之后才会检查不存在的模块是否存在。
<小时/>更好的解决方案是使用 SystemVerilog 方法;特别是使用符合 IEEE Std 1800-2009 标准或更新标准的模拟器。然后,您可以使用 $error()
并给出更有意义的消息来处理错误(例如,打印触发错误条件的参数值)。您可以在IEEE Std 1800-2012中阅读更多相关信息。 20.11细化系统任务
generate
if (PARAM1 == 1 && PARAM2 == 2) begin : use_logicA
// instantiate module logic_A
end
else if (PARAM1 == 2 && PARAM2 == 1) begin : use_logicB
// instantiate module logic_B
end
else begin : illegal
$error("Expected PRAM1/2 to be 1/2 or 2/1, but was %0d/%0d", PARAM1, PARAM2 );
end
endgenerate
关于verilog - 什么是在编译时抛出错误的 LINT/综合安全语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44685905/
这一次将使用pymysql来进行一次对MySQL的增删改查的全部操作,相当于对前五次的总结: 先查阅数据库: 现在编写源码进行增删改查操作,源码为: ?
我收到警告: One or more signals are missing in the sensitivity list of always block. always@(Address)begi
我正在寻找一个完整的 java 日期管理库,它可以让我理解像这样的字符串: 明天中午 => 2011-10-20 12:00 今天下午 4 点 => 2011-10-20 16:00 等... 但如果
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 7年前关闭。 Improve this questi
下学期我可能会成为我大学网络编程类(class)教学团队的一员,我想知道要给学生布置什么样的 Javascript 作业。从编程的 Angular 来看,本类(class)不是入门类(class)。
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于 Stack Overflow 来说
我将我的 Gitlab 迁移到了新域。我想将所有 HTTP 请求从旧 URL 重定向到新 URL。两个域当前都指向同一服务器(使用 A DNS 记录)。 我使用 Gitlab Omnibus 包,并捆
只需在新配置的 CentOS 6.5 VM 上使用 omnibus 安装程序设置新的 Gitlab 安装。我有点 Linux 菜鸟,但我一直在尝试设置 Gitlab 安装,并且能够通过主机访问安装。
我试图更好地了解合成如何在没有指定其他条件的过程中工作。 我认为这不是编码方式,因为我没有考虑其他选项,但我的问题是如何解释这段代码? process(clock) begin if (clock'e
创建以下内容时: create view v (a, b) as select 1, 2 from dual; create or replace package p as type t is t
我是一名优秀的程序员,十分优秀!