【发布时间】:2017-03-23 21:29:43
【问题描述】:
刚刚遇到这个问题,在阅读了一些内容之后,似乎 System Verilog 中不允许这样做,但它似乎有点迟钝,我想知道我是否错过了一些简单的解决方法。
我有一个定义为 if_datapath 的接口。该接口确实有一些名为 sink、source 和 monitor 的 modport,我可以毫无问题地在模块上使用该接口。
但是,如果我将模块内的接口定义为接收器、源或监视器:
if_datapath #(.EW(5),.DW(256),.SW(64),.QW(32)) dp_buf_0 (.clk(clk), .reset(reset));
我可以使用它来通过层次结构路由我的界面。但是,如果不使用它进行路由,我会编写以下内容:
always @ (posedge clk)
begin
dp_buf_0 <= dp_in; // Where dp_in is the same kind of
//interface as dp_buf_0
end
我收到一条错误消息:
An instance name is not a legal lvalue [7.1(IEEE)].
所以如果我想注册我的整个界面,我需要分解各个部分吗?告诉我我在这里遗漏了一些东西。
【问题讨论】: