FPGA 调试经验
来源:互联网 发布:淘宝开放平台api 申请 编辑:程序博客网 时间:2024/06/05 16:59
近期在负责一个FPGA项目,接近尾声,俗话云,行百里者半九十。本来到了这个地步本来多多少少有点沾沾自喜的,但是今晚调试了两个bug,发现差得还很远。
1、NIOSII的2PORTSRAM IP核调试
项目中需要用到NIOSII,其中需要NIOSII和外部进行数据交换,所以写了一个2ports RAM IP挂在了avalon MM总线上,因为之前在数据处理的各个模块中经常用到2ports RAM,自我感觉对其数据输入输出的时序还是相当低了解了,至少在VHDL设计中后来基本上没有经过调试就可以得到正确的时序。但是写IP还是第一次,特别是对于AvalonMM总线不是十分的了解,然后犯了一个错误。
大家知道,avalon MM READ有时候是需要由延时的,这个是对于不能立即返回数据的情况。我在写IP核的时候,把RAM的address输入和时钟打了一排,然后设置的RAM的输出也延时的一个时钟周期,后来做生成IP时,没考虑到IP中address的写法,随意的延时了2个周期,结果当然是不行,因为平时的address都需要打一排的,后来不知所措,也没看书,试了1次,0次,因为当时查看signalTap直观的感觉是延时足够了,甚至有点过了,在这种比较错误的感觉下,浪费了大量的时间,其间查找了其他各个方向的问题。我记得当时不是很清楚,这个延时是怎么计算的,尤其是他给的控制信号和书上的时序不是很一样,后来凭借直觉猜了一种情况,计算得出,很可能是延时3个,于是,问题搞定。
得到的经验,需要认真的看书,认真的分析时序,不能想当然!
2、NIOS中SPI的调试
项目中还需要再NIOS上挂上SPI,三个板卡各自有NIOS 之间通过SPI进行通信,这次在设计的时候需要了一个弱智的问题,没有注意到ss_n这个片选是低有效的。期间的原因有,有时候命名不规范导致忽略这个引脚的信息。还有在写发射端时,只写了一次IOWR_ALTERA_AVALON_SPI_SLAVE_SEL,这个信号正常情况下其实是发送一次数据复位一次,但是当时不是很清楚这个,加之先前不知道什么样子才是选中,所以错上加错,给后续的调试造成了几天的时间浪费。后来通过理清思路,慢慢体会到,可能是如何如何,慢慢验证,才搞定了问题。
得到的经验,同上!
3、总线!
之前涉及总线很少,所以很少entity端口的的inout这种情况,也基本上不用高阻态'z',直到有一次和师姐调试一个EMIF接口,当时约定,这个接口仅仅用于我给她的DSP传递信号,因为她那边只有读,不需要写。所以我想当然的把这个数据端口写成了out形式,然后没考虑输出高阻态这种情况,然后华丽丽的上电,电流过大。好在FPGA和DSP都足够坚强,没有出现什么问题。知道我猛然醒悟已经过去好一段时间了。嘿嘿,笨!!!
- FPGA 调试经验
- 基于IP核的fpga调试经验
- FPGA项目经验借鉴
- FPGA时序收敛经验
- 基于PC104接口(ISA接口)的FPGA外围电路扩展板调试经验。
- Altera FPGA调试
- fpga调试技巧
- FPGA 调试 问题
- FPGA调试心得
- FPGA 以太网调试
- rs232串口调试.FPGA
- vivado----fpga验证调试
- FPGA 调试注意事项
- FPGA & Verilog开发经验若干
- FPGA & Verilog开发经验若干
- FPGA & Verilog开发经验若干
- 学习 FPGA 经验与书籍
- 学习 FPGA 经验与书籍
- POJ1753、未解。
- java 死锁产生原因及解锁
- WebService .net web服务
- 学会提问-- 批判性思维指南--读书笔记(以及转载李笑来的字里行间)
- 50个必备的实用jQuery代码段(2)
- FPGA 调试经验
- 基于C++11的阻塞队列简单实现
- 利用电脑宽带上网共享虚拟WIFI热点
- Java多线程之间的通信
- 13年上半年总结记
- The Star Zoo——2、A spaceship made of plastic
- 关于java中 UnsupportedOperationException
- Android开发重要参考资料
- Android原始资源的使用