微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > SystemVerilog很纠结的一个问题(真的解决不了了吗?都想哭了)

SystemVerilog很纠结的一个问题(真的解决不了了吗?都想哭了)

时间:10-02 整理:3721RD 点击:

先定义了一个class:
`ifndef MEM_BASE_OBJECT_SV
`define MEM_BASE_OBJECT_SV
class mem_base_object;
bit [7:0] addr;
bit [7:0] data;
// Read = 0, Write = 1
bit rd_wr;
endclass
`endif


在另外一个class中例化这个类:
`ifndef MEM_DRIVER_SV
`define MEM_DRIVER_SV
//`include "mem_base_boject.sv"
class mem_driver;
virtual mem_ports ports;
mem_base_object object;
function new(virtual mem_ports ports);
begin
this.ports = ports;
ports.address= 0;
ports.chip_en= 0;
ports.read_write = 0;


endfunction
endclass
但是在questasim中编译的时候会说object不是合法的数据类型。
有没有高人知道怎么回事啊?
小弟先谢过了

干吗注释了这句
//`include "mem_base_boject.sv"

include 的顺序可能不对,找不到类的定义
先 typedef class ....

调用别的类,需要提前typedef的

加上·include还是会报错,说这句话非法

typedef也做过了,还是会出错,不知道什么原因,真是郁闷

你跟楼上说的一样,我在试试,很感谢你和你楼上,呵呵

include "mem_base_boject.sv"
你这个的名字写错了吧?换成mem_base_object.sv看看?

你的意思是不加“”吗?

刚试了下,还是不行



我的意思是,你`include ""里面的文件名错了,object的拼写错误,不知道是不是这个问题。双引号当然是要的。

文件名写错了,好像!

顶一个,

太感谢你了,错误终于找到了,我太粗心了,一定要改掉,呵呵

呵呵是啊,谢谢你的提醒,终于搞定了

... ...

貌似questa的报错提示不是很明确,还是vcs的好!
像这种怀疑是不是没include进来的问题可以直接在同一个文件里把要include的class的定义写上,如果编译能过就说明include哪里出了问题再往下查!

已经解决了,不过还是谢谢你

用vcs试试

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top