主档
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;在我的程序中,我无法看到任何非法的基本说明符。 这有什么问题?
答案 0 :(得分:2)
您已使用timescale
指定模拟器的参考时间单位。但它应该是:
`timescale
而不是:
'timescale
'
用于指定Verilog中的数字,例如8'hFF
。这就是编译器寻找数字常量的原因。