时间:2024-07-27 来源:网络搜集 关于我们 0
什么是FPGA ?
现场可编程逻辑阵列 (Field Programmable Gate Array,FPGA) 是在PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
为什么要学习FPGA ?
1. 编程自由度高
FPGA就像乐高的积木一样,可以搭建各种不同的功能模块,实现你所希望的各种功能,当然,你必须掌握最基本的数字逻辑知识,学会一种用来构建各种功能的工具语言(在这里我们推荐Verilog)。
2. 开发周期短,现场可编程
模块化的结构和丰富的IP核,可以极大缩短开发周期。而且,FPGA可以使你对产品进行“现场”编程,不仅能缩短调试周期,也能使产品迅速适应新的标准。
3. 高速
FPGA的高速体现在两个方面:并行性,PLL锁相环
第一点是FPGA的并行性,相比于传统的MCU,程序规模越大,越能体现出FPGA的优势。也许简单的“流水灯”程序看不出差别,但是如果是大型程序,存在复杂的数学运算和大量的数据流,FPGA 就可以调用内部的硬核进行高速并行处理。
第二点就是PLL锁相环,MCU同样含有PLL锁相环,但它受到的限制非常大,通常只能进行几个档位的倍频,而FPGA上的PLL倍频自由度较高,以Altera公司生产的MAX10为例,50MHz的时钟通常在芯片允许的情况下,外部时钟可倍频到470MHz左右,而内部时钟可倍频到1.3GHz。
4. 高集成度
随着半导体产品集成度的不断提高 ,FPGA中集成的资源越来越丰富,可以将更多的功能和子系统封装在同大小的硅片里,实现更复杂的算法,计算速度上升的同时,功耗也会更小。
5.可嵌入IP硬核
FPGA可以内置IP核,开发者无需浪费时间去重复的构建成熟的功能模块。目前的FPGA 芯片可以嵌入很多个IP核,例如,计算电路,收发器,协议控制器,甚至嵌入一个完整的MCU。IP核是一个为了实现某一功能而定制的模块,我们不用每次都去重构它,这是在做无用功,我们直接调用即可。
6. FPGA增强功能
随着集成电路工艺的不断提高,FPGA的功能日益强大,内置功能模块也越来越多。
内置处理器:软核 & 硬核 & DSP
时钟及管理:PLL、DLL、驱动/分配
IO:多种高速收发、DDR存储器访问、可编程数控阻抗
嵌入MAC单元 - 高效浮点运算
各种内置存储器:双口RAM、FIFO
各种常用接口:I2C、SPI等
系统监控:内置ADCs
小脚丫STEP FPGA学习板
官方网址:http://www.stepfpga.com/
超小巧设计,USB供电
DIP40封装大小,方便扩展
集成板载编程器,使用简单
参数:
核心器件 Lattice LCMO2-4000HC-4MG132
1 路Micro USB接口
2 位7段数码管
2 个RGB三色LED
4 路拨码开关
4 路按键
8 路用户LED
36 个用户可扩展I/O
主控芯片
小脚丫的核心器件为 Lattice LCMO2-4000HC-4MG132,它具有如下资源:
4320个查找表
10个嵌入式RAM块,攻击92kbits的容量
34kbits的分布式SRAM
96Kbits的用户Flash存储器
内部有两个PLL和两个DLL
支持DDR/DDR2/LPDDR存储器接口
内部具有配置用的Flash
支持双启动模式
内部有一个SPI模块,2个I2C模块以及一个定时器模块
USB接口芯片
XO2-4000内部有足够的逻辑功能构成MCU中的ALU,内部的块RAM可以构成MCU需要的内部存储寄存器,另外XO2系列有硬化的SPI、I2C以及定时器功能,可以构成各种8位、32位的微处理器MCU,Lattice Diamond系统自带支持 Wishbone 总线的8位单片机MICO8 单片机内核以及32位的 MICO32 处理器内核。据说这两个内核都是来自于著名的开源硬件网站 www.opencores.org,在这个网站上可以看到各种经过工程师验证过的内核,比如8051、OpenRisc、AVR、MIPS32,有兴趣的同学可以移植到小脚丫平台上。
学习资源
在本学期的数字电路课程学习中,将会把教材的硬件描述语言从VHDL更换为Verilog,建议同学们能在寒假里学习一下Verilog,推荐夏宇闻编著的《Verilog数字系统设计教程》(第3版),京东和淘宝有售。
Verilog数字系统设计教程(第2版)
http://vdisk.weibo.com/s/z4a2gWe6ECIJS
Verilog语法快速参考
http://www.stepfpga.com/doc/_media/verilogreference.pdf
Verilog介绍
http://www.stepfpga.com/doc/_media/verilog_introduction.pdf
傻瓜都能掌握的FPGA知识: FPGA for Dummies
http://www.stepfpga.com/doc/_media/fpgasfordummiesebook.pdf
美国大学的数字电路/Verilog教程(基于Digilent的板卡,使用的是Xilinx的芯片)Introduction to Digital Design Using Digilent FPGA Boards
http://www.stepfpga.com/doc/_media/intro_to_digital_design-digilent-verilog_online.pdf
STEP FPGA资源速查表
IP Cores的有效使用
电子系统越来越复杂,我们不可能任何一个设计都从头自己写代码,必须学会站在巨人的肩上,充分利用现有的资源,尽快地完成自己的设计。经过几十年可编程逻辑技术的发展,可以说几乎所有的常见功能都能够找到可以参考甚至可以直接调用的IP核,获取这些IP、使用这些IP就是一种非常重要的能力。到哪里去找到可靠使用的内核呢?推荐如下两个途径:
来自原厂的IP核:一般已经包含在其编译系统中,其官方网站上也会有很详细的文档介绍,关于该IP核的功能、结构调用、所支持的器件、所占的系统资源等。
国际知名开源网站上的IP核:比如www.opencores.org,在全球的FPGA开发者中家喻户晓,几乎任何重要的逻辑功能模块都能够在这个网站上找到相应的参考。那些经过WBC认证的代码质量会比较高,不过由于每个人的设计场景会稍微不同,直接调用这些IP核未必合适,能够参考这些IP核的设计思路对自己的设计也是非常有益的。
FPGA主要供应商
Altera是专注于可编程逻辑器件(PLDs)、重配置复杂数字电路的美国公司。该公司于1984年发布器第一款PLD,目前已经是全球最大的PLD供应商,第二大的FPGA供应商,其主要产品线为高端的Stratix,中端Arria以及低端的Cyclone系列FPGA以及MAX系列的CPLDs,其设计软件为Quartus II以及Enpirion 系列的PowerSoC DC-DC电源方案. 2015年12月8日Altera以167亿美元卖给Intel,正式已经成为Intel的一个产品部门 - PSG(可编程系统部)。
Xilinx是专注于可编程逻辑器件的美国公司,FPGA的发明者也是全球第一个采用Fabless生产模式的半导体公司。Xilinx成立于1984年,总部位于美国加州的San Jose。其主要产品线为高端的Virtex, 中端的Kintex,低端的Artix以及Spartan系列,其设计软件包括Xilinx ISE和Vivado Design Suite。
Lattice Semi是一家高性能可编程逻辑器件(FPGAs,CPLD,一季SPLDs)的美国公司,成立于1983年,在全球有大约700名员工,为全球第三的FPGA供应商,全球第二的CPLDs & SPLDs。其主要产品线为高端的ECP系列,中端的MACH系列以及低端的ICE系列,其设计软件为Lattice Diamond。
Cypress是美国一家在嵌入式系统领域(汽车电子、工业控制、网络平台到高交互消费、移动设备)专注于高性能、高质量解决方案的设计和生产企业。它提供比较宽泛但差异化的产品线,比如NOR Flash存储器、F-RAM™以及SRAM, Traveo™ 微控制器, 业界独特的PSoC® 可编程片上系统, 模拟和PMIC电源管理集成电路, CapSense® 电容触摸感知控制器,以及无线低功耗蓝牙BLE 和USB连接方案。
Actel已经被Microsemi收购,主要产品为非易失, 低功耗的FPGA,混合信号FPGA以及可编程逻辑方案。其产品线有反熔丝结构的FPGA和基于Flash的FPGA两种,主要用于高可靠性的领域,比如航空航天。
相关设计文档
MachXO2数据手册
http://www.latticesemi.com/~/media/LatticeSemi/Documents/DataSheets/MachXO23/MachXO2FamilyDataSheet.pdf?document_id=38834
MachXO2编程和配置指南
http://www.latticesemi.com/~/media/LatticeSemi/Documents/ApplicationNotes/MO/MachXO2ProgrammingandConfigurationUsageGuide.pdf?document_id=39085
MachXO2系统时钟PLL设计和应用指南
http://www.latticesemi.com/~/media/LatticeSemi/Documents/ApplicationNotes/MO/MachXO2sysCLOCKPLLDesignandUsageGuide.pdf?document_id=39080
可编程器件的电源去藕和旁路滤波
http://www.latticesemi.com/~/media/LatticeSemi/Documents/ApplicationNotes/PT/PowerDecouplingandBypassFilteringforProgrammableDevices.PDF?document_id=8374
MachXO2 4000管脚分配表
http://www.latticesemi.com/~/media/LatticeSemi/Documents/PinPackage/MachXO23/MachXO2-4000Pinout.CSV?document_id=42571
第一个设计:点亮LED灯
正如C程序初学者尝试的第一个程序是写一个“hello World”一样,FPGA初学者的第一个程序一般都为“心跳(heart beat)灯”,也就是通过系统的时钟进行分频,产生周期性的低频信号(高、低电平交替变化驱动LED),控制LED灯的点亮和熄灭。
http://www.stepfpga.com/doc/%E7%82%B9%E4%BA%AEled%E7%81%AF
立即开启您的FPGA学习之旅吧!
我们为您准备了一大箱子FPGA学习板,数量有限发完为止