没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
店铺:https://xiaomeige.taobao.com 官方网站:www.corecourse.cn
技术博客:http://www.cnblogs.com/xiaomeige/ 技术群组:615381411
0
FPGA 系统设计与验证实战指南
前 言
由小梅哥团队历经 3 个月,精心打造的第二代 FPGA 学习套件 AC620 开发
板正式发售,在此,特别鸣谢:
AC620 背后的故事
芯路恒团队联合创始人暨上海 V3 学院王建飞老师(梦翼师兄)
山东大学研友 袁卓
杭州电子科技大学研友 曾凯峰
**光电科技工程师 避风港
电子发烧友论坛(http://bbs.elecfans.com/)
EEWORLD 论坛(http://bbs.eeworld.com.cn/)
ChinaAET 小组(http://group.chinaaet.com/)
芯路恒全体新老用户
开发板购买链接:
https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-
13687301132.6.8uPVJ6&id=544830995588
1 从头认识 FPGA
本章导读:
FPGA 作为一种可编程的芯片,其结构和开发方式都与传统的 MCU 或 DSP 不
同。MCU 或 DSP 的设计,是主要进行软件程序设计,用户主要使用 C 语言完成各
种控制和算法的实现,各种功能是在 CPU 的控制下按照顺序依次实现的。而 FPGA
设计,实质是电路设计,是在一个可以现场编程的通用逻辑器件中去搭建各种具
有一定功能的逻辑电路,各个逻辑电路间是各自独立的,能够并行执行。同时,
各个功能电路之间又通过一定的控制和握手信号相互协调。所以,要想能够正确
高效的开发和使用 FPGA,我们必须在此之前对其有一个充分细致的认识,包括对
其硬件资源结构、硬件电路设计、开发环境等。本章通过两节内容,介绍了 Intel
FPGA 的基本原理和开发环境。这对于第一次接触 FPGA 的读者,能够起到指路的
作用。
Cyclone IV E 概述
在短短的三十多年时间里,FPGA 的角色已经由简单的逻辑粘合,发展到了
现在的可编程片上系统。FPGA 的容量翻了几千几万倍,架构复杂度也提升了好
几个水平。那么,具体某一个特定系列或者特定型号的 FPGA,其原理和结构是
怎样的呢?作为 FPGA 设计开发的入门教材,本书选取当下在低端领域极具功耗
和性价比优势的 Intel Cyclone IV E 系列 FPGA 作为典型实例,讲解该系列 FPGA
的原理与结构。
Cyclone IV E 系列 FPGA 是原 Altera 公司(现已被 Intel 收购,为 Intel 可编
程事业部——PSG)于 2009 年发布的一个主打低功耗,高性价比的 FPGA 产品系
列。该系列产品使用过经过优化的 60-nm 低功耗工艺,降低内核工作电压到 1.2V,
部分低功耗系列产品可工作在低至 1V 的内核工作电压下,非常适合应用在对成
本和功耗有较高要求的场合,如仪器仪表类产品,工业控制产品,LED 显示屏驱
动卡,数据采集卡,发烧级音频设备。
典型的 FPGA 通常包含三类基本资源:
1. 可编程逻辑功能块:是实现用户功能的基本单元,多个逻辑功能块通常规
则地排成一个阵列结构,分布于整个芯片;
2. 可编程输入/输出(I/O)块:完成芯片内部逻辑与外部管脚之间的接口,围
绕在逻辑单元阵列四周;
3. 可编程内部互连资源:包括各种长度的连线线段和一些可编程连接开关,
它们将各个可编程逻辑块或输入/输出块连接起来,构成特定功能的电路。
用户可以通过编程决定每个单元的功能以及它们的互连关系,从而实现
所需的逻辑功能。
考虑到实际 FPGA 使用场景下对各种资源的需求,当下几乎所有厂家的
FPGA 器件都在经典 FPGA 的架构上加入了一些其他的常用资源,如时钟管理单
元(PLL、DLL)、嵌入式存储器单元和硬件乘法器单元,部分高端器件还加入了
高速收发器甚至嵌入式硬核处理器,以让 FPGA 能够拥有更加广阔的应用领域。
Cyclone 系列器件在基本 FPGA 架构资源的基础上,加入了时钟管理单元 PLL、
嵌入式存储器单元和硬件乘法器,其中各代 Cyclone 系列的器件中资源架构略有
差异,例如,对于 Cyclone II 系列,使用的是 M4K 结构的嵌入式块 RAM,即每
个嵌入式存储器块的容量为 4096bit,而对于 Cyclone IV E 系列,则使用的是 M9K
的嵌入式块 RAM,即每个嵌入式存储器块的容量为 9216bit。更大的容量带来更
加丰富的存储器资源和更加灵活的应用方式。
Cyclone IV 器件采用了 Cyclone 系列器件相同的核心架构。该架构包括由四
输入查找表 (LUTs) 构成的 LE, 存储器模块以及乘法器。每一个 Cyclone IV 器
件的 M9K 存储器模块都具有 9 Kbit 的嵌入式 SRAM 存储器。在使用时,我们
可以把 M9K 模块配置成单端口、简单双端口、真双端口 RAM 以及 FIFO 缓冲
器或者 ROM,以方便我们对运行过程中的各种数据存储。使用乘法器,我们可
以设计或实现更加高效的并行结构的数字信号处理算法如 FFT、FIR 等。
除了核心架构资源,Cyclone IV E 还拥有最多 4 个 PLL 时钟管理单元和高达
532 个用户 IO,其中部分 IO 支持 LVDS 标准。图 1.1–1 为 Cyclone IV E 的资源
分布图。
图 1.1–1 Cyclone IV E 的资源分布图
通过该图可以看到,在器件的四周,分布着 4 个锁相环(PLL),因此可以知
道外部参考时钟进入 FPGA 器件后,如果需要,就可以立即进入 PLL 单元,以实
现最短的时钟源路径,从而获得较高的生成时钟质量。另外,也由于 PLL 属于模
拟电路,放在器件的边缘更加利于生产。
逻辑阵列和 M9K 存储器交替分布,这样,可以缩短数据的传输路径,以获得
更加优异的时序性能。
IOEs 是 IO 单元,分布在器件的 4 周,Altera 推荐的数据流向策略是数据流
由左侧 IO 输入,然后进过处理、运算和存储,最终由右侧输出,而控制信号由上
下 IO 单元输入输出。
下面我们以一个典型的数据采集实例,来分析这种资源分布的优势。数据由
外部高速 ADC 采集,通过 IO 口输入到 FPGA 内部,接着经过一定的逻辑电路预
处理后写入到由存储器组成的缓存如 fifo 或双口 ram 中,然后,再由逻辑电路从
存储器中读出,进行相应的处理,在处理的过程中,可能会需要高速的乘法运算,
因此,该部分数据可以直接送给片上集成的 18*18 硬件乘法器进行运算,运算完
成后,再由逻辑电路处理后送入储器组成的缓存如 fifo 或双口 ram 中,等待其他
电路如数据发送电路将数据从缓存中读取出来并最终通过 IO 口上连接的通信电
路传输出去。该系统模型如图 1.1–2 所示。
PLL PLL
PLL PLL
IOEs
IOEs
IOEs
IOE
s
M
9
K
存
储
器
18*18
位
嵌
入
式
乘
法
器
M
9
K
存
储
器
逻
辑
阵
列
逻
辑
阵
列
逻
辑
阵
列
逻
辑
阵
列
图 1.1–2 基于 FPGA 的 USB 数据采集卡系统结构
如果我们将整个数据流从左向右分析,就会发现数据流中每一级所需要的资
源都刚好和 Cyclone IV E 中的各个资源的分布位置对应。因此,按照官方推荐的
数据流向策略将上述设计布置到 Cyclone IV E 的对应资源上,则能够得到时序优
化了的布局布线,从而使设计能够工作在较高的时钟频率下。
Cyclone IV E 扩展资源介绍
接下来我们总结 Cyclone IV E 在经典 FPGA 架构上增加的资源的用处。
1.1.2.1 锁相环 PLL
PLL 的英文全称为 Phase Locked Loop,中文名叫锁相环,属于模拟电路。该
电路的一个特性就是能够将输入的周期信号进行分频和倍频,并最终输出一个或
多个稳定的,与输入信号频率和相位相关的信号。例如,我们将一个 50MHz 的有
源晶振产生的时钟信号接到 PLL 的输入端,然后设置 PLL 的一路输出的倍频和
分频系数分别为 5 和 2,则当 PLL 对输入信号完成锁定后,就能在该路输出上得
到 125M 的时钟,然后,我们就可以使用该时钟信号作为千兆以太网的 GTX_CLK
时钟信号。另外,对于 SDR SDRAM 存储器,需要两路频率相同,理论相位相差
180 度的时钟信号,Cyclone IV E 的一路 PLL 最多可以支持 5 路输出,因此,可
以配置一个两路的 PLL,输出的倍频和分频系数相同,但是第二路信号的输出相
位较第一路相差 180 度,这样就能产生 SDRAM 存储器和 SDRAM 控制器工作时
分别所需的时钟信号。总结下来就是 PLL 能够通过对输入的时钟信号进行分频、
倍频、相位控制,从而得到一路或多路更高或更低的时钟信号。需要注意的是,
Cyclone IV E 中,除了 EP4CE6 和 EP4CE10 两个容量等级的器件只含有两个 PLL
单元外,其他更高容量的器件均含有 4 个 PLL。
对两个通
道的ADC数
据进行偏
移校正,
然后写入
FIFO中
Fifo
将FIFO中
的数据读
取出来,
进行FIR
运算
将运算结
果写入到
FIFO中
Fifo
从fifo中
读取数据
并送给
USB2.0设
备
12
位
ADC
FX2
USB传
输电路
12
位
ADC
剩余752页未读,继续阅读
资源评论
qq_28240083
- 粉丝: 5
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功