微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > fpga前仿ok,后仿出问题,求解~

fpga前仿ok,后仿出问题,求解~

时间:10-02 整理:3721RD 点击:
rt~
前仿功能都能正确,后仿就出错了,代码执行到其中一行就不执行了。
而且在先前编译时,警告过没执行的那一行的中的寄存器没工作,但前仿还是没问题。
代码
begin
        if(sign_bit)//fushu    -32
        begin
        code_low=code_low;
        code_high=code_mid;
        temp1=(code_low+code_high);
        code_mid=temp1[6:1];
        end
        else if(sign_bit==0)//32+
        begin
        code_low=code_mid;
        code_high=code_high;
        temp0=(code_low+code_high);
        code_mid=temp0[6:1];end
    end
红色的地方就是警告的没工作的寄存器,也是后仿没执行的那一行。
请教下,这问题的出现时为什么啊?

位宽一致不?

有时序问题么?

后仿一般是针对时序问题的,仿真一下,看一下波形不就可以了。



    就是后仿那个信号的波形没出来,分析来就是那语句可能出问题了~

和布局布线有关系,检查真正生成的结构。



    以解决,我的赋值方式有问题~
改了就好了~

有时仿真并不一定完全能模拟实际的情况,比如仿真时间不够长等,,

这个明显语句有问题。 两个不一样。 一个 temp1, 一个temp0.

在同一个always 块里,每个信号在每个分支的都要赋值,不能遗漏。否则。好多问题。

你的begin 和end之间都是阻塞赋值语句,执行顺序从上到下,但感觉你的的变量顺序和变量执行顺序明显有冲突。

后仿真的时候编译成功了?



    lz好,我自己也一直在用FPGA编程,做到现在还没有进行过后仿真,都进行的是前仿真。想问你:做后仿真是不是要添加时序约束之后才能进行,还有,如果我只是单纯的用逻辑编写一个算法,就是说整体模块中只使用了FPGA中的CLK,其他输入输出接口都是自己编的,那么我要做的约束文件中是不是只需要对CLK进行约束?

你这个如果是时序逻辑,要用非阻塞的



   后仿的意义不大,在跑布线工程的时候看看时钟报告就可以了。
如果只有一个时钟,需要对这个时钟进行约束。不过有的时候需要忽略某些部分的时序关系,或者设置multicycle。

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

网站地图

Top