我是新手。
为了测试单个周期的mips cpu,我尝试使用下面的符号从testbench初始化寄存器。
CPU.IM.memory[i] = 32'b0
在这里,CPU是一个具有IM声明的模块(另一个模块),内存在其中被声明为reg。
然而,Quartus verilog编译器抱怨它找不到对象引用。是否支持上述内容?我在内存中加载指令时遇到了类似的问题,我不想在测试平台上这样做,而不是在IM中硬编码或更改它。
TestBench.v
for(i = 0; i < 32; i = i + 1) begin
CPU.IM.IMReg[i] = 32'b0;
end CPU.v
IM IM(
//inputs
.address (pc),
.clk (clk),
.out (Instruction)
); IM.v
module IM ( address, clk, out);
input [31:0] address;
input clk;
output reg[31:0] out;
reg[31:0] IMReg[31:0];抛出错误(10207):TestBench.v(31)处的Verilog错误:无法解析对对象"IMReg“的引用
发布于 2015-11-30 17:33:05
在没有看到更多代码的情况下,很难知道您想要做什么,但我猜测的是,您试图为模块的内部信号(即没有出现在输入或输出端口列表中的信号)分配一个来自不同模块内的值。除非该值是一个常量parameter,否则不能这样做。只有端口列表上的parameters、localparams和信号(inputs、outputs和inouts)是外部可见的。
通常,内存是从.hex或.mif文件中初始化的,这些文件可以更改为表示所需的初始状态。
https://stackoverflow.com/questions/33991467
复制相似问题