学习FPGA,多多少少应该要懂得硬件电路的设计,这样不单单增加了自己的技能,而且还能够对FPGA的硬件实现有更好的了解。

1 模块划分

对于一个基本的FPGA硬件平台,常用的几个电路部分:(1)电源电路;(2)复位电路;(3)时钟电路;(4)外设电路;(5)配置电路。如图2.1所示。

图2.1 常用电路模块

1.1电源电路

电源电路是FPGA的核心,是“心脏”,若是电源电路设计的不合理,很可能导致整个系统的溃败,不能正常运行或者失败。对于FPGA来说,基本上包括三类电压:(1)核心电压;(2)I/O电压;(3)辅助电压;

(1) 核心电压是保证FPGA正常工作的基本电压,属于FPGA内部系统电压。

(2) I/O电压是FPGA的I/O引脚工作所需的参考电压。不同bank的I/O所需要的电压不尽相同,对于一些LVDS的I/O电压,可能会需要1.5V,这就不同于LVTTL电平的I/O口。

(3) 除了上述之外的部分的电压,称为辅助电压,例如一些PLL电路的设计等。

需注意以下情况:

(1)器件需要几档电压,电压值分别为多少;

(2)不同档最大电流是多少;

(3)不同档是否有上电要求;

(4)电源的去耦电容如何分配和排布;

(5)电源电压是否需要设计特殊的去耦电路;

(6)个别芯片需要注意接地问题,FPGA的地信号通常是和电压配对的,一般应用中,统一共地是没有问题的。但个别芯片底部中央有个接地焊盘,这个地信号是连接FPGA内部的很多中间信号的地端,它并不和FPGA的其他地信号直接导通,要注意中间接地焊盘。

1.2 时钟电路

FPGA的时钟信号源一般来自外部,在大规模的FPGA内部会带有PLL或DLL等可以对时钟信号进行倍频或分频。由于FPGA内部有大量的寄存器资源,而往往在做逻辑使用时,大量的寄存器会有同一个时钟源,由于时钟到达每一个寄存器所需要的时间不一样,这就导致延迟,若到达寄存器的延迟过大的话,会导致系统混乱,不能正常工作,所以FPGA内部设计了“全局时钟网络”的走线池,通过这种专用走线,可以将同一时钟到达寄存器的时间差控制到最小的范围之内。只需将外部晶振的引脚接到FPGA专用引脚上面即可,EDA软件会自动识别此类信号,并将此信号分配到全局时钟网络上。

需注意以下情况:

(1)系统运行的最高时钟频率是多大;

(2)时钟走线尽可能短,有条件可以做包地处理;

(3)尽可能选择专用的时钟输入引脚;

(4)是否有可用的内部时钟管理模块,(PLL或者DLL,通常是有的)其输入频率是多少(查器件手册,有一个范围);

1.3 配置电路

FPGA芯片的配置是通过JTAG实现在线可编程,当断电时SRAM数据丢失,不能恢复,因此FPGA通常需要外挂一个用于保存当前配置数据流的PROM或Flash芯片,通常称为“配置芯片”。CPLD大多都是基于PROM或Flash来实现可编程特性,对它们进行编程时就已经配置好数据流固化好了,重新上电还能够运行固有的配置数据,CPLD不需要配置芯片。

需注意以下情况:

(1)配置芯片尽量离FPGA近些;

(2)尽量使用官方指定的电路和引脚;

(3)必要时增加阻抗匹配电阻;

1.4复位电路

复位电路的设计,尽量采用专用引脚。FPGA内部大量的寄存器在上电工作之前需要有一个确定的初始状态以确保正常运行。而上电时间对于FPGA的复位来说也至关重要,FPGA是基于SRAM结构,若上电复位时间较短,那么FPGA器件内部很可能没有复位完成,若上电复位时间较长,对于用户交互使用会有一定的影响,所以上电复位时间要确定好。

需注意以下情况:

(1)使用FPGA专用引脚;

(2)上电复位时间要确定;

(3)尽可能选择专用的时钟输入引脚;

《FPGA全程进阶---实战演练》第二章之硬件平台的搭建的更多相关文章

  1. 《FPGA全程进阶---实战演练》第三十二章 Signal Tap II 应用实例

    还有几天就要交文章终稿了,三年的研究生生活也快要结束了,时间飞快,岁月如梭,但学习技术的热情仍然不能松懈,不懂的东西太多,需要实时保持奋斗!!过些天会继续更新<FPGA全程进阶---实战演练&g ...

  2. 《FPGA全程进阶----实战演练》第二章之系统搭建

    1 系统方案 对于设计一款硬件平台,首先要确定整体框架,确定各个模块所需要的芯片以及电压分配情况.图2.6是笔者曾经设计的硬件平台系统. 图2.6系统框图 对于选定一个系统方案之后,接下来做的要先去查 ...

  3. 《FPGA全程进阶---实战演练》第二十一章 电源常用类型:LDO和 DCDC

    高速电路中的电源设计 高速电路中的电源设计大概分为两种,一种是集总式架构,一种是分布式架构.集总式架构就是由一个电源输入,然后生成多种所需要的电压.如图1所示.这种架构会增加多个DC/DC模块,这样成 ...

  4. 《FPGA全程进阶---实战演练》第二十一章之 几种常用电平分析及特性

    TTL,CMOS以及LVTTL,LVCMOS TTL和CMOS是数字电路中两种常见的逻辑电平,LVTTL和LVCMOS是两者低电平版本.TTL是流控器件,输入电阻小,TTL电平器件速度快,驱动能力大, ...

  5. 《FPGA全程进阶---实战演练》第二十一章 细说低速与高速电路设计之电阻 电容 电感 磁珠

      1.1 什么是高速电路 信号的最高频率成分是取决于有效频率,而不是周期频率. 高速电路的定义是根据信号的有效频率来计算的,在现实世界中,任何信号都是由多个频率分量的正弦波叠加而成的.定义各正弦波分 ...

  6. 《FPGA全程进阶---实战演练》第二章之焊接板子及调试注意事项

    1.若是读者第一次做板子,强烈建议画完PCB板后将PCB图打印出来,然后对照你买的芯片将芯片放置对 应的位置,然后查看所有的封装格式适不适合,否则等你做出板子来后再试,为时晚矣.笔者虽然知道要这么 做 ...

  7. 《FPGA全程进阶---实战演练》第二章之PCB layout注意事项以及投板几点说明

           上一篇博客讲述了各个部分的原理图,那么根据原理图画出PCB,其实PCB是一门很大的学问,想要掌握谈何容易.就笔者在画PCB时的一些注意事项做一些说明.        1.电源部分的电源线 ...

  8. 《FPGA全程进阶---实战演练》第四章之实验平台软硬件使用简介

    本章主要是讲解读者在进行FPGA逻辑设计之前的准备工作,需要下载Quartus II软件和 Modelsim 软件,一个是用来进行FPGA逻辑设计,一个是用来对逻辑进行理论分析与验证. 1.1 qua ...

  9. 《FPGA全程进阶---实战演练》第一章之FPGA介绍

    1 什么是FPGA FPGA也即是Field Programmable Gate Array的缩写,翻译成中文就是现场可编程门阵列.FPGA是在PAL.GAL.CPLD等可编程器件的基础上发展起来的新 ...

随机推荐

  1. tcp流协议产生的粘包问题和解决方案

    我们在前面曾经说过,发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据,也就是说,应用程序所看到的数据是一个整体 ...

  2. USB协议及认知

    1.USB的拓扑结构决定了主机控制器就是最高统帅,没有主机控制器的要求设备永远不能主动发数据.所以主机控制器在USB 的世界里扮演着重要的角色,它是幕后操纵者. 2.数据包的发送, 这个过程包含很多信 ...

  3. Bitmap具体解释与Bitmap的内存优化

    感觉这里的排版看着更舒服些 Bitmap具体解释与Bitmap的内存优化 一.Bitmap: Bitmap是Android系统中的图像处理的最重要类之中的一个.用它能够获取图像文件信息,进行图像剪切. ...

  4. ArraySegmentSample

    class Program { static void Main() { , , , , , }; , , , , , , }; ] { , ), , ) }; var sum = SumOfSegm ...

  5. Matlab图形调色

    Matlab图形调色 Simple example var colormap = require('colormap') options = {   colormap: 'jet',   // pic ...

  6. PHPEXCEL导出excel表格中长数字文本自动转为科学计数法的解决办法

    方法一:前面加空格 $objActSheet->setCellValue('A1', ' '.'330602198804224688'); 方法二: $objActSheet->setCe ...

  7. spring cloud中通过配置文件自定义Ribbon负载均衡策略

    一.Ribbon中的负载均衡策略 1.Ribbon中支持的负载均衡策略 AvailabilityFilteringRule:过滤掉那些因为一直连接失败的被标记为circuit tripped的后端se ...

  8. 依据经纬度返回地址的url -- GoogleMap

    latlng=34,112">https://maps.googleapis.com/maps/api/geocode/xml? latlng=34,112

  9. cocos2d-x开发记录:二,基本概念(粒子系统,Scheduler和定时器)

    七,粒子系统 1.导言 术语粒子系统是指计算机图形学技术,它使用大量非常小的精灵或其他图形对象来模拟某些种类的“模糊”现象,于传统渲染技术相比,它很难复制.通常是高度混沌无序的系统,自然现象.化学反应 ...

  10. MySQL binlog日志三种模式选择及配置

    在认识binlog日志三种模式前,先了解一下解析binlog日志的命令工mysqlbinlog.mysqlbinlog工具的作用是解析mysql的二进制binlog日志内容,把二进制日志解析成可以在M ...