调用Xilinx 的乘累加器IP核,然后进行仿真,得到的波形与预期的不一样,如何解决?
在ISE 14.7中定制了一个乘累加器,对其进行了例化,然后利用ISim进行仿真测试以实现乘累加的操作,结果输出端s的仿真波形不是预期的效果:

仿真时出现了一个警告:
WARNING:HDLCompiler:687 -"d:/Xilinx/14.7/ISE_DS/ISE//verilog/src/glbl.v" Line 5: Illegal redeclaration of module <glbl>.
不知道是不是这个警告导致的问题,还是测试模块编写有问题?本人刚刚开始学习FPGA编程,这个问题已经困扰了两周了,若是有哪位大神知道如何得到正确的仿真波形请帮帮忙,非常感谢!
源程序:
moduleMultAcc(clk,ce,sclr,bypass,subtract,a,b,s);
input clk;
input ce;
input sclr;
input bypass;
input subtract;
input [7:0] a;
input [7:0] b;
output [15:0] s;
MultAccum MultAcc (
.clk(clk),
.ce(ce),
.sclr(sclr),
.bypass(bypass),
.subtract(subtract),
.a(a),
.b(b),
.s(s)
);
Endmodule
测试代码:
moduleMultAcc_tb;
// Inputs
reg clk;
reg ce;
reg sclr;
reg bypass;
reg subtract;
reg [7:0] a;
reg [7:0] b;
// Outputs
wire [15:0] s;
// Instantiate the Unit Under Test (UUT)
MultAcc myMultAcc (
.clk(clk),
.ce(ce),
.sclr(sclr),
.bypass(bypass),
.subtract(subtract),
.a(a),
.b(b),
.s(s)
);
initial begin
// Initialize Inputs
clk = 0;
ce = 0;
sclr = 0;
bypass = 0;
subtract = 0;
a = -8'b1010;
b = -8'b101;
#10 ce=1;
#55bypass=1;
#35bypass=0;
#30sclr=1;
#20sclr=0;
#40subtract=1;
end
// Add stimulus here
always #5 clk=~clk;
always@(posedge clk)
begin
a=a+8'b10;b=b+8'b1;
end
endmodule
