马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
在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 |