最近在调试LATTICE  FPGA 做的视频板子,颇不顺利,所以记录下来作为以后的参考:

1、FPGA的IO口不是所有的都是双向的,有些有特殊作用的是单向的。

在查阅 LatticeECP3-17EAPinout.CSV 之后, 发现在LEF3-17EA-FN484C中,有以下几个管脚是单向的:

C4  G7  G6      : jtag 管脚

C14  C15  B15   B16  :编程管脚

K1   L5   L1   K6   N17  M18   :PLL的反馈(fb)管脚

AB2    AB3      : RESERVE

N15    : XRES

其中最容易被用掉的是 PLL的反馈管脚,要格外注意。其他的型号和封装可以参考相应的 .CSV  文件。

否则提示错误: ERROR :  the output port XX is  assigned  to an input dedicated pins [M18] .

2、在将程序下载到外部spi flash时,设置完成之后提示错误:

其中有  Except  Device  ID 0x04002310  READ:0X0000000;  则是说没有读到芯片的地址,则有可能是连接flash的读入线(相对FPGA)有问题。

尤其要检查是不是输入和输出线连接反了。

3、在下载程序到FPGA内部时,浏览芯片出现错误,或下载的时候出现错误,提示也如同上面的错误,就是读不到芯片的 ID, 那么可能是JTAG的四根连线出现问题,要详细检查。 例如我的是在TMS线上接了一个对地100nf的大电容,则把波形都滤掉了,所以出现错误而读不到数据。

4、lattice Diamond 在下载的时候 加载bit文件的时候,由于这个软件不会自动寻到正在编译的工程目录下,所以加载的bit文件可能是上个工程的路径,这样软件就会报出一个错误:

这个原因是下载文件的路径有问题,改为你当前工程的路径即可。

5、关于lattice  DDR3 IP 核的wl_err信号的调试:

lattice  的DDR3 IP核 在调试的时候要注意,硬件上电之后,DDR3 要复位 200us之上,如果时钟是74.25M的输入,则需要计数达到3000个clk,才可以开始初始化。如果是仿真,当然不需要那么久了,假设仿真时钟是6666ps,就是核内部demo的仿真参数,则如下所示

  `timescale   ps/  ps

  parameter  c = ;
always
#(c) clk = ~clk ;

那么  复位的时钟个数计数只要达到100个就可以了(demo 是200个clk周期)。

那么正确的wl_err的 信号在初始化的时候的波形是这样的:

就是在init_done 有效的时候,init_start被拉低,wl_err信号保持为低电平,表示核初始化写调整没有错误,可以正确的读写。

但是吧,有一天,我感觉    c = 6666;  这样太长了,仿真太慢了,于是我又把C调整为 c = 666; 或者 c 更小 ,我想这样是不是只要延时时间一样长,

就可以完成初始化了???于是我就实验,将c= 666,计数记到 100,甚至 16‘hffff,最后发现wl_err的波形在初始化完成时都是下图这样的:

在init_done有效的时候,wl_err被拉高,且一直保持,这就是说,核初始化过程中写调整有错误,这样的结果是——导致核的读操作不能被有效的

响应,就是度有效之后,不能读出数据 。当然这个核是没法仿真的了。  猜测 可能是 时钟的 频率 太快了。

最后没办法,老老实实把 c改为6666 吧。

Lattice FPGA 板子 调试笔记的更多相关文章

  1. FPGA DDR3调试

    FPGA DDR3调试 Spartan6 FPGA芯片中集成了MCB硬核,它可以支持到DDR3.在Xilinx的开发工具Xilinx ISE中提供了MIG IP核,设计者可以用它来直接生成 DDR3 ...

  2. Tomcat调试笔记

    调试笔记 在使用Tomcat过程中经常碰到问题,导致tomcat启动失败.如下↓ 由于报错太过笼统,我根本无法找出错误.后来我切换到Console视图下,看到了如下错误信息. 根据报错信息,错误原因是 ...

  3. JavaScript特效(调试笔记)

    JavaScript特效 一.在网页上显示当前的时间日期,例如:“2016年3月26日 星期六”. js源代码: function getTime() { var today = new Date() ...

  4. USB wifi调试笔记

    本文以realtek 8192CU WiFi模块为例,介绍USB wifi在Jelly Bean 4.1的调试笔记. 1.WIFI打不开现象概述 WiFi打不开是指您在UI的settings下选中Wi ...

  5. ida动态调试笔记

    ida动态调试笔记 目标文件:阿里安全挑战赛的第二题 点击打开链接 使用环境:ida6.8点击打开链接,adt bundle点击打开链接 首先打开avd安卓模拟器,界面如下: 在dos下运行adb命令 ...

  6. modbus-poll和modbus-slave工具的学习使用——modbus协议功能码3的解析(及欧姆龙温控器调试笔记)

    最近的项目中使用到了欧姆龙的温控器,里面有很多的通信方式,我们使用的常见的modbus——RTU方式,其他方式我们不使用,其中通信手册上面有很多通信的实例,欧姆龙modbus还区分4字节模式和2字节模 ...

  7. Lattice 的 DDR IP核使用调试笔记之工程建立

    DDR3的IP核的使用相当重要,尤其是对视频处理方面. 下面接收DDR3 的IP 核的生成步骤. 1. 选择DDR IP核的生成路径.名字以及哪种语言之后就可以设置DDR IP 的参数了. 2.选择存 ...

  8. Lattice 的 Framebuffer IP核使用调试笔记之IP核生成与参数设置

    本文由远航路上ing 原创,转载请标明出处. 这节笔记记录IP核的生成以及参数设置. 先再IP库里下载安装Framebuffer 的ipcore 并安装完毕. 一.IP核的生成: 1.先点击IP核则右 ...

  9. Lattice 的 Framebuffer IP核使用调试笔记之datasheet笔记

    本文由远航路上ing 原创,转载请标明出处. 学习使用以及调试Framebuffer IP 核已经有一段时间了,调试的时候总想记录些东西,可是忙的时候就没有时间来写,只有先找个地方记录下,以后再总结. ...

随机推荐

  1. c#JS调用

    using MSScriptControl; using System; using System.Collections.Generic; using System.Reflection; usin ...

  2. Ubuntu16.04/LinuxMint18安装openjdk-7-jdk

    LinuxMint18的安装源已经默认没有openjdk7了,所以要自己手动添加仓库,如下: sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-ge ...

  3. POJ2396 Budget

    Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 7401   Accepted: 2764   Special Judge D ...

  4. 介绍DSA数字签名,非对称加密的另一种实现

    接下来我们介绍DSA数字签名,非对称加密的另一种实现. DSA DSA-Digital Signature Algorithm 是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS ...

  5. ubuntu14.04 安装pip

    参考链接: 1.http://www.liquidweb.com/kb/how-to-install-pip-on-ubuntu-14-04-lts/ 2.http://idroot.net/tuto ...

  6. Python Day6

    面向对象 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强...&qu ...

  7. 解析Java类和对象的初始化过程

    类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来 ...

  8. Java Reference简要概述

    @(Java)[Reference] Java Reference简要概述 Reference对象封装了其它对象的引用,可以和普通的对象一样操作. Java提供了四种不同类型的引用,引用级别从高到低分 ...

  9. [NHibernate]一对多关系(关联查询)

    目录 写在前面 文档与系列文章 一对多查询 总结 写在前面 上篇文章介绍了nhibernate的一对多关系如何配置,以及级联删除,级联添加数据的内容.这篇文章我们将学习nhibernate中的一对多关 ...

  10. jquery实现 复选框 全选

    $("#checkAll").change(function () { $(this).closest("table") .find(":checkb ...