Verilog NgdBuild:605-逻辑根块';试验台和x27;类型为';试验台和x27;没有扩展。符号';试验台和x27;在目标';第7条和第27条;
错误为NgdBuild:605-类型为“test_bench”的逻辑根块“test_bench”为 未扩展的。目标“artix7”中不支持符号“测试台”。在伊瑟 请让我知道出现此错误的原因 二,。指令存储器 三,。试验台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地址,仪表); 初始开始 //
模块测试台;
//投入
注册时钟;
电线[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