- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这里是一些接口(interface)代码的片段,它有一些参数化的大小。第四个参数 HAS_BURST 是我试验过的,但它只会导致编译错误。
实际上,我正在寻找一种方法来根据参数从接口(interface)中添加/删除信号。有没有办法让可移动信号具有通用接口(interface)?
interface axi_if
#(parameter ID_WIDTH = 4,
ADDR_WIDTH = 40,
DATA_WIDTH = 64,
HAS_BURST = 0)
();
logic aw_ready;
logic aw_valid;
logic [ID_WIDTH-1:0] aw_bits_id;
logic [ADDR_WIDTH-1:0] aw_bits_addr;
logic [7:0] aw_bits_len;
logic [2:0] aw_bits_size;
generate
if (HAS_BURST)
logic [1:0] aw_bits_burst;
endgenerate
logic [2:0] aw_bits_size;
modport slave (
output aw_ready,
input aw_valid,
input aw_bits_id,
input aw_bits_addr,
input aw_bits_len,
generate
if (HAS_BURST)
input aw_bits_burst,
endgenerate
input aw_bits_size
);
modport master (
input aw_ready,
output aw_valid,
output aw_bits_id,
output aw_bits_addr,
output aw_bits_len,
generate
if (HAS_BURST)
output aw_bits_burst,
endgenerate
output aw_bits_size
);
endinterface
`endif
最佳答案
不,没有。端口在生成 block 中无效。参数可用于调整端口的宽度,但不能完全删除它。您可以使用 `ifdef 有条件地编译它,但这是一个全有或全无的解决方案。不能有某些实例有信号而其他实例没有信号。
在很多情况下无条件地提供信号是很好的,这是处理这个问题的最简单方法。将任何未使用的输入连接到逻辑 0,未使用的输出可以保持未连接状态。
如果这些选项都不起作用,那么除了定义两个不同的接口(interface)之外别无他法。手动执行此操作很快变得无法维护。如果现在有两种变体,您可以肯定很快就会需要第三种,然后是第四种、第五种……许多芯片设计公司都有 SystemVerilog 代码生成器,可以为每个实例创建定制模块。
关于system-verilog - 如何使用参数从系统 verilog 接口(interface)和 modport 添加或删除信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55110938/
根据我之前的问题 (Groups inside structs),在创建 typedef 结构后,我尝试从 5 个不同的 channel 信号声明(结构)形成一个接口(interface)。 结构的形
我是 SystemVerilog 的新手。 我正在阅读以下教程: https://www.doulos.com/knowhow/sysverilog/tutorial/interfaces/ 我不确定
这里是一些接口(interface)代码的片段,它有一些参数化的大小。第四个参数 HAS_BURST 是我试验过的,但它只会导致编译错误。 实际上,我正在寻找一种方法来根据参数从接口(interfac
我有两个带有 modports 的接口(interface)和另一个结合了这两个接口(interface)的接口(interface),如下所示: interface my_interface1 /
我是一名优秀的程序员,十分优秀!