Verilog NgdBuild:605-逻辑根块';试验台和x27;类型为';试验台和x27;没有扩展。符号';试验台和x27;在目标';第7条和第27条;

Verilog NgdBuild:605-逻辑根块';试验台和x27;类型为';试验台和x27;没有扩展。符号';试验台和x27;在目标';第7条和第27条;,verilog,Verilog,错误为NgdBuild:605-类型为“test_bench”的逻辑根块“test_bench”为 未扩展的。目标“artix7”中不支持符号“测试台”。在伊瑟 请让我知道出现此错误的原因 二,。指令存储器 三,。试验台 模块测试台; //投入 注册时钟; 电线[31:0]仪表; //输出 电线[31:0]I_addr; //实例化被测单元(UUT) 处理器顶部uut( .CLK(CLK), .Inst(Inst), .I_地址(I_地址) ); 指令存储器im(I地址,仪表); 初始开始 //

错误为NgdBuild:605-类型为“test_bench”的逻辑根块“test_bench”为 未扩展的。目标“artix7”中不支持符号“测试台”。在伊瑟

请让我知道出现此错误的原因

二,。指令存储器

三,。试验台

模块测试台;
//投入
注册时钟;
电线[31:0]仪表;
//输出
电线[31:0]I_addr;
//实例化被测单元(UUT)
处理器顶部uut(
.CLK(CLK),
.Inst(Inst),
.I_地址(I_地址)
);
指令存储器im(I地址,仪表);
初始开始
//初始化输入
CLK=0;
//等待100 ns,等待全局重置完成
#100;
//在这里添加刺激
结束
总是100英镑
开始
CLK它穿起来很好看

我不得不注释掉
$readmemh(“isort.cod”,mem)不过

作为一种风格指南,但更常见的做法是:

always begin
 #100 CLK = ~CLK;
end

在这里使用阻塞(
=
)分配是正确的。您应该使用非阻塞(
是否正确设置了顶层模块?此外,您可能希望将测试台放在一个单独的文件中。
module Instruction_Memory(Address, Data);
  input  [31:0] Address;
  output [31:0] Data;

  reg    [31:0] mem [0:63];

  initial begin
    $readmemh("isort.cod",mem);
  end

  assign Data = mem[Address];

endmodule
module test_bench;

// Inputs
reg         CLK;
wire [31:0] Inst;

// Outputs
wire [31:0] I_addr;


// Instantiate the Unit Under Test (UUT)
Processor_Top uut (
  .CLK   (CLK), 
  .Inst  (Inst),  
  .I_addr(I_addr)
);

Instruction_Memory im(I_addr, Inst);
initial begin
  // Initialize Inputs
  CLK = 0;

  // Wait 100 ns for global reset to finish
  #100;

  // Add stimulus here
end

always #100
begin
  CLK<=~CLK;
end

endmodule
always begin
 #100 CLK = ~CLK;
end
initial begin
  CLK = 0;

  // Wait 100 ns for global reset to finish
  //@(posedge globalreset_n);
  @(posedge CLK);

  // Add stimulus here
  repeat(100) begin
    @(posedge CLK);
  end

  $finish();
end