PGA的硬件设计不同于DSP和ARM系统,比较灵活和自由。只要设计好专用管脚的电路,通用I/O的连接可以自己定义。因此,FPGA的电路设计中会有一些特殊的技巧可以参考。

1. FPGA管脚兼容性设计

FPGA在芯片选项时要尽量选择兼容性好的封装。那么,在硬件电路设计时,就要考虑如何兼容多种芯片的问题。例如,EP2C8Q208C8和EP2C5Q208这两个型号的FPGA。其芯片仅有十几个I/O管脚定义是不同的。在EP2C5Q208芯片上,这几个I/O是通用I/O管脚,而在EP2C8Q208C8芯片上,它们是电源和地信号。为了能保证两个芯片在相同的电路板上都能工作,我们就必须按照EP2C5Q208的要求来把对应管脚连接到电源和地平面。因为,通用的I/O可以连接到电源或者地信号,但是电源或地信号却不能作为通用I/O。在相同封装、兼容多个型号FPGA的设计中,一般原则就按照通用I/O数量少的芯片来设计电路。

2. 根据电路布局来分配管脚功能

FPGA的通用I/O功能定义可以根据需要来指定。在电路图设计的流程中,如果能够根据PCB的布局来对应的调整原理图中FPGA的管脚定义,就可以使后期的布线工作更顺利。例如,如图2-10所示,SDRAM芯片在FPGA的左侧。在FPGA的管脚分配时,应该把与SDRAM相关的信号安排在FPGA的左侧管脚上。这样,可以保证SDRAM信号的布线距离最短,实现最佳的信号完整性。

3. FPGA预设测试点

目前FPGA提供的I/O数量越来越多,除了能够满足设计需要的I/O外,还有一些剩余I/O没有定义。这些I/O可以作为预留的测试点来使用。例如,在测试与FPGA相连的SDRAM工作时序状态时,直接用示波器测量SDRAM相关管脚会很困难。而且SDRAM工作频率较高,直接测量会引入额外的阻抗,影响SDRAM的正常工作。如果FPGA有预留的测试点,可以将要测试的信号从FPGA内部指定到这些预留的测试点上。这样既能测试到这些信号的波形,又不会影响SDRAM的工作。如果电路测试过程中发现需要飞线才能解决问题,那么这些预留的测试点还可以作为飞线的过渡点。

本文转自小平头电子技术社区:https://www.xiaopingtou.cn/article-104214.html 嵌入式,物联网,硬件PCB,电子技术尽在小平头

干货分享,FPGA硬件系统的设计技巧的更多相关文章

  1. 【干货分享】sketch 前端开发常用技巧总结

    sketch横空出世,移动端的应用越来越多的采用sketch来做,前端开发也需要掌握更多sketch技巧. (1) sketch导出图片时,如何快速选择多个图层? 1. 在画布上任一点单击并拖拽出一个 ...

  2. μC/OS-II在Microblaze上的移植与使用专题--“安富利杯”赛灵思FPGA设计技巧与应用创新博文大赛参赛作品

    reference:http://xilinx.eetrend.com/d6-xilinx/blog/2010-05/682.html   随着集成电路设计与制造技术的发展,FPGA芯片的容量越来越大 ...

  3. 【干货分享】Google 的设计准则,素材和资源

    在谷歌,他们说, “专注于用户,所有其它的就会水到渠成 ”.他们遵循设计原则,寻求建立让用户惊喜的用户体验.谷歌一直挑战自己,为他们的用户创造一种视觉语言,综合优秀设计的经典原则和创新.谷歌设计规范是 ...

  4. 《FPGA设计技巧与案例开发详解-第二版》全套资料包

    本人参与写的一本书(TimeQuest一章由我所写),希望大家多多支持: 全书配套资料上传各大网盘资料中附送大量源码,你值得拥有--<FPGA设计技巧与案例开发详解-第二版>全套资料包-V ...

  5. 数字逻辑实践4->面向硬件电路的设计思维--FPGA设计总述

    本文是对实验课上讲解的"面向硬件电路的设计思维"的总结,结合数字逻辑课本,进行提炼和整理. 主要来源是课件与本人整理,部分参考了网络大佬的博客. 本文主要介绍不同于之前软件设计思维 ...

  6. 最强最全干货分享:Android开发书籍、教程、工具等

    最全干货分享,本文收集整理了Android开发所需的书籍.教程.工具.资讯和周刊各种资源,它们能让你在Android开发之旅的各个阶段都受益. 入门<Learning Android(中文版)& ...

  7. 【腾讯Bugly干货分享】React Native项目实战总结

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e16a7640ad7b4682c64a7 “8小时内拼工作,8小时外拼成长 ...

  8. .NET框架设计(常被忽视的C#设计技巧)

    阅读目录: 1.开篇介绍 2.尽量使用Lambda匿名函数调用代替反射调用(走进声明式设计) 3.被忽视的特性(Attribute)设计方式 4.扩展方法让你的对象如虎添翼(要学会使用扩展方法的设计思 ...

  9. 【干货分享】Node.js 中文资料导航

    这篇文章与大家分享一批高质量的的 Node.js 中文资料.Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用 Node ...

随机推荐

  1. C++面试常见问题——07容器和迭代器

    容器和迭代器 vector.list.deque #include<iostream> #include<vector> #include<deque> #incl ...

  2. C++编程学习(十)引用

    引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字.一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量. 注意以下几点与指针的区别: 不存在空引用.引用必须连接到一块合法的 ...

  3. R apply()函数

    创建一个列表变量,它的第一个元素包含所有从0到9的平方数,第二个元素为10到19之内的所有平方数,依此类推,最后一个元素为90到99之内的平方数.没有平方数的元素也应该被包含在内! 学习网友的解题思路 ...

  4. 【问题管理】-- Tomcat8部署项目加载静态资源html页面编码错误

    1.问题背景及解决方式 最近在回顾Tomcat部署Web项目,自己简单地从Tomcat的下载安装及配置server.xml文件入手,学习Tomcat的项目部署,在自己使用IDEA创建了一个简单地web ...

  5. [转载]Jquery Chosen 插件动态生成option或重新绑定

    $(".chosen—select").find("option[value='1']").attr("selected", "s ...

  6. HDU 4901 多校4 经典计数DP

    RT 最近不想写博客,累积了一周多的题目,今天趁着周日放假,全部补上吧 dp[i][j]表示前i个数,操作后的值为j的总个数 注意取或不取,有种完全背包的意味.因为数字小于1024,所以异或的结果也绝 ...

  7. eclipse 项目启动不了问题

    有可能是因为dubugger 打多了,所有启动不起来 解决方案:window——show view ——other....——breakpoints去除所有断点

  8. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-camera

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  9. canvas背景粒子动态变化动画

    var canvas = document.getElementById("cas"); var ctx = canvas.getContext("2d"); ...

  10. 使用Oracle VM VirtualBox安装CentOS 7.6操作系统

    使用Oracle VM VirtualBox安装CentOS 7.6操作系统                                                               ...