微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求助:关于quartus的时序仿真问题

求助:关于quartus的时序仿真问题

时间:10-02 整理:3721RD 点击:
写了一段程序,功能仿真的结果是对的,时序仿真的结果就不对了,不仅仅是有时延,就是计算的结果也不对,找了半天也找不出问题,请教版里有这方面经验的人,帮助我分析一下可能是什么问题造成这样的结果,先谢谢了。

能说详细点吗?不然大家都很茫然,只知道有问题.

程序
module test(clk,rightdata,dataI,rightout);
input [7:0] rightdata;
input [95:0] dataI;
output signed [31:0] rightout;
input clk;
integer i;
integer j;
reg signed [14:0] rightI;
reg signed [11:0] rightIbuf [7:0];
wire signed [31:0] rightout;
reg signed [15:0] rightIout;
always@(posedge[/email] clk)
begin
if(i<11)
begin
rightIbuf<=$signed((2*rightdata-1))*$signed((dataI[95:0]>>12*i));
i<=i+1;
end
end
always@(posedge[/email] clk)
begin
if(j<11)
begin
rightIout<=rightIout+rightIbuf[j];
j<=j+1;
end
end
assign rightout=rightIout*rightIout;
endmodule


这是功能仿真的结果。


这是时序仿真的结果,按常理来说,时序仿真应该比功能仿真多时延而已,怎么会连结果都改变呢,想不通,哪位大虾可以帮帮我,小女子先谢谢了。

assign rightout=rightIout*rightIout

这个这个,似乎是组合逻辑反馈了吧?能正确?

请教
请教楼上的大虾,能说得更清楚点吗,我应该怎么改呢?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top