EP2C5T144C8的 FIFO 工作不正常。

2020-02-23 10:42发布

做的 系统是一个光栅采集-USB 发送设计,  USB发送 用的是 CY7C68013控制芯片, 采用SLAVE FIFO模式
大致FPGA内部 模块 如下:
     数据输入- 数据处理- FIFO- USB接口;
用最简单的循环增一 写FIFO  然后上位机 通过USB软件接收 显示数据完全正确, 没一点问题。

然后由于前端 处理和接收数据的速度较快, 因此FIFO 选取的比较大 是16位的4096字的长度。
总资源量消耗不多, 逻辑资源288/4608, 才6%
                               存储资源  65536/119808  55%
现在问题就出现了, FIFO宏模块初始化设置中 有个选择 最小区域 或者 最快速度的选项,
当选最小区域选项时候 没问题,  然而选最快速度时 则会 AS下载灯一直亮, 即使拔了下载线 也不灭, 而且 同时 USB 接收不到任何数据, 这时什么问题呢?

还有另一个问题,在最小区域下:
  我在目前的代码上基础上 新增一些模块 实现别的功能, 问题就来了, USB 的数据会丢包(如果用最简单的循环增一不会) , 我发送的数据格式如下:
    3字节 的 数据 以及 3字节的计数,  正常情况下 3字节的计数值 是每次增一, 和循环增一那个一样, 但是 我修改代码后(我就贴出计数值的情况),经常出现:
0x00 0x00  0x02            0x00 0x00  0x02         0x00 0x00  0x04           0x00 0x00  0x04;  一次加两字节
更有时候是  0x00 0x00  0x02   0x00 0x00  0x02    0x00 0x00  0x02    0x00 0x00  0x02      0x00 0x00  0x06  0x00 0x00  0x06  0x00 0x00  0x06 0x00 0x00  0x06 ;  一次加4字节
而正常的应该是 0x00 0x00  0x02  0x00 0x00  0x03   0x00 0x00  0x04
我开始一直以为是代码中状态机时序问题, 有时改下 又能变好, 但别的模块代码变一下, 又变成这样, 现在我就发现 不能增加模块了,只要稍微改改别的模块代码, 这个就变这样, 这什么情况造成的。。。。。  哪位大神来帮我想下 是什么问题啊





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。