【问题标题】:I implement SIPO shift register by using verilog, but unknown error comes out我使用verilog实现SIPO移位寄存器,但出现未知错误
【发布时间】:2017-12-08 19:08:25
【问题描述】:

主文件

module D_ff (q, D, Clk, Reset);
    input Clk, D, Reset;
    output q;
    always @ (posedge Clk);
        and(q, D, Reset);
endmodule

module SIPO(Clk, Reset, Data, Out1, Out2, Out3, Out4);
    input Clk, Reset, Data;
    output Out1, Out2, Out3, Out4;
    begin
    D_ff sr0 (Out0, Data, Clk, Reset);
    D_ff sr1 (Out1, Out0, Clk, Reset);
    D_ff sr2 (Out2, Out1, Clk, Reset);
    D_ff sr3 (Out3, Out2, Clk, Reset);
    end
endmodule

测试台文件

 'timescale 1ps/1ps

    module tb_SIPO;
        reg Clk, Reset, Data;
        wire Out1, Out2, Out3, Out4;

        SIPO(Clk, Reset, Data, Out1, Out2, Out3, Out4);

        initial
        Clk=0;  
        always #11 Clk=~Clk;
        Reset=1; Data=0;
        initial begin
            #15 Reset=1; Data=1;
            #20 Reset=1; Data=0;
            #30 Reset=1; Data=0;
            #10 Reset=0; Data=1;
            #20 Reset=0; Data=0;
            #5 Reset=0; Data=0;
            #20 Reset=0; Data=0;
            #20 Reset=0; Data=0;
            #20 Reset=0; Data=0;
            #20 Reset=0; Data=0;
            #70 Reset=0; Data=0;
            #5 $finish;
        end

    endmodule

错误:(vlog-13053) C:/Modeltech_pe_edu_10.4a/examples/tb_sipo.v(1): near >"'t": Illegal base specifier in numeric constant.

** 错误:(vlog-13069) C:/Modeltech_pe_edu_10.4a/examples/tb_sipo.v(1): near >"'t": 语法错误,意外 BASE,期望类。

我不知道错误是什么意思。我的程序中没有“t”,也看不到任何非法的基本说明符。 这有什么问题?

【问题讨论】:

    标签: verilog


    【解决方案1】:

    您已使用timescale 指定模拟器的参考时间单位。但应该是:

    `timescale
    

    而不是:

    'timescale
    

    ' 用于在 Verilog 中指定数字,例如8'hFF。这就是编译器寻找数字常量的原因。

    【讨论】:

    • 非常感谢!你救了我的命。但是当我编译它并模拟文件时,出现了“错误加载设计”错误。这是什么错误?
    • 恕我直言D_ff 模块不应该因为几个错误而编译,您的错误可能会解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多