我使用verilog实现SIPO移位寄存器,但是出现了未知错误

时间:2017-12-08 07:09:59

标签: verilog

主档

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

Testbench文件

 '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&gt;&#34;&#39; t&#34;:数字常量中的非法基本说明符。< / p>      

**错误:(vlog-13069)C:/Modeltech_pe_edu_10.4a/examples/tb_sipo.v(1):near&gt;&#34;&#39; t&#34;:语法错误,意外的BASE,期待上课。

我不知道错误的含义。没有&#39;在我的程序中,我无法看到任何非法的基本说明符。 这有什么问题?

1 个答案:

答案 0 :(得分:2)

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

`timescale

而不是:

'timescale

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