原创 【先挖坑,懂了再来填】遇到一个dsp和fpga交互的问题

2015-4-9 11:46 2162 7 9 分类: FPGA/CPLD 文集: FPGA&verilog

最近遇到一个dspfpga交互的问题,虽然问题已经解决,但是原因还是没弄太懂,先挖一个坑,以后再填,或者看过这篇博文知道的答案的,希望能指教一二。

 

问题是这样的:dsp通过emif外挂了三个外设:sdramflashfpgadspfpga也是通过emif进行交互,其中dsp是主,fpga为从处理器,控制emif交互的有CEAOEAWE三根控制线,和16跟地址线,32根数据线。画个图,好理解一点

 

3333.jpg
那么问题来了,如果fpga先把程序下进去的时候,dsp下程序时刚好下到sdram空间时就会报错,如果fpga不下程序,dsp直接下进去程序就没问题。。
观察到的现象:用fpgasignaltap观察这些交互线,发现dsp发数和收数时,AOE也是大部分为低的,这就不正常了,因为低是有效的。。
4444.jpg
这是出现这种错误的一个简单的测试模块,其中AOE是控制dsp读数的(低有效),,但是程序里面没有测试dsp读数,只是用AWE测试了dspfpga写数。AOE没有管,只是在qsf中绑定了管脚。。。但是在下载dsp时,AOE未低仍然是不正常的状态对于dsp来说
 
所以最终怀疑到是fpga的综合时把AOE自动综合为低了,然后改程序把AOE接到一个寄存器上,初始化为高,上面出现的问题就解决了。但是观察rtl图综合器是把AOE信号线优化掉了的。。。那么此时外部dsp管脚接到AOE是接到fpga哪里去了呢?用signaltap观察,为什么在99%的情况下为低呢?
 
(2)另外在这个问题的基础上还测试了一个正确的程序,是不会出现这个问题的。而其AOE管脚的rtl图是这样的
5555.jpg

DspAOE管脚信号直接进来是接FPGA的一个或门的,就不会出现这种问题,为什么了?反正就是当dsp没有通过emif进行读写操作时,dps的三个控制emif的管脚不能为低。

我认为出错原因可能是dsp下载程序到sdram或者进行传输等操作时,会检测dsp这三个管脚,如果管脚有效,当然dsp就认为此时EMIF为忙状态。此时再进行emif操作当然会报错。。。。

 

 

 
 
 

 

 

 

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户1771764 2015-4-13 10:14

    大概看了一下,感觉是你的FPGA内部的DSP接口可能写得不完善,AOE应该是读使能,他应该与AWE写使能和CE结合起来确定DBUS的方向。只有为读FPGA(CE和AOE都为低)的情况下才能够DBUS驱动数据输出,否则应该为高阻。要不然可能会影响DSP对其他设备(SDRAM、FLASH)的操作。

    从你的描述来看AOE被优化掉了,应该是没有使用这个信号吧。按理来说如果正确使用了CE信号,只是测试写情况,也应该是在CE为高的情况下,可以控制DBUS的输出为高阻。但是DSP的EMIF的接口的实现不太清楚,他有没有正确能够区分SDRAM和非SDRAM设备,因为SDRAM设备是要定时刷新的,在刷新的时候CE信号会拉低,此时你的FPGA就被激活了,就会对外驱动数据。可能会影响到其他设备的数据读写。

 自己的一点经验,希望对你有用。

用户433170 2015-4-13 08:17

不知道博主研究的这个交互,会不会涉及商业机密,如果不涉及的话能不能程序给我一份,我也在研究,但是FPGA不知道应该怎么设置。谢谢了 niushijia007@sina.com
相关推荐阅读
用户1715035 2015-05-18 10:41
The art of counting in fpga(2)
接前面,居然一篇放不下--------------------------------------------------------------------------------- Cus...
用户1715035 2015-05-18 10:40
The art of counting in fpga(1)
转载至fpga4fun,觉得对重新理解fpga很好,而且从来没有在中文网站上看到这种东西,而且讲的通俗易懂,以后多看点英文网站。先转下来备忘,从以前的一个自己的博客上转载过来的。。 (1)Bi...
用户1715035 2015-04-25 18:13
多相抽取fir滤波器的fpga仿真实现
今天仿真了下多相抽取滤波器的仿真实现,其原理其实很简单就是根据抽取的原则,将fir滤波器的系统函数分解,称之为多相,所以又叫多相抽取滤波器。 一、原理如下图:   系统实现函数为...
用户1715035 2015-04-20 16:20
fir 滤波器的matlab实现和modesim实现仿真对比
本测试主要是为了测试fir滤波器在matlab和modesim中有什么不同。。 用的fir滤波器都是8阶直接,而且信号处理过程也是一模一样。 第一步:以matlab为原型,现在matla中...
用户1715035 2015-04-19 00:29
直接型iir滤波器的matlab实现和modesim仿真对比
本文测试直接I型的IIr低通滤波器在matlab中和在fpga实现中有什么不同。。 为了看的清楚写的简略,可以参考后面贴的代码 第一步:产生两个信号源,采样率fs =1000hz,单频信号...
用户1715035 2015-04-09 23:03
matlab和modesim的一种读写交互方式(通过txt文件)
在进行modesim仿真时,由于matlab强大的数据处理能力,时常需要比较复杂的激励或者需要把仿真结果保存下来用matlab来处理。利用matlab工具来辅助modesim仿真显得十分重要。。 ...
EE直播间
更多
我要评论
2
7
关闭 站长推荐上一条 /3 下一条