0

我想构建一个小型组合电路(几个或,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;
                ^

我在这里想念什么?

4

2 回答 2

2

语法错误是因为您使用的是反引号 (`) 而不是单引号 (')

所有编译器指令都以 (`) 字符开头。这个字符被称为重音(ASCII 0x60)。它不同于字符 ('),后者是撇号字符 (ASCII 0x27)。编译器指令的范围从处理它的点扩展到当前编译单元中处理的所有文件,直到另一个编译器指令取代它或编译单元的处理完成。编译器指令的语义在LRM第 3.12.1 和 5.6.4 节中定义。

于 2015-12-14T01:02:01.373 回答
1

关于以下错误:

错误-[IBLHS-NT] 非法行为左侧 testbench.sv,15 网络类型不能用于此分配的左侧。有问题的表达式是:D1 源信息:D1 = 1'b1

线不能分配到alwaysinitial块中。因此需要将它们转换为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
于 2015-12-14T08:58:57.413 回答