调用Xilinx 的乘累加器IP核,然后进行仿真,得到的波形与预期的不一样,如何解决? 20

在ISE14.7中定制了一个乘累加器,对其进行了例化,然后利用ISim进行仿真测试以实现乘累加的操作,结果输出端s的仿真波形不是预期的效果:仿真时出现了一个警告:WARN... 在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
展开
 我来答
liongcui910616894
2017-02-23 · TA获得超过769个赞
知道小有建树答主
回答量:564
采纳率:60%
帮助的人:132万
展开全部
这方面的资料太少了。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天下爱霞BKa81
2015-08-27
知道答主
回答量:4
采纳率:0%
帮助的人:4468
展开全部
楼主你解决了没?我也被这个困扰了,我用chipscope也抓不到输出。这么简单的核,实在不明白哪里能配置错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-01-20
展开全部
你的波形显示怎么是有符号显示?是你自己故意设置的有符号吗?一般是无符号吧?你设置成无符号显示,看看满足不满足你的要求
追问
我故意设置的,改成无符号类型时结果s的输出全是0,应该不是这个原因。其他的我还是过除法器IP核,也是一样的情况,但是对于乘法器、加法器的IP核确实对的。谢谢!
追答
你这个乘加器我没用过,但是除法器和乘法器肯定是没问题的,我估计是你时序给的不对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式