热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

fpga板制作调试过程记录

2010-09-1122:49:00昨天淘宝准备买块fpga核心板学习,为了练习焊接,我让老板给我散料及pcb板自己焊接。一,在物料到之前的准备:我先设计了一下焊接测试计划1

2010-09-11 22:49:00

昨天淘宝准备买块fpga核心板学习,为了练习焊接,我让老板给我散料及pcb板自己焊接。
一,在物料到之前的准备:
我先设计了一下焊接测试计划

 

 

1,检查电路板:特别是TQFP-144芯片引脚引出线。
2,研究原理图,一块一块看懂。如果有些外围测试电路就可以不用焊接了。
3,决定焊接顺序。先焊接焊接稳压ic,3.3v及外围。便于测量及时发现问题。再焊接1.2v稳压外围,进行并进行测量。
4,焊接TQFP-144芯片。并进行电压、GND及相邻引脚间短路测试。
5,焊接下载配置外围。便于连接电脑下载测试。
二,实际测试结果

对应计划3:
    3.3V稳压芯片没有问题正常输出。1.2V稳压芯片也没有问题正常输出。

对应计划4:
    TQFP-144的ic焊接完后通过万用表进行短路测试发现如下引脚短路:
68(GND).69(IO)短路
66(VCCIO),67(IO)短路
61(GND),62(VCCINT)短路-----
135(IO),136(IO)短路
呵呵!相关引脚弄了点松香拉一下就ok了。

对应计划5:
下载测试

第1次用jtag下载程序,怎么回事,没反应?
到网上搜类似情况。有个人说首先看nce片选是否为低电平,低电平则工作,我就测了下我的nce(16

脚),发现怎么和clk(17脚)的波形一样,结果一测,发现16,17脚短路。在放大镜下怎么也看不出

短路,还查了是否其他引脚短路导致它们短路,但是查不出为什么短路,最后死马当活马医,放了点

松香拉了一下,就好了,他们之间不短路了,原来真的是这2脚短路了,但是阻值为154ohm。不管了,

不短路就ok。

第2次用jtag下载程序,还是没有反应。怎么回事。我的nce是接个10k啦到地的。但是测了此脚出现的

是一个clk的波形,虽然已经不短路了,但是波形还是和晶振(17脚)类似,只不过电压小了。这个引

脚应该不是地电平就是高电平,怎么会是一个正弦波。难道是电磁干扰?接着,查了网上多个fpga的

jtag电路配置,第一个nce要接地,最后一个nce要悬空。那么我就一个fpga怎么办?到altera网站下

载ep2c5t资料看,发现nce直接短路到低这样的参考电路,于是把10k电阻去掉,直接短路。

第3次下载,终于是配置成功了,我设置的输出脚有反应了。同时又仔细的了解了.nSTATUS(82脚)和

CONF_DONE(83脚)在配置过程(复位、配置和初始化)中的电平状况,并且进行了验证,完全符合。
但是问题又出来了。我用之前做的分频器作为测试电路程序,输入为50m,输出为3分频,结果输出脚

有反应但是它是100m,接着我改成5分频,输出也差不多100m。怎么回这样呢?我不是已经配置成功了

吗?而且输出都是正弦信号,不是方波。可能输入电压即输出电压,而且我也没在fpga中加数字门电

路。但是总体感觉硬件是没有问题,jtag配置也没有问题,可能是程序设置有问题。

今天不测量好,我是不会死心的,至少我要知道我的硬件焊接到底有没有问题。
我还是静下心来重新写一个程序吧!越简单越好的那种。
`timescale 1 ps/ 1 ps
module fpgatest(
input clk,
output testpin
);
reg[0:0] regtestpin;

assign testpin=regtestpin;

initial
regtestpin=0;

always @ (posedge clk)
regtestpin<=~regtestpin;   //2分频
endmodule
软件引脚配置,综合,写testbench,分配其他引脚为三态输入,设置时序约束,管脚电流限制等,再用modelsim做function test。一切软件上的事情都完成了。

第4次下载。查看我分配的testpin引脚波形。非常成功了进行了2分频,后来又改为4分频,16分频。都

非常成功。于是又改了引脚分配,在4个bank中分别选了个别用户引脚作输出,也如愿输出设计了波形。

 

    fpga核心板硬件测试画上了一个完美的句号。(as配置下我先不测,因为程序下载到配置芯片后如何

清空我不会,并且用as下载我暂时还用不到)自己焊了一块板,而且还调试成功,很有成就感,一定要记录一笔

,夜深了,我可以做一个美梦了,明天还要上一天的课,早点休息了。


推荐阅读
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文探讨了如何在不重新加载URL的情况下,触发WebView的PictureListener.onNewPicture()方法,以实现页面的重新绘制或渲染。 ... [详细]
author-avatar
哈哈不会玩NO1
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有