Verilog:错误:无法匹配的字符(十六进制)

时间:2014-11-20 17:34:45

标签: unicode verilog

我在Verilog中编写了一个移位/添加乘法器,通过在线编译器编译时没有错误,但是当我尝试使用iverilog通过CMD窗口编译它时,我收到以下错误:

  

shiftadd.v:1:错误:不匹配的字符(十六进制U + 019E)

(U + 019E是我能找到的最接近的unicode字符)。我的代码中有什么导致此错误?我不是要传递任何十六进制值。

module shiftaddmult(product, multiplicand, multiplier, clk);
    input clk;

    output reg [63:0] product;
    input [63:0] multiplicand;
    input [31:0] multiplier;
    integer i;

    always @(posedge clk)        //m or m
    begin

        if(i< 32)
        begin


            product[63:32] = 16'b0000_0000_0000_0000;    
            product[32:16] = multiplier;


            if(product[0] == 1)
                begin
                    product[63:32] = product[63:32] + multiplicand;
                    product [63:0] = product[63:1];
                end

            else
                begin
                 product [63:0] = product[63:1];
                end
        i = i + 1;

        end
    end                        //end always
endmodule        //shift add



module tester(output reg [63:0] product,
              output reg [63:0] multiplicand,
              output reg [31:0] multiplier,
              output reg clk,
              output reg i);
initial
        begin

        i = 0;
        clk = 0;

        $dumpfile("multdump.dat");
        $dumpvars;


        #10 multiplier   = 16'b0000_0000_0000_0001;
                multiplicand = 16'b0000_0000_0000_0010;

                //result should = 2


        #20 multiplier   = 16'b0000_0000_0000_0010;
                multiplicand = 16'b0000_0000_0000_0100;


                //result should = 'd8

        #30 multiplier   = 16'b0000_0000_0000_1000;
            multiplicand = 16'b0000_0000_0000_1000;

                //result should = 'd16    
        #40 $finish;
        end

        always begin
                #5 clk = ~clk;    //clock generator
        end
endmodule

module testbench;

wire [63:0] product;
wire [63:0] multiplicand;
wire [31:0] multiplier;

wire i;
wire clk;

tester test(product, multiplicand, multiplier, clk, i);
shiftaddmult mult(product, multiplicand, multiplier, clk);

endmodule

1 个答案:

答案 0 :(得分:0)

看起来您正在从浏览器复制代码并将其粘贴到源代码中。从浏览器复制代码也会复制编译器无法检测到的一些特殊字符。 我建议你再写代码不要复制粘贴。只需使用键盘再次写入这些行。 这应该可以工作并消除不需要的字符。