基于IP核的fpga调试经验

基于IP核(DRAM,FIFO,DPRAM)的fpga调试经验(转载)
毕业设计开工以来,几个月倏地就过去了
   整个硬件设计中,核心部分便是一块ALTERA公司的CYCLONE器件,主要使用的模块有SDR内存条控制模块、DPRAM,三口RAM以及FIFO。
   从调试内存条的读写开始,到今天FPGA内部逻辑基本全部完成,历时将近两个月。于是,顺理成章的,积累了一点经验,呵呵。现在草草整理,与各位交流。
   最强烈的一个感受,就是“烦”。这种感觉,越是到最后,越是明显。
   因为烦,一塌糊涂便是我最好的发泄场所。当然,调试进度,也不可避免的要受影响了。
   调试内存条的时候,完全依赖FPGA内部逻辑以及不用的管脚。如,先编写内部逻辑控制读写内存条的程序,然后将关键信息通过特定管脚输出来,用示波器观看。这种方法,烦在必须要编写基本功能模块之外的辅助控制逻辑。
    到了后来,我将CPU接口设计上了。这个时候,调试明显加快。因为,我可以方便的将想要观察的信号,直接通过CPU接口读到调试软件去。当然,也可以轻轻松松的使用调试软件发出控制逻辑,指挥FPGA执行特定任务。但是,辅助控制逻辑的编写依然不爽。
    再到后来,遇到了一个棘手的问题:MCU接口不知道为什么开始变得不可靠。现象就是一旦高速读写,FPGA就会陷入不正常工作状态,或者说“跑飞”了。这个问题困扰了我一个多星期,直到我下定决心使用QUARTUS II软件自带的SignalTAP功能。
   SignalTAP 功能,呵呵,实在是爽呆了。。。。。。。我再也不用编写辅助控制逻辑单元。想要观察哪个模块下边的哪个寄存器,直接加上就是了。。。。。。。如此这般,如此这般,我也终于找到了MCU接口不可靠的原因:同步状态机在状态切换时进入了过渡状态。这一点,在观察时序仿真波形的时候,其实已经可以看到了,可惜我没有足够重视。。。。。。。。
    自从使用了SignalTAP功能后,调试进度本来可以大大加快的,可是连着几个月搞FPGA,我已经烦透了,写两行程序,就想去一塌糊涂去。结果呢,单单一个32字节的双口RAM,我调试了3天,呵呵。。。。。。。。
    总的来看,调试FPGA主要使用的手段:
        1.硬件管脚+内部控制逻辑;
        2.MCU接口 + 内部控制逻辑;
        3.时序仿真+其它手段;
        4.SiganlTAP
        5.呵呵,组合呗。。。。。。。。。
    此外,多用铅笔头在白纸上画画逻辑控制框架,时序波形图,状态机状态转换图什么,也会很有帮助的。比用脑子使劲思考要好的多了。。。。。。在这里开始书写日记、心情 …
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值