zynq开发遇到的相关问题
来源:互联网 发布:mac word转pdf 超链接 编辑:程序博客网 时间:2024/06/05 12:02
问题1:使用第三方平台提供的开发板,核心版未提供管教说明,而IP开发时,需要用外部复位,因此无法分管脚。
解决方法: 1、用VIO,VIO可以固定初始值
2、自己做一个上电复位模块,reg初始值固定时0或者1,在始终稳定后,计数达到特定值后,拉高或者拉低(根据复位信号极性确定),从而实现复位
问题2: 在某些自己定制的IP中,添加了VIO或者xilinx提供的IP,但是在IP添加到总工程中时,综合时,被告知缺少文件。
解决方案: 1、以vio为例,假如,我自己设计的ip名字叫做myip,myip中有vio或者ila,那么我在myip中首先需要添加这两个ip的xci文件。
其次,在总工程中也添加ila和vio的xci文件,双保险,综合一定没有问题。
问题3: VDMA的出现status异常
解决方案: 1、读取vmdaSR的状态值,初步判断时由什么造成其异常,以我的工程为例,我读到0x1c000,很明显,每一行的计数超过了hsize设定的值,因此我判断时tlast没有收到。虽然VMDA的sync全部配置称none,且没有Enable同步,但是VDMA还是需要tlast信号,因此我在自己的ip接口出加了tlast信号,从而使IP正常。
问题4: VDMA取数据异常
硬件配置: VDMA配置未全自由模式,读写通道全部配置称none对齐模式,且都配置称master
软件配置: 配置称单帧模式,不循环。
异常: 取数据有问题。 我设置的VDMA从DDR取数据的起始地址是0x22000000,并将0x22000000附近地址的内容全部设定为0x55555555,我通过vivado抓取AXImater口读通道的数据,地址通道第一个取的地址是0x22000000,达到预期,但是data通道的数据不对,不是0x55555555,并且去了多个值后,才是0x55555555。我一直怀疑时系统未配置好,不是VDMA的问题,因为VDMA取的地址时正确的,只是回的数据有问题。找了好久没有找到解决之道。后来没办法,在VDMA中加入同步信号,自己的IP也产生同步信号给VDMA,后期一切正常。目前问题虽然绕过去了,但是还未解决正在分析。
后续实验分析:怀疑是一帧结束后,加设我自己的IP已经停止要数据了,但是中间路径上的fifo依然要数据,而VDMA会单帧循环向外界灌数据,因此会继续向fifo写数据知道fifo满了,整个系统才会不动。后面我复位一下整个系统,但是PS AXI总线的outstanding状态不会改变,因此即使我重新从0x22000000开始发数据,收到的数据也不是0x22000000. 而是将前面的outstanding的数据补齐后再发送0x22000000地址内的内容。
事情总结是: 1、凡是做事,一开始就应该用最完善的方法,而不是简陋的方法,会留下很多坑。
2、踩在巨人的肩膀上会省很多事,可以借鉴别人的设计和软件环境,配置和软件都一样,先搭建一套平台出来。这样效率会比从0开始高很多。
- zynq开发遇到的相关问题
- petalinux开发zynq问题笔记
- maven项目开发时遇到的相关问题
- 开发中遇到的CSS相关问题及解决
- MEAN工程开发遇到的相关问题总结
- 遇到的数据库相关问题
- ulua遇到相关的问题
- Java遇到的相关问题
- 开发遇到的问题
- 开发遇到的问题
- 开发遇到的问题
- ZYNQ 开发
- 用struts2遇到的相关问题集
- 自定义camera遇到的相关问题总结
- iOS打包相关--遇到的问题
- NDK 图像处理遇到的相关问题
- 自定义View遇到的相关问题
- TextView 遇到的相关问题及解决方法
- 设计一个动物声音“模拟器”,希望通过模拟器可以模拟许多动物的叫声
- 第四周项目5--猴子选大王
- JS生成32位唯一标识
- 第1105期AI100_机器学习日报(2017-09-27)
- Leetcode#17. Letter Combinations of a Phone Number
- zynq开发遇到的相关问题
- UVa11134
- Edge打不开的解决方法
- LeetCode--Maximal Rectangle
- Git使用总结(包含Git Bash和Git GUI的使用)
- Java数据结构和算法(五)——队列
- 第943期机器学习日报(2017-04-18)
- 推荐系统 --- 实时推荐系统
- ios打包ipa的四种实用方法(.app转.ipa)