我正在尝试编写一个
testbench
来使用 $display()
语句测试我的处理器。
但不知道为什么会有意外,成绩单上打印有意外的或垃圾的数字。
这是我的代码中唯一显示的部分:
// to display
always @ (posedge clock)
begin
#1
if (isInstruction)
begin
// print the instruction number (order)
$display ("instruction %h : ", i);
// print thie instruction opcode
$display ("OpCode = %h ", Ctrl_Processor.opCode);
// print the instruction name
case (Ctrl_Processor.opCode)
_addi : begin
$display ("instruction name : ADDI");
end
endcase
$display((Ctrl_Processor.RegWriteEn) ? "write on register file : Yes" : "write on register file : No");
if (Ctrl_Processor.RegWriteEn)
begin
$display ("Write on register number : %h", Ctrl_Processor.mux1Out);
$display ("data written on register : %h", Ctrl_Processor.mux4Out);
end
$display((Ctrl_Processor.MemWriteEn) ? "write on Memory : Yes" : "write on Memory : No");
if (Ctrl_Processor.MemWriteEn)
begin
$display ("Write on address : %h", Ctrl_Processor.aluResult);
$display ("data written on register : %h", Ctrl_Processor.data2);
end
end
else
begin
$display ("no instruction loaded in this clock");
end
end
我仍然得到这个输出:
每次模拟
testbench
时,都会打印相同的数字
因此,我不认为它是垃圾。
如果项目的文件数量容易处理,请使用您最喜欢的编辑器在文本中搜索
$dislplay
、$strobe
和 $monitor
语句。这三个打印到 std_out。
如果您在很多目录中有很多代码(10、20、100 个文件;您决定什么是很多),请在项目根目录中递归地 grep 启动相同的三个语句(
$display
、$strobe
和$monitor
)。
像这样:
grep -r --color '\$display\|\$strobe\|\$monitor' .
使用其中一种或两种技术作为工具来找出打印不需要的内容的内容。