module(clk.,
reset,
rdy_in,
rdy_out,
din,
dout
);
input clk;
input reset;
input rdy_in;
input [20:0] din;
output [20:0] dout;
reg rdy_out;
reg [23:0] left;
reg [23:0] right;
reg [20:0] dout;
reg [20:0] din_delay [16:0];
always @(posedge clk)
begin
din_delay[16]<=din;
din_delay[15]<=din_delay[16];
din_delay[15]<=din_delay[16];
din_delay[14]<=din_delay[15];
din_delay[13]<=din_delay[14];
din_delay[12]<=din_delay[13];
din_delay[11]<=din_delay[12];
din_delay[10]<=din_delay[11];
din_delay[9]<=din_delay[10];
din_delay[8]<=din_delay[9];
din_delay[7]<=din_delay[8];
din_delay[6]<=din_delay[7];
din_delay[5]<=din_delay[6];
din_delay[4]<=din_delay5];
din_delay[3]<=din_delay[4];
din_delay[2]<=din_delay3];
din_delay[1]<=din_delay2];
din_delay[0]<=din_delay[1];
end
always @(posedge clk)
begin
if(reset==0)
begin
rdy_out<=0;
left<=0;
right<=0;
end
else if(rdy_in==1)
begin
left<=din_delay[0]+din_delay[1]+din_delay[2]+din_delay[3]+din_delay[4]+din_delay[5]+din_delay[6]+din_delay[7];
right<=din_delay[9]+din_delay[10]+din_delay[11]+din_delay[12]+din_delay[13]+din_delay[14]+din_delay[15]+din_delay[16];
if(left>right)
begin
dout<=left>>3;
rdy_out<=1;
end
else
begin
dout<=right>>3;
rdy_out<=1;
end
end
end
endmodule
这是程序。程序实现功能,外部输入8192个数据(数据是随机的,没有规律),在rdy_in=1 时,数据有效。
ISE仿真 可以实现设计功能。但是用chipscope 却一直输出left>>3的值,与ISE仿真结果不一致。
请大家帮我分析一下,这事有什么原因造成的?先谢谢各位了
|