我想建立一个小型组合电路(少数或1个,1个,1个不是门),我偶然发现测试台上的问题(甚至可能在之前),并希望有人可以帮助我。
这是代码:
module hewi(input D3,D2,D1,D0,output A0,A1,V);
wire k,s; //outputs of the and and not gates
not N01(k,D2);
and An1(s,k,D1);
or Ou1(A0,D3,s);
or Ou2(A1,D3,D2);
or Oufinal(V,D3,D2,D1,D0);
endmodule
这是测试平台代码
module test_benche();
wire D3,D2,D1,D0,A0,A1,V;
hewi test(D3,D2,D1,D0,A0,A1,V);
initial
begin
D3 = 1`b0;
D2 = 1`b0;
D1 = 1`b0;
D0 = 1`b0;
#50;
D3=1`b1;
D2=1`b0;
D1=1`b1;
D0=1`b1;
end
endmodule
我收到的问题是它无法检查这些表达式中的任何一个:
Undefined macro exists as: 'b0'
"testbench.sv", 8: token is '`b0'
D3=1`b0;
^
我在这里缺少什么?
答案 0 :(得分:2)
语法错误是因为您使用的是反引号(`)而不是单引号(')
所有编译器指令前面都有(`)字符。这个 字符称为严重重音(ASCII 0x60)。它不同于 字符('),即撇号字符(ASCII 0x27)。该 编译器指令的范围从它的位置延伸 在当前编译单元中处理的所有文件中处理, 到另一个编译器指令取代它或者 编译单元的处理完成。的语义 编译器指令在LRM第3.12.1节和第5.6.4节中定义。
答案 1 :(得分:1)
关于以下错误:
无法在错误 - [IBLHS-NT]非法行为左侧testbench.sv,15网络类型不能在此分配的左侧使用。违规表达式为:D1来源信息:D1 = 1'b1
always
或initial
块中分配电线。因此,他们需要转换为reg
类型。
//Control signals reg type
reg D3,D2,D1,D0;
//Outputs driven from DUT wires
wire A0,A1,V;
hewi test(D3,D2,D1,D0,A0,A1,V);
initial
begin
D3 = 1'b0;
D2 = 1'b0;
D1 = 1'b0;
D0 = 1'b0;
#50;
D3=1'b1;
D2=1'b0;
D1=1'b1;
D0=1'b1;
end
endmodule