通向FPGA之路---七天玩转Altera之基础篇V1.00
FPGA_CPLD设计开发流程快速入门指南 ALTERA篇QuartusII 史上最全
对于本工程实例,设置好器件型号后,就可以直接选择【Finish】即可进入“第五节 逻 辑设计”即可,但如果您想了解其它页表项,可继续往下阅读。
(5)选择【Next >】后即可进入 EDA 工具设置页表项。QuartusII 支持很多第三方工具, 比如综合工具、仿真工具等等,第三工具通常在某一方面更为专业,特别 是仿真工具, QuartusII 已经不再提供仿真功能,只能用第三方仿真工具,如 Modelsim 来进行仿真。
在总结中显示了当前工程编译后所占用的资源情况,本工程占用 51 个宏单元,占用总 设计资源的 21%,使用了 2 个引脚(即 clk 与 clk_out),占用总引脚的 3%
九、逻辑下载
逻辑全编译后即可生成下载文件,对于 CPLD 开发平台,通常是.pof 文件,对于 FPGA 开发平台,还可以是.sof、.jic 等文件
完成后此时应如下图所示:
6
All rights reserved, NO Spreading without Authorization
professional products right for you ( / )
六、逻辑综合
逻辑设计完毕后,可以初步对逻辑进行综合,以进行分析
(1)选择菜单【Processing】→【Start】→【Start Analysis & Synthesis】后,即可开始 进行逻辑设计的综合过程,完成后应如下图所示:
(2)菜单选择【Tools】→【Netlist Viewers】→【RTL Viewer】后即可出现 RTL(寄存器 传输级)图,通常,对于简单的逻辑错误,使用 RTL 可以看出来。本文要实现的是 26 位分 频器,下图表示,每到来一个时钟,即使用 Add0 加法器将当前 tmp 寄存器中的值累加 1, 再通过一个 clk_out~reg0 将最高位输出,这正好应证了我们的设计思路。
通向FPGA之路---七天玩转Altera之基础篇V1[1].0_18
RTL Viewer为了最大化可读性(readability),按如下规则优化网表:(1)没有扇入/扇出(输入/输出未连接)的逻辑不显示;(2)默认的连接不显示,如Vcc和GND;(3)如果可能,pin、net、wire、module port和一些特定逻辑会组成总线;(4)常量总线(constant bus)被组合在一起;(5)十六进制显示;(6)非门(NOT)在原理图里显示为小圆圈(bubble inversion symbols),如与非门图标上的小圆圈;(7)等价的逻辑门链合并到一个逻辑门。
比如,一个2输入与门驱动一个2输入与门被转化成一个3输入与门;(8)状态机被转成一个状态图表、转换表等,显示在State Machine Viewer中;对于一个大型设计来说,需要在布局布线阶段花费大量时间。
不过我们可以在工程进行全编译,并在完成Analysis and Synthesis阶段、正在进行Fitter的时候打开RTL Viewer。
此功能默认关闭,故要使能此功能,点击Assignments->Settings-> Compilation Process Settings,勾选Run RTL Viewer preprocessing during compilation。
(2)Technology Map ViewerTechnology Map Viewer显示映射(后综合)和适配的结果:基本原件(atom primitives)的层级(hierarchy),比如芯片的Logic cells(LCELLs)和I/O ports。
对于支持的芯片,也能显示LCELLs中的寄存器及查找表(LUTs)和I/O基本原件中的寄存器。
层级(hierarchy)的意义可用下图表示:右键选择Hierarchy Down,得到如下所所示。
4.1 界面介绍4.1.1 图标从一段程序的RTL Viewer和Technology Map Viewe视图入手,展示所有symbols。
alterafpga配置
alterafpga配置配置是连接FPGA软件设计到硬件功能实现的桥梁,配置电路部分有误,配置文件无法下载到配置器件中,对FPGA编程,则再好的设计都是浮云。
上电后,配置数据保存在配置RAM中,将配置数据载入配置RAM即是对FPGA编程。
配置方式有很多种,主要区别为FPGA所处的地位和打入数据的方式不同,其基本时序基本相同。
基本时序波形如下:配置过程主要由nCONFIG、nSTATUS、CONF_DONE以及可选的INIT_DONE四个状态信号控制。
一个器件完整的配置过程包括上电复位、配置、初始化三个阶段。
正常上电后,nCONFIG管脚被拉低,器件复位,此时配置RAM的所有内容被清空,所有I/O处于高阻态,其余三个状态信号亦均被拉低,复位结束后,FPGA释放nCONFIG管脚,使其被外部上拉电阻拉高,FPGA在nCONFIG检测到由低到高的跳变沿,配置开始,同时FPGA 采样MSEL的信号状态,决定接受何种配置模式。
随后,FPGA释放nSTATUS管脚,外不上拉电阻将其拉高,FPGA在nSTATUS管脚检测到由低到高的跳变沿,表示FPGA开始接受数据。
配置数据由DATA管脚打入,配置时钟经DCLK管脚送入(被动方式下,主动方式DCLK 由FPGA提供),配置数据在上升沿锁存至FPGA中,配置数据全部打入到FPGA后,FPGA释放CONF_DONE管脚,使其由外部上拉电阻拉高,说明配置结束,进入初始化过程。
INIT_DONE是一个可选的指示初始化完成的信号(Device-Pin&Options-general),INIT_DONE在nCONFIG信号为低或配置的初期时为高电平,而当使能INIT_DONE的比特位(在配置数据的第一帧中)被配置进FPGA后,INIT_DONE信号变低,因此INIT_DONE信号由高到低的跳变表示FPGA配置真正开始,开始接收配置数据,如果INIT_DONE一直保持为高,说明FPGA没有接收到正确配置数据的文件头。
Altera公司FPGA的配置
•
针对FPGA器件不同的内部结构,Altera公司
提供了不同的器件配置方式。Altera FPGA的配
置可通过编程器、JATG接口在线编程及Altera在
线配置等方式进行。
•
Altera器件编程下载电缆的有:
ByteBlaster并行下载电缆,ByteBlasterMV并行
MAX9000(包括MAX9000A)、MAX7000S和MAX7000A
进行编程。ByteBlaster为FPGA提供了一种快速而
廉价的配置方法,设计人员的设计可以直接通过
ByteBlaster下载电缆下载到芯片中去。
(1)下载模式
ByteBlaster并行下载电缆提供两种下载模式: • ①Passive serial mode(PS,被动串行模式)
1. PS(被动串行)模式
•
在PS(被动串行)模式下,MasterBlaster
下载电缆和ByteBlasterMV下载电缆可以对单个
与多个APEXⅡ、APEX20K、Mercury、ACEX1K、
FLEX10K或 FLEX6000系列器件进行配置。在PS模
式,配置数据从数据源通过MasterBlaster下载
电缆和ByteBlasterMV下载电缆串行地传送到器
件,配置数据由数据源提供的时钟同步。
(1)PS模式单个器件的配置电路设计
•
PS模式可以完成对单个APEXⅡ、 NhomakorabeaPEX20K、
Mercury、ACEX1K、FLEX10K或 FLEX6000系列器件
的配置,配置电路如图6.2所示。
•
图中:除 APEX20KE、APEX20KC系列器件外,
FPGA的基本工作原理 Xilinx和Altera对比
FPGA的基本工作原理Xilinx和Altera对比FPGA是在PAL、GAL、EPLD、CPLD等可编程器件的基础上进一步发展的产物。
它是作为ASIC领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。
由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。
查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM工艺的查找表结构,也有一些军品和宇航级FPGA 采用Flash或者熔丝与反熔丝工艺的查找表结构。
通过烧写文件改变查找表内容的方法来实现对FPGA的重复配置。
根据数字电路的基本知识可以知道,对于一个n输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在2n种结果。
所以如果事先将相应的结果存放于一个存贮单元,就相当于实现了与非门电路的功能。
FPGA的原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。
查找表的原理与结构查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。
目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的的RAM。
当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。
下面给出一个四输入与非门电路的例子来说明LUT实现逻辑功能的原理。
表给出一个使用LUT实现四输入与门电路的真值表。
从中可以看到,LUT具有和逻辑电路相同的功能。
实际上,LUT具有更快的执行速度和更大的规模。
3.1.2查找表结构的FPGA逻辑实现原理。
第1章 FPGA开发简介-Altera FPGA系统设计实用教程(第2版)-李莉-清华大学出版社
下载电缆
ByteBlaster II
USB-Blaster
Ethernet Blaster
(1)完全符合设计人员的设计思路,从功能描述开 始,到物理实现的完成。
(2)设计更加灵活。 (3)设计易于移植和更改。 (4)易于进行大规模、复杂电路的设计实现。 (5)设计周期缩短。
1.4.2 典型FPGA开发流程
电路功能设计
设计输入
编译 综合
功能仿真
FPGA适配(布局布线)
时序仿真
配置
硬件环境要求高,软件投资大,通用性强,不面向具体 公司的PLD器件。
PLD制造厂商开发的专用软件工具则具有硬件环境要求 低,软件投资小的特点,并且很多PLD厂商的开发工具 是免费提供的,因此其市场占有率非常大;缺点是只针 对本公司的PLD器件,有一定的局限性。
1.4 基于FPGA的开发流程
1.4.1 FPGA设计方法概论 FPGA的设计方法属于自上而下的设计方法
第1章 FPGA开发简介
1.1 可编程逻辑器件概述 1.2 FPGA芯片 1.3 FPGA开发工具 1.4 基于FPGA的开发流程
1.1 可编程逻辑器件概述
可编程逻辑器件(Programmable Logic Device,简
称PLD)
可编程逻辑器件
PLD
低密度 PLD
高密度 PLD
PROM
PLA
PAL
GAL
EPLD CPLD FPGA
70年代初
70年代末 80年代初
80年代中期
80年代中期 及以后
图1-1 PLD器件的发展流程
低密度PLD的基本结构参考图
输入项 乘积项
或项
输
输
七天玩转Altera之基础篇
通向FPGA之路---七天玩转Altera之基础篇V1.0目录:1. Altera基础 (4)1.1 典型设计流程 (4)1.2 QuartusII 编译流程 (4)1.3 管理QuartusII工程 (5)1.4 设计输入 (7)1.5 优化向导 (9)2. Assignment Editor (11)2.1 介绍 (11)2.2 优化实例 (14)2.2.1 PCI I/O及乘法器 (14)2.2.2 弱上拉 (15)2.2.3 设置输出管脚驱动电流 (16)3. I/O设计 (20)3.1 I/O系统 (20)3.1.1 早期I/O规划 (20)3.1.2 引脚分配 (27)3.1.3 验证并使能I/O设置 (37)3.2 高级I/O系统 (40)3.2.1 信号完整性仿真和分析需求 (41)3.2.2 SSN分析和减小措施 (41)3.2.3 QuartusII软件中的三类分析 (50)3.2.4 第三类:IBIS & HSPICE模型 (60)4. Netlist Viewers (68)4.1 界面介绍 (71)4.1.1 图标 (71)4.1.2 视图 (75)4.2 浏览 (76)4.3 过滤 (80)4.3.1 类型 (81)4.3.2 层次化过滤 (82)4.4 Tooltips (83)5. MegaWizard Plug-In Manager(暂无) (85)前言:网上关于Altera的教程很多,可谓浩如烟海。
大体来说有两类:一是,step by step的指导如何操作Quartus软件,这类方法的优点是上手快,但却有知其然不知其所以然之惑;二是,从一个很高的起点分析一些具体问题,优点是有深度,但也把大部分初学者拒之门外,不知路在何方。
本系列教程的宗旨是在力求全面介绍Altera及其QuartusII软件原理的基础上,对何如使用Altera FPGA进行基础设计、时序分析、验证、优化四大方面进行讲解。
FPGA入门实验教程 适合初学者
艾米电子工作室—让开发变得更简单FPGA 入门系列实验教程——点亮LED1. 实验任务点亮发光二极管。
通过这个实验,熟悉并掌握CPLD/FPGA 开发软件QuartusII 的使用方法和开发流程以及Verilog HDL的编程方法。
2. 实验环境硬件实验环境为艾米电子工作室型号EP2C5T144 开发套件。
软件实验环境为Quartus II 8.1 开发软件。
3. 实验原理FPGA 器件同单片机一样,为用户提供了许多灵活的独立的输入/输出I/O 口(单元)。
FPGA 每个I/O 口可以配置为输入、输出、双向、集电极开路和三态门等各种组态。
作为输出口时,FPGA 的I/O 口可以吸收最大为24mA 的电流,可以直接驱动发光二极管LED 等器件。
图1. 1 为8 个发光二极管硬件原理图,本原理图对应艾米电子工作室型号为EP2C5T144 FPGA 开发板及接口板。
通过原理图可知如果要点亮这八个LED,所以只要正确分配并锁定引脚后,在相应的引脚上输出相应高电平“1”,就可实现点亮该发光二极管的功能。
本工作室开发板均采用输出“1”点亮LED 的模式,以后就不再另作说明。
图1. 1 发光二极管LED 硬件原理图艾米电子工作室—让开发变得更简单FPGA 入门系列实验教程——LED 闪烁灯1. 实验任务让实验板上的8 个LED 周期性的闪烁。
通过这个实验,熟悉并掌握采用计数与判断的方式来实现分频的Verilog HDL 的编程方法以及Quartus II 软件的使用方法和开发流程。
2. 实验环境硬件实验环境为艾米电子工作室型号EP2C8Q208 增强版开发套件。
软件实验环境为Quartus II 8.1 开发软件。
3. 实验原理艾米电子工作室开发套件板载50MHz 的时钟源,假如我们直接把它输入到发光二极管LED,由于人眼的延迟性,我们将无法看到LED 闪烁,认为它一直亮着。
如果我们期望看到闪烁灯,就需要将时钟源的频率降低后再输出。
Altera CPLDFPGA轻松入门与开发实例第4章 (4)
2 时序分析
(5)数据要求信号---保持时间:使新信号 到达目的寄存器D输入的最早的时间
2 时序分析
(6)Slack:用于衡量设计满足或者不满足 时序约束的程度,为了使电路能够正常工 作,Slack的计算结必须是正的。
建立Slack = 建立需要的时间 — 数据到达时间 保持Slack = 数据到达时间 — 保持需要的时间
2 时序分析
(1)启动沿(Launch)和锁存沿(Latch)
2 时序分析
(2)数据到达时间:时钟启动沿使数据从 源寄存器到达目的寄存器D输入引脚的时 间
2 时序分析
(3)时钟到达时间:时钟到达寄存器时钟 引脚的时间
2 时序分析
(4)数据要求信号---建立时间:使信号由 源寄存器发送必须到达目的寄存器D输入 的时间,以便正确采样。
2 PLD设计流程
PLD的开发流程一般包括设计定义、 设计输入、功能仿真、综合优化、综合后 仿真、实现、布线后仿真、板级仿真以及 芯片编程与调试等主要步骤 。
2 布局布线
4.4 仿真及时序分析 4.4.1 仿真 4.4.2 时序分析
Page 17
机பைடு நூலகம்工业出版社
2015-1-6
1 仿真
新的Quartus II软件不再提供自带的仿真器( Simulator),因此要使用EDA 仿真工具对设计进 行功能与时序仿真。 使用 NativeLink 功能,可以让Quartus II 软件编译设计,生成相应的输出文件,然后使用 EDA 仿真工具自动进行仿真。当然也可以在编译 之前或编译之后,在Quartus II 软件中手动运行 EDA 仿真工具进行功能仿真或时序仿真。功能仿 真可以在设计流程中的任何阶段进行。时序仿真 则必须在编译之后才能进行。
FPGA入门教程_ALTERA_Quartus_II__和_XILINX___ISE_CPLD入门教程_教案_VHDL_Verilog_例程讲解
2011-8
FPGA介绍
何为FPGA?
FPGA(Field-Programmable Gate Array),即现 场可编程门阵列,它是在PAL、GAL、CPLD等可编 程器件的基础上进一步发展的产物。它是作为专用 集成电路(ASIC)领域中的一种半定制电路而出现 的,既解决了定制电路的不足,又克服了原有可编 程器件门电路数有限的缺点
Verilog HDL 的抽象级别
语言本身提供了各种层次抽象的表述,可以用详细 程度有很大差别的的多层次模块组合来描述一个 电路系统。 行为级:技术指标和算法的Verilog描述 RTL关级:具体的晶体管物理器件的描述
Verilog HDL 的抽象级别
设计复杂数字系统的工具 和手段
两种硬件描述语言 : Verilog VHDL
有哪几种硬件描述语言? 各有什么特点?
Verilog HDL - 较多的第三方工具的支持 - 语法结构比VHDL简单 - 学习起来比VHDL容易 - 仿真工具比较好使 - 测试激励模块容易编写
Verilog HDL 的发展历史
两者建模能力的比较
行为级 的抽象
系统级
SystemVerilo g
算法级
VHDL Verilog
寄存器传输级
逻辑门级 VITAL
开关电路级
VerilogHDL 与 VHDL 建 模 能 力 的 比 较
Verilog HDL有什么用处?
在各种抽象层次上描述数字电路
测试各种层次数字电路的行为 设计出正确有效的复杂电路结构
数字信号处理系统的实现
非实时系统: 通用的计算机和利用通用计算机改装的设备,主要 工作量是编写 “C” 程序。输入/输出数据大多为文 本 。 实时系统: 信号处理专用的微处理器为核心的设备,主要工作 量是编写汇编程序。输入/输出数据大多为数据流, 直接用于控制 。
Altera FPGA 配置模式
FPGA配置模式时间:2011-09-12 23:15:16 来源:作者:FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
如何实现快速的时序收敛、降低功耗和成本、优化时钟管理并降低FPGA与PCB并行设计的复杂性等问题,一直是采用FPGA的系统设计工程师需要考虑的关键问题。
如今,随着FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向发展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA前所未有的性能和能力水平而带来的新的设计挑战。
在很多项目设计中采用Altera 公司基于SRAM架构Cyclone系列器件。
Cyclone器件与其他FPGA器件一样是基于门阵列方式为用户提供可编程资源的,其内部逻辑结构的形成是由配置数据决定的。
这些配置数据可通过多种模式加载到FPGA内部的SRAM中,由于SRAM的易失性,每次上电时,都必须对FPGA进行重新配置。
1 Cyclone FPGA 配置模式Cyclone系列FPGA器件配置方案主要有三种,包括使用低成本配置芯片的主动串行(AS)配置、被动串行(PS)配置以及基于JTAG配置,实际应用时可以使用其中的一种方案配置Cyclone系列FPGA器件,来实现用户编程所要实现的功能。
Cyclone系列FPGA器件是用SRAM单元配置数据的。
由于SRAM掉电后容易丢失数据,配置数据必须即时地下载到上电的Cyclone器件中。
不同的配置模式可采用不同的专用配置芯片或数据源这三种配置模式是由Cyclone器件的模式选择引脚MSEL1和MSEL0的高低电平来决定的,如果你的实际应用只要求单一的配置模式,可以把模式选择引脚连接到VCC端或接地端在切换引脚的过程中,器件的运行状态不会被影响。
FPGA入门及QuartusII使用教程(内部资料)
FPGA入门及Quartus II使用教程FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在可编程阵列逻辑PAL(Programmable Array Logic)、门阵列逻辑GAL(Gate Array Logic)等可编程器件的基础上上进一步发展的产物。
可以这样讲,ASIC(Application Specific Integrated Circuit )内部的所有资源,是用积木堆积起来的小房子,可以是一个欧美风情的房子,还可以是一个北京四合院…….而FPGA内部就可以说是一个个小积木,也就是内部有大量的资源提供给我们,根据我们的需求进行内部的设计。
并且可以通过软件仿真,我们可以事先验证设计的正确性。
第一章FPGA的基本开发流程下面我们基于Altera 公司的QuantusII 软件来说明FPGA 的开发流程。
下图是一个典型的基于Quartus II的FPGA开发整体流程框图。
1、建立工程师每个开发过程的开始,Quartus II以工程为单位对设计过程进行管理。
2、建立顶层图。
可以这样理解,顶层图是一个容器,将整个工程的各个模块包容在里边,编译的时候就将这些模块整合在一起。
也可以理解为它是一个大元件,比如一个单片机,内部包含各个模块,编译的时候就是生成一个这样的大元件。
3、采用ALTERA公司提供的LPM功能模块。
Quartus软件环境包含了大量的常用功能模块,比如计数器、累加器、比较器等等。
4、自己建立模块。
由于有些设计中现有的模块功能不能满足具体设计的要求,那就只能自己设计。
使用硬件描述语言,当然也可以用原理图的输入方法,可以独立的把它们当成一个工程来设计,并且生成一个模块符号(Symbol),类似于那些LPM功能模块。
这里可以理解为,如果我们需求的滤波器,没有现成的合适的,那我们可以通过LC自己来搭建一个滤波器。
5、将顶层图的各个功能模块连线起来。
Altera-FPGA详解(doc 23页)
Altera中文资料FPGA在软件无线电中的应用介绍软件无线电(SDR)是具有可重配置硬件平台的无线设备,可以跨多种通信标准。
它们因为更低的成本、更大的灵活性和更高的性能,迅速称为军事、公共安全和商用无线领域的事实标准。
SDR成为商用流行的主要原因之一是它能够对多种波形进行基带处理和数字中频(IF)处理。
IF处理将数字信号处理的领域从基带扩展到RF。
支持基带和中频处理的能力增加了系统灵活性,同时减小了制造成本。
基带处理无线标准不断地发展,通过先进的基带处理技术如自适应调制编码、空时编码(STC)、波束赋形和多入多出(MIMO)天线技术,支持更高的数据速率。
基带信号处理器件需要巨大的处理带宽,以支持这些技术中大计算量的算法。
例如,美国军事联合战术无线系统(JTRS)定义了军事无线中20多种不同的无线波形。
一些更复杂的波形所需的计算能力在标准处理器上是每秒数百万条指令(MIPS),或者如果在FPGA 实现是数千个逻辑单元。
协处理器特性SDR基带处理通常需要处理器和FPGA。
在这类应用中,处理器处理系统控制和配置功能,而FPGA实现大计算量的信号处理数据通道和控制,让系统延迟最小。
当需要从一种标准切换至另一种标准时,处理器能够动态地在软件的主要部分间切换,而FPGA能够根据需要完全重新配置,实现特定标准的数据通道。
FPGA可以作为协处理器同DSP和通用处理相连,这样具有更高的系统性能和更低的系统成本。
自由地选择在哪实现基带处理算法为实现SDR算法提供了另一种方式的灵活性。
基带部件也需要足够灵活让所需的SDR功能支持在同一种标准增强版本之间的移植,并能够支持完全不同的标准。
可编程逻辑结合软核处理器和IP,具有了提供在现场远程升级的能力。
图1 是一个框图,其中FPGA能够通过IP功能如Turbo编码器、Reed-Solomon编码器、符号交织器、符号映射器和IFFT,很容易地重配置支持WCDMA/HSPDA或802.16a标准的基带发送功能。
FPGA入门资料
FPGA的学习流程FPGA作为一个技术含量高的器件,让许多学单片机的人望而生畏,也有许多的初学者很关心FPGA到底该怎样来学,下面发表一下本人的浅见,不对的地方还请各位大侠指点指点.我认为学习FPGA可分为以下三个步骤:第一步:学好硬件描述语言。
以夏宇闻那本书为教材,一般都要2到3个星期,有C语言基础入门更快,还要做一些练习,巩固语法。
第二步:针对一款硬件来学习,这一步非常重要,一般需要1~3个月,这个过程遇到的问题往往是最多的,因此要有恒心与耐力,遇到问题可以找老师或者上论坛求教.第三步:融会贯通。
有了以上的基础,这时候就要看一个人的知识背景了,把你的专业与FPGA相结合,如果你数学比较好,就可以去做算法如果你通信方面比较好,就可以做通信方面的东西,如果你高频比较好,就可以做射频方面的东西,等等。
FPGA学习、发展方向自从接触和认识FPGA以后,自由电子科技坚定的选择了FPGA器件作为我们创新和实现自身价值的承载平台,对此,我想从以下几个方面介绍一下。
1. 对FPGA的认识,为什么要选择FPGA现在的FPGA器件在电子行业中是一颗明星,这是一种正在不断采用新的半导体制造工艺,逻辑容量不断增加,应用领域不断拓展,器件成本不断下降的器件,FPGA厂商激烈的竞争使开发软件和方法不断的进步,是一个正在盘古开天时期的事物。
很多人对此的解释是FPGA拥有很大的灵活性,在半导体制造工艺的NRE不断增加、应用需求不断变更、品种要求多而数量要求少的现实情况下,FPGA是一个最佳选择,这正是现在FPGA厂商们宣传时耳目能详的陈词。
我们认为,FPGA在电子产业和信息产业上的地位并不是这么简单。
实际上如果通过我们对计算机发展的历史、软件发展历史的认识,可以推断FPGA器件是一方向性的创新,几千年以前我国的祖先们感悟了蕴涵在简单的阴、阳中的事理有了太极,阴阳可以生万物。
一百多年前的布尔代数使我们从数学上有了坚实的基础,从机械计算机到电子计算机的演变中,我们得到了冯.诺依曼型的程序存储类的计算机体系,并在当代发展为及至,极大的推动了人类社会的前进。
步步详解之第1节----ALTERAFPGA关于PLL的使用,帮你用光所有PLL
步步详解之第1节----ALTERAFPGA关于PLL的使⽤,帮你⽤光所有PLL1. PLL1. 创建⼯程创建新⼯程引导说明,点击next设置⼯程路径,不能有中⽂;设置⼯程名称,点击next点击next选择器件库,这⾥选择cyclone IV E,器件型号为EP4C6EE22C8,该器件有两个PLL;点击next1. 调⽤PLL IP核调⽤PLL IP核选择创建新的IP核选择I/O选择ALTPLL,器件类型、语⾔、设置IP的名称和⽂件路径1. 参数设置点击yes,成⽣成IP核⽂件,如下:1. 例化调⽤IP核⾸先创建⼀个top⽂件,⽤来调⽤pll,由于该器件包含有两个PLL,测试这两个PLL的功能,可以采⽤级联起来的⽅式:第⼀个PLL的时钟输出,作为第⼆个PLL的时钟输⼊,最后将第⼆个PLL的时钟输出作为LED灯模块的时钟输⼊;如果有很多个PLL,测试的时候也可以采⽤这种⽅式进⾏级联起来,有多少个PLL,就级联成多少级。
同时将两个PLL的锁定指⽰作为控制信号,锁定指⽰为1时表⽰锁定,为0时表⽰失锁,所以可以⽤这两个锁定信号来控制led灯的状态,当两个锁相环有⼀个为失锁时,LED灯灭,只有当两个都是锁定时,LED灯才能形成流⽔闪烁。
1. 综合&布局布线综合&布局布线之后,可以看到PLL的使⽤率达到100%。
选择IO约束⽂件,⽤来约束IO的位置,⼤西⽠开发板已经提供完整的约束⽂件,直接调⽤即可:运⾏IO约束⽂件:再重新布局布线⼀次:1. 查看布局布线后的结果2. PLL资源的使⽤情况查看每个PLL的使⽤情况,这是每个⼯程综合&布局布线之后必须确认的步骤:3. PLL在芯⽚上的布局情况要更好的了解⼯程最后综合&布局布线之后的电路,必须查看布局布线的结果,这⾥采⽤由原理图定位到chip planner的⽅式,查看电路;(如需转载或使⽤,请注明作者信息和出处,谢谢!)。
Altera资料_玩转FPGA
玩转FPGA作者信息:Dylan Wang(王欣) is the Senior Applications Engineer from Altera focus on the DSP field. After graduated from Fudan University, he started to work as the ASIC designer, and gained several years of design experience. Then went to the State University of New York for the further research work, major based on the DSP algorithm design and implement.He joined Altera in 2005, focused on the DSP field. As the applications engineer, provides the technical support to the customer on web. With the experience on both of algorithm and implementation, Dylan Wang is familiar with the advanced DSP design solution to implement the algorithm into hardware.原文分为多个部分1 前言一直以来都想写点什么,关于FPGA设计,因为有点不太服气。
为什么同样是设计,有些人可以好像玩一样的摆弄,photoshop,很时尚,很跩。
有些人可以用所谓的广告创意玩弄人们的智商。
而硬件工程师则一律的被人以为呆板没有创意。
我是说,为什么我们不可以享受设计本身的乐趣,发挥我们自己的创意,为什么就不可以很随心所欲的摆弄我们手里的那些玩具到处炫耀,让美女们看着我们的眼睛都发光?难道一定就是那些冷冰冰的Datasheet, 死板的Schedule, 老板的猪肝脸?所以我写这些东西的目的,就是想让大家可以和我一起起来,玩转FPGA。
通向FPGA之路---七天玩转Altera之基础篇V1.00
通向FPGA之路---七天玩转Altera之基础篇V1.00通向FPGA之路---七天玩转Altera之基础篇V1.0⽬录:1. Altera基础 (4)1.1 典型设计流程 (4)1.2 QuartusII 编译流程 (4)1.3 管理QuartusII⼯程 (5)1.4 设计输⼊ (7)1.5 优化向导 (9)2. Assignment Editor (11)2.1 介绍 (11)2.2 优化实例 (14)2.2.1 PCI I/O及乘法器 (14)2.2.2 弱上拉 (15)2.2.3 设置输出管脚驱动电流 (16)3. I/O设计 (20)3.1 I/O系统 (20)3.1.1 早期I/O规划 (20)3.1.2 引脚分配 (27)3.1.3 验证并使能I/O设置 (37)3.2 ⾼级I/O系统 (40)3.2.1 信号完整性仿真和分析需求 (41)3.2.2 SSN分析和减⼩措施 (41)3.2.3 QuartusII软件中的三类分析 (50)3.2.4 第三类:IBIS & HSPICE模型 (60)4. Netlist Viewers (68)4.1 界⾯介绍 (71)4.1.1 图标 (71)4.1.2 视图 (75)4.2 浏览 (76)4.3 过滤 (80)4.3.1 类型 (81)4.3.2 层次化过滤 (82)4.4 Tooltips (83)5. MegaWizard Plug-In Manager(暂⽆) (85)前⾔:⽹上关于Altera的教程很多,可谓浩如烟海。
⼤体来说有两类:⼀是,step by step的指导如何操作Quartus软件,这类⽅法的优点是上⼿快,但却有知其然不知其所以然之惑;⼆是,从⼀个很⾼的起点分析⼀些具体问题,优点是有深度,但也把⼤部分初学者拒之门外,不知路在何⽅。
本系列教程的宗旨是在⼒求全⾯介绍Altera及其QuartusII软件原理的基础上,对何如使⽤Altera FPGA进⾏基础设计、时序分析、验证、优化四⼤⽅⾯进⾏讲解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通向FPGA之路---七天玩转Altera之基础篇V1.0目录:1. Altera基础 (4)1.1 典型设计流程 (4)1.2 QuartusII 编译流程 (4)1.3 管理QuartusII工程 (5)1.4 设计输入 (7)1.5 优化向导 (9)2. Assignment Editor (11)2.1 介绍 (11)2.2 优化实例 (14)2.2.1 PCI I/O及乘法器 (14)2.2.2 弱上拉 (15)2.2.3 设置输出管脚驱动电流 (16)3. I/O设计 (20)3.1 I/O系统 (20)3.1.1 早期I/O规划 (20)3.1.2 引脚分配 (27)3.1.3 验证并使能I/O设置 (37)3.2 高级I/O系统 (40)3.2.1 信号完整性仿真和分析需求 (41)3.2.2 SSN分析和减小措施 (41)3.2.3 QuartusII软件中的三类分析 (50)3.2.4 第三类:IBIS & HSPICE模型 (60)4. Netlist Viewers (68)4.1 界面介绍 (71)4.1.1 图标 (71)4.1.2 视图 (75)4.2 浏览 (76)4.3 过滤 (80)4.3.1 类型 (81)4.3.2 层次化过滤 (82)4.4 Tooltips (83)5. MegaWizard Plug-In Manager(暂无) (85)前言:网上关于Altera的教程很多,可谓浩如烟海。
大体来说有两类:一是,step by step的指导如何操作Quartus软件,这类方法的优点是上手快,但却有知其然不知其所以然之惑;二是,从一个很高的起点分析一些具体问题,优点是有深度,但也把大部分初学者拒之门外,不知路在何方。
本系列教程的宗旨是在力求全面介绍Altera及其QuartusII软件原理的基础上,对何如使用Altera FPGA进行基础设计、时序分析、验证、优化四大方面进行讲解。
本篇为基础篇,推荐用一天时间掌握。
还有三大类各需两天,一共七天。
本教程大部分内容参考翻译altera官方handbook和对应的paper等资料,也有部分章节系热心网友所创,笔者基本原文引用,只为阅读流畅性做了少许改动,如造成原作者的不适,可联系笔者删除之。
后续教程视读者反映情况进行适当调整和发布。
2011.3.18 上海foreveryoung交流QQ群:123035845/91968656笔者QQ:2984672041. Altera基础1.1 典型设计流程1.2 QuartusII 编译流程下图为典型的设计流程。
“flat”编译流程从总体上对设计进行编译(一个后综合、一个后适配网表),能进行全局优化。
除了“flat”编译流程,还可以选择渐进式流程(新工程的默认选择):用户分配设计分区并单独处理每个分区(每一分区的后综合和后适配网表分开),合并结果形成一个完整设计;重新使用以前成功编译的后综合或后适配网表,或者从另一工程导入。
具体特性和设计方法参照《Altera优化篇》。
1.3 管理QuartusII工程工程管理有三个方面:(1)工程存档;(2)工程复制;(3)修订。
1. 工程存档工程存档建立两个文件:(1)压缩的QuartusII档案文件(.QAR)--包括设计文件、QPF文件和QSF文件、数据库的选项(工程路径中的db和incremental_db 文件夹)、本地QDF文件(以便存档);(2)存档活动日志(.QARLOG)。
路径为Project -> Archive Project。
在新路径中复制并保存完全相同的工程副本,包括工程文件(.QPF)、设计文件、设置文件。
但是不复制用户库和外部参考文件,也不建立新的QDF、只复制QDF(如果有)。
可用于“在编辑设计前复制工作”的情况。
路径为Project -> Copy Project。
3. 修订修订功能使用新的约束设置或者编译选项,而不会丢失以前的工作。
比如,设计人员可以在同一设计文件上使用不同的选项(不同的目标器件、综合、适配器设置等)。
可以使用这个特性比较不同修订的结果。
软件会生成修订专用工程文件,并存储在db路径中:(1)复制并更新当前版本文件(不需要重新编译);(2)当建立并编译新版本后,产生新文件。
我们可以按下图所示在不同的修订之间来回切换,以比较最好的设计效果。
除此之外,点击Revisions界面的Compare,我们可以对以前的多个修订进行比较,如下图所示的对比修订。
1.4 设计输入QuartusII支持多种输入:(1)文本编辑器,编辑V erilog等;(2)原理图编辑器;(3)状态机编辑器;(4)存储器编辑器,HEX或MIF文件。
(1)状态机编辑器(2)存储器编辑器存储器编辑器用来建立或者编辑Intel HEX(.HEX)或者Altera专用(.MIF)格式的存储器初始化文件。
对于设计输入,在设计“上电”时,用于初始化存储器模块(例如,RAM、ROM):在器件编程期间,初始化文件数据发送至器件;初始化在器件复位编程后,在设计复位前。
对于仿真,在仿真前或者断点之后,用于初始化存储器模块。
下图为建立存储器初始化文件的步骤。
可以右键列表,然后让软件按一定规律,比如递增或递减,来快速填充表格。
编辑好存储器初始化文件,可以在设计中导入,如下图所示。
1.5 优化向导2. Assignment EditorAssignment Editor是一个用于建立、编辑节点(node)和实体(entity-level)的接口,能用来做Local Constraint setting(不是全局设置),这样的约束可以比较精确且效果好。
当你不用Assignment Editor而用其他方式编辑一个assignment时,Assignment Editor会自动更新。
2.1 介绍Assignment Editor提供表单分配输入和显示,支持从剪贴板复制和粘贴。
(1)建立分配:交叉探测(2)建立分配:Assignment Editor(3)节点发现器(4)分配(时间)组打开Assignments -> Assignment (Time) Groups。
除了如上图所示,也可从Assignment Editor的“From”或者“To”栏中找到新建分配组。
(5)Assignment Editor动态检查(6)导出CSV文件分配如果习惯于在表格中对分配进行编辑,例如Excel,那么可以将分配导出为.csv文件(File –> Export)。
将.csv文件导入到Excel中再编辑分配,然后使用Assignments菜单中的Import Assignments命令,将分配导回到Quartus II软件中。
2.2 优化实例在指定的设计模块上,需要考虑综合时应重点关注速度、面积还是对这两方面综合考虑。
可以采用工程全局设置来均衡优化整个设计,也可以使用Assignment Editor 来设置约束关键设计模块,针对速度或者面积进行优化,其优先权高于工程全局设置,因为指定节点或者实体的分配优先权总是高于工程全局设置。
当利用Assignment Editor输入或保存约束时,QSF文件(分配最终被存储到该文件中)不会自动更新。
只有在保存或编译后,QSF文件才会被更新。
可以通过Tools –> Options -> General -> Processing菜单中的选项更改这种方式,即立即更新分配。
但这会稍微影响软件的性能,因为软件访问QSF文件的频率增大。
2.2.1 PCI I/O及乘法器PCI I/O分配能够触发使能很多Altera器件I/O引脚上的PCI钳位二极管,实现与PCI总线的接口。
这一分配只能是ON或者OFF。
这样用于使能器件的硬件功能的分配类型有很多。
比如使能并设置片内匹配电阻的分配,实现DDR存储器接口等高速接口。
又如,如果设计人员希望一个乘法器不用嵌入式乘法器模块,而用LEs来组合,可按下图所示设置。
前后结果比较如下:2.2.2 弱上拉弱上拉,推挽,开漏是3种输出方式。
弱上拉一般用在和外围器件的通讯上,比如I2C总线等,但不能用于需要驱动能力强的上拉应用中。
当设置为弱上拉输出方式,此时各个I/O口与VDD之间约有100K电阻。
如输出逻辑电平为1,则输出端有接近VDD的电平出现;如输出为0,则弱上拉电路自动关闭。
当输出端处于模拟量输入状态时,弱上拉电路也会自动关闭。
当设置为漏及开路,应外接上拉电阻(10K),使I/O口输出为1时,有3.5V 以上的高电平输出。
当设置为推挽输出,至少可驱动20多个LS TTL门电路。
可直接驱动外设接口,无须外加驱动总线的芯片(如74LS244,74LS245等),其总线驱动能力比C8051大大加强,而且灵活。
打开Assignment Editor,在弹出的界面里选择I/O Features,选择需要加弱上拉的管脚,使能Weak Pull-Up Resistor选项。
重新综合布局布线生成新的下载文件即可生效。
本方法仅适用于管脚加弱上拉电阻,Altera没有下拉电阻的设置。
除了使用Assignment Editor,也可以在Pin Planner中设置。
具体过程如下:(1)在菜单 Assignments 中选择 Pin Planner,在弹出的Pin Planner界面的All Pins 区域里点击鼠标右键,找到 Customize Columns。
(2)在弹出的Customize Columns对话框的左列表框选择Weak Pull-Up Resistor,再点击,把Weak Pull-Up Resistor添加到右列表框,这样在Pin Planner的All Pins区域里就有一列Weak Pull-Up Resistor的设置项。
标左键,就会弹出一个Off/On的选项,选上On就可以了。
(4)重新综合布局布线生成新的下载文件即可生效。
2.2.3 设置输出管脚驱动电流(1)Chip Editor实现打开经过编译后的工程的Fitter报告,点击Output Pins,右窗口出现OutputPin的列表。
在Output Pins列表中用鼠标左键选中要加驱动电流的输出管脚。
点右键选择Locate/Locate in Chip Editor,如下图所示。
指定输出管脚的pad会在Chip Editor窗口高亮显示,如下图所示。
左键双击高亮显示指定的pad,进入下图所示Resource Property Editor界面。
选择主菜单View/View Properties,弹出下图所示对话框。
在Properties/Modes 项选择Current Strength,在对应的V alues项选择指定的Output Pin的驱动电流的大小。