[FPGA作品] 勇敢的芯伴你玩转Altera FPGA连载26:内里本质探索——器件结构 上

[复制链接]
版主
发表于 2017-11-21 22:28:24   1275 查看 0 回复 只看该作者 倒序浏览
分享
勇敢的芯伴你玩转Altera FPGA连载26:内里本质探索——器件结构
特权同学,版权所有
配套例程和更多资料下载链接:
http://pan.baidu.com/s/1i5LMUUD
         在第1章里,我们已经讨论了FPGA的基本开发设计流程。在本章,我们也讨论了基本的逻辑电路,那么它和代码以及最终的FPGA器件之间又是怎样的关系呢?如图3.18所示,设计者先编写RTL级代码来描述自己需要实现的功能;然后在EDA工具中对其进行综合,RTL级的代码就被转换为逻辑电路,就如前面一节里的与、或、非等一大堆门电路的各种组合;最后这些逻辑电路需要被实现到特定的FPGA器件中,这个步骤我们通常称之为布局布线。
图3.18 RTL代码、逻辑电路和器件
         在谈到FPGA的规模大小时,我们常常说FPGA器件有多少个门。因此,很多人就天真的以为FPGA器件里面就不过是一大堆与门、或门和非门,设计者写好代码实现的逻辑就对应为FPGA里面的各种不同门之间的相互连接。实际情况还真不是这么简单,FPGA里面还真的找不着几个与门、或门和非门。那么FPGA器件内部到底以怎样的方式来实现我们需要的逻辑电路呢?下面我们就通过剖析Altera公司的Cyclone IV系列FPGA器件的内部结构来解开这个迷。
         翻开Cyclone IV系列的器件手册,如图3.19所示,Volume1的Section 1是Device Core(器件内核,也可以译为器件内部结构),其下的第2章内容,即Logic Elements andLogic Array Blocks in Cyclone IV Devices是专门谈论器件内部逻辑单元结构的。为了帮助大家更好的理解这部分内容,除了对这个典型的FPGA器件结构进行介绍,我们还会列举一个实例来看看一段代码是如何被综合为逻辑电路,以及逻辑电路如何被映射(布局布线)到器件中。
图3.19 Cyclone IV器件手册目录截图
         我们先看看Cyclone IV这款器件的内部结构,如图3.20所示。器件当中最多的就是逻辑阵列块(Logic array blocks,简称LABs),每个LABs包含了16个逻辑单元(Logic elements,简称LEs),LEs是能够实现用户逻辑功能的最小单位,后面我们还会详细介绍这个LEs的内部结构。其实这颗Cyclone IV器件的逻辑结构在Altera公司的器件中非常具有典型性,Altera公司的FPGA也基本都是类似的内部结构。在器件的周围布满了I/O块,这些I/O块直接连接控制着器件外部裸露的I/O管脚。I/O块中包括了双向的I/O缓冲以及一些可编程的I/O特性功能,如施密特触发、上拉电阻和各种电平标准(如高达400Mbps速率的存储器接口以及高达875Mbps速率的LVDS接口)。I/O块不同bank上也有多组GCLK引脚可用作全局时钟输入,GCLK引脚输入的信号在器件内部具有低延时、高扇出等特性,不仅适合于时钟信号输入,也可以作为复位、置位等控制信号的输入。除此以外,Cyclone IV器件还具有丰富的内嵌存储器资源,如M9K存储块可用于配置成紧耦合的ROM、单口RAM、双口RAM、移位寄存器以及FIFO,非常实用;同样是内嵌的可用于各种DSP算法实现的18*18乘法器资源则在很多应用在都能派上用场。
图3.20 Cyclone IV器件内部结构
         虽然图3.20的结构图中没有示意出各个功能块之间的相互连接关系,但是大家可以想象,其实在各个功能块之间存在着丰富的可编程的互连线帮助实现最终的应用。如图3.21所示,各个行列LABs之间会有可编程的互连线、LABs内部的各个LEs内部之间也会有可编程的互连线、I/O块与LABs之间、LABs与存储块以及乘法器之间都有着灵活可编程的互连线。
图3.21 LAB互联结构

4.jpg (18.89 KB, 下载次数: 14)
4.jpg
只有小组成员才能发言,加入小组>>
46个成员聚集在这个小组 加入小组

创建小组步骤

关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区