路人甲被注册了 发表于 2015-4-13 14:36:53

关于FPGA时序约束一个问题。

本帖最后由 路人甲被注册了 于 2015-4-13 15:19 编辑

CPU每隔相应时间置寄存器,清除数据/累加数据。

仿真过,仔细找过,没找到逻辑问题。严重怀疑是时序约束问题,数据周期是250M,怀疑门电路延迟超过4ns,以至于 每几次数据就会出错一次。

出错的现象是:



求解怎么破。

路人甲被注册了 发表于 2015-4-13 14:39:17

本帖最后由 路人甲被注册了 于 2015-4-13 14:41 编辑

always @(posedge clk_250m or negedge rst_250_n) begin
       if(!rst_250_n) begin
                ID_IDD_reg               <= 32'd0;
                QD_QDD_reg       <= 32'd0;
                cnt            <= 8'd0;
                data_ready       <= 1'b0;
        end   
      else if(clr) begin
                ID_IDD_reg               <= 32'd0;
                QD_QDD_reg       <= 32'd0;
                cnt            <= 8'd0;
                data_ready       <= 1'b0;
        end
        else if(start) begin
                //ID_IDD_reg   <= (cnt == 9'h100) ? ID_IDD_reg : (ID_IDD_reg +IDD);
                //QD_QDD_reg   <= (cnt == 9'h100) ? QD_QDD_reg : (QD_QDD_reg +QDD);
                //ID_IDD_reg<= (cnt == 9'h100) ? ID_IDD_reg :(ID_IDD_reg +ID);
                //QD_QDD_reg<= (cnt == 9'h100) ? QD_QDD_reg :(QD_QDD_reg +QD);
               
                ID_IDD_reg   <= (complet) ? ID_IDD_reg : (ID_IDD_reg + num);
                QD_QDD_reg   <= (complet) ? QD_QDD_reg : (QD_QDD_reg + num);
                ID_IDD_reg<= (complet) ? ID_IDD_reg :(ID_IDD_reg +num);
                QD_QDD_reg<= (complet) ? QD_QDD_reg :(QD_QDD_reg +num);
                cnt <= (complet) ? cnt : (cnt + 9'd1);
                data_ready <= (complet) ? 1'b1 : 1'b0;
        end
        elsebegin
                ID_IDD_reg       <= ID_IDD_reg;
                QD_QDD_reg   <= QD_QDD_reg;
                cnt          <= cnt;
                data_ready   <= data_ready;          
        end
end

zxq6 发表于 2015-4-13 15:33:25

关注,不知道你的fpga是啥型号。

路人甲被注册了 发表于 2015-4-13 15:43:25

自结贴,精简逻辑门,问题似乎解决。
之前综合的逻辑。


修改之后:


推断,应该还是门延迟过久,超过一个周期。

uindex 发表于 2015-4-14 20:09:16

STA的时候没有报告timing requirement not meet? 加上250MHz的约束的话,综合工具应该保证满足4ns.

守望者2012 发表于 2016-4-26 14:46:27

很好奇,,楼主是怎么将逻辑门精简下来的。

jm2011 发表于 2016-4-29 16:26:26

同问啊,楼主是怎么优化代码的,给我们这些小白讲讲呗

路人甲被注册了 发表于 2016-4-29 16:28:12

jm2011 发表于 2016-4-29 16:26
同问啊,楼主是怎么优化代码的,给我们这些小白讲讲呗

这都一年前的老贴了,我都好久没写FPGA了。{:lol:}

路人甲被注册了 发表于 2016-4-29 16:30:49

守望者2012 发表于 2016-4-26 14:46
很好奇,,楼主是怎么将逻辑门精简下来的。

挖到一手好坟{:lol:}

jm2011 发表于 2016-4-29 16:42:45

路人甲被注册了 发表于 2016-4-29 16:28
这都一年前的老贴了,我都好久没写FPGA了。

{:smile:} 才发现是2015年的帖子了;
页: [1]
查看完整版本: 关于FPGA时序约束一个问题。