gpt4 book ai didi

system-verilog - 在 SystemVerilog 中,是否允许从接口(interface)读取参数

转载 作者:行者123 更新时间:2023-12-04 08:27:47 24 4
gpt4 key购买 nike

从标准的角度来看,从接口(interface)读取参数是否合法,我有点困惑。

像这样

interface foo_if #(parameter BAR=5)();
...
logic [BAR-1:0] data;
modport slave(input data, ...);
endinterface

module foobar(foo_if.slave s);
...
logic [s.BAR-1:0] bar;
logic [$bits(s.data)-1:0] m_data;
...
endmodule

我有一个主要综合工具供应商甚至无法处理的问题。他们在帮助消息中明确告诉您,不允许将 $bits() 与接口(interface)成员一起使用。

然而,另一个供应商的模拟工具可以完美地处理这个问题,就像我拥有的​​另一个综合工具一样。

然而,在 S. Sutherland 等人的 SystemVerilog for Design 中。说明:

Because the design hierarchy may not be yet fully resolved during elaboration, it is illegal to assign a parameter, specparam, or localparam constants a value that is derived from elsewhere in the design hierarchy



但是,如果不允许我使用接口(interface)中的参数,它确实会削弱接口(interface)的实用性。

另一方面,SystemVerilog 1800-2012 标准规定:

25.10 Access to interface objects

Access to objects declared in an interface shall be available by hierarchical name reference, regardless of whether the interface is also accessed through a port connection or through a virtual interface, and regardless of the existence of any declared modports in that interface. A modport may be used to restrict access to objects declared in an interface that are referenced through a port connection or virtual interface by explicitly listing the accessible objects in the modport. However, objects that are not permissible to be listed in a modport shall remain accessible.

最佳答案

这里的问题不是关于访问,而是在需要常量表达式的地方允许什么。 LRM is not very clear该接口(interface)端口引用不被视为分层引用。但是该工具并没有提示s.BAR ,它在提示 s.data ,它是一个变量,而不是一个参数。通常,您不能在常量表达式中使用变量,但 LRM 20.6.2 说

The $bits function can be used as an elaboration time constant when used on fixed-size data types; hence, it can be used in the declaration of other data types, variables, or nets.



所以 $bits(s.data) 应该被视为参数表达式。

顺便说一句,您应该使用最新的 freely available IEEE 1800-2012 LRM .

关于system-verilog - 在 SystemVerilog 中,是否允许从接口(interface)读取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29979408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com