文档库 最新最全的文档下载
当前位置:文档库 › FPGA简介

FPGA简介

FPGA简介
FPGA简介

FPGA简介

背景

目前以硬件描述语言(Verilog 或VHDL)所完成的电路设计,可以经过简

单的综合与布局,快速的烧录至FPGA 上进行测试,是现代IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。

系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。

FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPG A。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。

CPLD与FPGA的关系

早在1980年代中期,FPGA已经在PLD设备中扎根。CPLD和FPGA包括了一些相对大数量的可以编辑逻辑单元。CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。

CPLD和FPGA的主要区别是他们的系统结构。CPLD是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄

存器。这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。

CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。一个因此有关的重要区别是很多新的FPGA支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA可以让设备的一部分重新编辑而其他部分继续正常运行。

[编辑本段]

FPGA工作原理

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Ou tput Block)和内部连线(Interconnect)三个部分。

[编辑本段]

FPGA的基本特点

1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。

2)FPGA可做其它全定制或半定制ASIC电路的中试样片。

3)FPGA内部有丰富的触发器和I/O引脚。

4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。

FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。

加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FP GA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA 能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、P ROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。

[编辑本段]

FPGA配置模式

FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPG A;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。

如何实现快速的时序收敛、降低功耗和成本、优化时钟管理并降低FPGA与PC B并行设计的复杂性等问题,一直是采用FPGA的系统设计工程师需要考虑的关键问题。如今,随着FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向发展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA前所未有的性能和能力水平而带来的新的设计挑战。

例如,领先FPGA厂商Xilinx最近推出的Virtex-5系列采用65nm工艺,可提供高达33万个逻辑单元、1,200个I/O和大量硬IP块。超大容量和密度使复杂的布线

变得更加不可预测,由此带来更严重的时序收敛问题。此外,针对不同应用而集成的更多数量的逻辑功能、DSP、嵌入式处理和接口模块,也让时钟管理和电压分配问题变得更加困难。

幸运地是,FPGA厂商、EDA工具供应商正在通力合作解决65nm FPGA独特的设计挑战。不久以前,Synplicity与Xilinx宣布成立超大容量时序收敛联合工作小组,旨在最大程度帮助地系统设计工程师以更快、更高效的方式应用65nm FPGA器件。设计软件供应商Magma推出的综合工具Blast FPGA能帮助建立优化的布局,加快时序的收敛。

最近FPGA的配置方式已经多元化!

[编辑本段]

FPGA主要生产厂商

1、Altera

2、Xilinx

3、Actel

4、Lattice

其中Altera和Xilinx主要生产一般用途FPGA,其主要产品采用RAM工艺。Ac tel主要提供非易失性FPGA,产品主要基于反熔丝工艺和FLASH工艺。

[编辑本段]

FPGA设计的注意事项

不管你是一名逻辑设计师、硬件工程师或系统工程师,甚或拥有所有这些头衔,只要你在任何一种高速和多协议的复杂系统中使用了FPGA,你就很可能需要努力解决好器件配置、电源管理、IP集成、信号完整性和其他的一些关键设计问题。不过,你不必独自面对这些挑战,因为在当前业内领先的FPGA公司里工作的应用工程师每天都会面对这些问题,而且他们已经提出了一些将令你的设计工作变得更轻松的设计指导原则和解决方案。

[编辑本段]

I/O信号分配

可提供最多的多功能引脚、I/O标准、端接方案和差分对的FPGA在信号分配方面也具有最复杂的设计指导原则。尽管Altera的FPGA器件没有设计指导原则(因为它实现起来比较容易),但赛灵思的FPGA设计指导原则却很复杂。但不管是哪一种情况,在为I/O引脚分配信号时,都有一些需要牢记的共同步骤:

1. 使用一个电子数据表列出所有计划的信号分配,以及它们的重要属性,例如I /O标准、电压、需要的端接方法和相关的时钟。

2. 检查制造商的块/区域兼容性准则。

3. 考虑使用第二个电子数据表制订FPGA的布局,以确定哪些管脚是通用的、哪些是专用的、哪些支持差分信号对和全局及局部时钟、哪些需要参考电压。

4. 利用以上两个电子数据表的信息和区域兼容性准则,先分配受限制程度最大的信号到引脚上,最后分配受限制最小的。例如,你可能需要先分配串行总线和时钟信号,因为它们通常只分配到一些特定引脚。

5. 按照受限制程度重新分配信号总线。在这个阶段,可能需要仔细权衡同时开关输出(SSO)和不兼容I/O标准等设计问题,尤其是当你具有很多个高速输出或使用了好几个不同的I/O标准时。如果你的设计需要局部/区域时钟,你将可能需要使用高速总线附近的管脚,最好提前记住这个要求,以免最后无法为其安排最合适的引脚。如果某个特定块所选择的I/O标准需要参考电压信号,记住先不要分配这些引脚。差分信号的分配始终要先于单端信号。如果某个FPGA提供了片内端接,那么它也可能适用于其他兼容性规则。

6. 在合适的地方分配剩余的信号。

在这个阶段,考虑写一个只包含端口分配的HDL文件。然后通过使用供应商提供的工具或使用一个文本编辑器手动创建一个限制文件,为I/O标准和SSO等增加必要的支持信息。准备好这些基本文件后,你可以运行布局布线工具来确认是否忽视了一些准则或者做了一个错误的分配。

这将使你在设计的初始阶段就和布局工程师一起工作,共同规划PCB的走线、冗余规划、散热问题和信号完整性。FPGA工具可能可以在这些方面提供帮助,并协助你解决这些问题,因此你必须确保了解你的工具包的功能。

你咨询一位布局专家的时间越晚,你就越有可能需要去处理一些复杂的问题和设计反复,而这些可能可以通过一些前期分析加以避免。一旦你实现了满意的信号分配,你就要用限制文件锁定它们。

-------------------

基于CMOS的设计主要消耗三类切率:内部的(短路)、漏电的(静态的)以及开关的(电容)。当门电路瞬变时,VDD与地之间短路连接消耗内部功率。漏电功耗是CMOS工艺普遍存在的寄生效应引起的。而开关功耗则是自负载电容,放电造成的。开关功耗与短路功耗合在一起称为动态功耗。下面介绍降低静态功耗和动态功耗的设计技巧。

[编辑本段]

降低静态功耗

简介

虽然静态电流与动态电流相比可以忽略不计,然而对电池供电的手持设备就显得十分重要,在设备通电而不工作时更是如此。静态电流的因素众多,包括处于没有完全关断或接通的状态下的I/O以及内部晶体管的工作电流、内部连线的电阻、输入与

三态电驱动器上的拉或下拉电阻。在易失性技术中,保持编程信息也需一定的静态功率。抗熔断是一种非易失性技术,因此信息存储不消耗静态电流。

几种降低静态功耗的设计方法

?驱动输入应有充分的电压电平,因而所有晶体管都是完全通导或关闭的。

?由于I/O线上的上拉或下拉电阻要消耗一定的电流,因此尽量避免使用这些电阻。

?少用驱动电阻或双极晶体管,这些器件需维持一个恒定电流,从而增加了静态电流。

?将时钟引脚按参数表推荐条件连接至低电平。悬空的时钟输入会大大增加静态电流。

?在将设计划分为多个器件时,减少器件间I/O的使用。

eX器件LP方式引脚的使用

Actel eX系列设计了特殊的低功率“休眠”模式。在该引脚驱动至高电平800ns 后,器件进入极低功率待机模式,待机电流小于100μA。在低功率模式下,所有I/O (除时钟输入外)都处于三态,而内核全部断电。由于内核被断电,触发器中存储的信息会丢失,在进入工作模式(在引脚驱动至低平200ms后)时,用户需再次对器件初始化。同样,用户也应关闭所有通过CLKA、CLKB以及HCLK输入的时钟。然而这些时钟并不处于三态,时钟就可进入器件,从而增加功耗,因此在低功率模式下,时钟输入必须处于逻辑0或逻辑1。

有时用户很难阻止时钟进入器件。在此场合,用户可使用与CLKA或CLKA相邻的正常输入引脚并在设计中加进CLKINT。这样,时钟将通过靠近时钟引脚的正常输入进入器件,再通过CLKINT向器件提供时钟资源。

采用这种输入电路后,由于常规I/O是三态的,因此用户不必担心时钟进入器件。当然,增加一级门电路会产生0.6ns的较大时钟延时,幸好这在多数低功率设计中是可以接受的。注意应将与CLKINT缓冲器相关的CLKA或CLKB引脚接地。

此外还要注意,CLKINT只可用作连线时钟,HCLK并不具备将内部走线网连接到HCLK的能力,因而HCLK资源不能被常规输入驱动。换句话说,如果使用LP引脚就不能使用HCLK;使用HCLK时就应在外部截断时钟信号。

[编辑本段]

降低动态功耗

动态功耗是在时钟工作且输入正在开关时的功耗。对CMOS电路,动态功耗基本上确定了总功耗。动态功耗包括几个成分,主要是电容负载充电与放电(内部与I/ O)以及短路电流。多数动态功率是内部或外部电容向器件充、放电消耗的。如果器件驱动多个I/O负载,大量的动态电流构成总功耗的主要部分。

对设计中给定的驱动器,动态功耗由下式计算

p=CL×V 2 DD×f

式中,CL是电容负载,VDD是电源电压,f则是开关频率。总功耗是每个驱动器功耗之总和。

由于VDD是固定的,降低内部功耗就要降低平均逻辑开关频率,减少每个时钟沿处的逻辑开关总数、减少连线网络,特别是高频信号连线网络中的电容值。对低功率设计,需要从系统至工艺的每个设计级别中采取相应预防措施,级别越高,效果越好。

[编辑本段]

FPGA与CPLD的辨别和分类

FPGA与CPLD的辨别和分类主要是根据其结构特点和工作原理。通常的分类方法是:

将以乘积项结构方式构成逻辑行为的器件称为CPLD,如Lattice的ispLSI系列、Xilinx的XC9500系列、Altera的MAX7000S系列和Lattice(原Vantis)的Mach系列等。

将以查表法结构方式构成逻辑行为的器件称为FPGA,如Xilinx的SPARTAN系列、Altera的FLEX10K或ACEX1K系列等。

尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和F PGA结构上的差异,具有各自的特点:

①CPLD更适合完成各种算法和组合逻辑,FP GA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。

②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA

的分段式布线结构决定了其延迟的不可预测性。

③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FP GA可在逻辑门下编程,而CPLD是在逻辑块下编程。

④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。

⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLAS H技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。

⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。

⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。

⑧CPLD保密性好,FPGA保密性差。

⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。

[编辑本段]

FPGA的应用

1.电路设计中FPGA的应用

连接逻辑,控制逻辑是FPGA早期发挥作用比较大的领域也是FPGA应用的基石.事实上在电路设计中应用FPGA的难度还是比较大的这要求开发者要具备相应的硬件知识(电路知识)和软件应用能力(开发工具)这方面的人才总是紧缺的,往往都从事新技术,新产品的开发成功的产品将变成市场主流基础产品供产品设计者应用在不远的将来,通用和专用IP的设计将成为一个热门行业!搞电路设计的前提是必须要具备一定的硬件知识.在这个层面,干重于学,当然,快速入门是很重要的,越好的位子越不等人电路开发是黄金饭碗.

2.产品设计

把相对成熟的技术应用到某些特定领域如通讯,视频,信息处理等等开发出满足行业需要并能被行业客户接受的产品这方面主要是FPGA技术和专业技术的结合问题,另外还有就是与专业客户的界面问题产品设计还包括专业工具类产品及民用产品,前者重点在性能,后者对价格敏感产品设计以实现产品功能为主要目的,FPGA 技术是一个实现手段在这个领域,FPGA因为具备接口,控制,功能IP,内嵌CPU 等特点有条件实现一个构造简单,固化程度高,功能全面的系统产品设计将是FPGA 技术应用最广大的市场,具有极大的爆发性的需求空间产品设计对技术人员的要求比较高,路途也比较漫长不过现在整个行业正处在组建"首发团队"的状态,只要加入,前途光明产品设计是一种职业发展方向定位,不是简单的爱好就能做到的!产品设计领域会造就大量的企业和企业家,是一个近期的发展热点和机遇

3.系统级应用

系统级的应用是FPGA与传统的计算机技术结合,实现一种FPGA版的计算机系统如用Xilinx V-4, V-5系列的FPGA,实现内嵌POWER PC CPU, 然后再配合各种外围功能,实现一个基本环境,在这个平台上跑LINUX等系统这个系统也就支持各种标准外设和功能接口(如图象接口)了这对于快速构成FPGA大型系统来讲是很有帮助的。这种"山寨"味很浓的系统早期优势不一定很明显,类似ARM系统的境况但若能慢慢发挥出FPGA的优势,逐渐实现一些特色系统也是一种发展方向。若在系统级应用中,开发人员不具备系统的扩充开发能力,只是搞搞编程是没什么意义的,当然设备驱动程序的开发是另一种情况,搞系统级应用看似起点高,但不具备深层开发能力,很可能会变成爱好者,就如很多人会做网页但不能称做会编程类似以上是几点个人开发,希望能帮助想学FPGA但很茫然无措的人理一理思路。这是一个不错的行业,有很好的个人成功机会。但也肯定是一个竞争很激烈的行业,关键看的

就是速度和深度当然还有市场适应能力。

[编辑本段]

简介

CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL 和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。

CPLD主要是由可编程逻辑宏单元(MC,Macro Cell)围绕中心的可编程互连矩阵单元组成。其中MC结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。

发展历史及应用领域:

20世纪70年代,最早的可编程逻辑器件--PLD诞生了。其输出结构是可编程的逻辑宏单元,因为它的硬件结构设计可由软件完成(相当于房子盖好后人工设计局部室内结构),因而它的设计比纯硬件的数字电路具有很强的灵活性,但其过于简单的结构也使它们只能实现规模较小的电路。为弥补PLD只能设计小规模电路这一缺陷,20世纪80年代中期,推出了复杂可编程逻辑器件--CPLD。目前应用已深入网络、仪器仪表、汽车电子、数控机床、航天测控设备等方面。

器件特点:

它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用中小规模通用数字集成电路的场合均可应用CPLD器件。CPLD器件已成为电子产品不可缺少的组成部分,它的设计和应用成为电子工程师必备的一种技能。

如何使用:

CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。

这里以抢答器为例讲一下它的设计(装修)过程,即芯片的设计流程。CPLD的工作大部分是在电脑上完成的。打开集成开发软件(Altera公司Max+pluxII)→画原理图、写硬件描述语言(VHDL,Verilog)→编译→给出逻辑电路的输入激励信号,进行仿真,查看逻辑输出结果是否正确→进行管脚输入、输出锁定(7128的64个输入、输出管脚可根据需要设定)→生成代码→通过下载电缆将代码传送并存储在CPLD芯

片中。7128这块芯片各管脚已引出,将数码管、抢答开关、指示灯、蜂鸣器通过导线分别接到芯片板上,通电测试,当抢答开关按下,对应位的指示灯应当亮,答对以后,裁判给加分后,看此时数码显示加分结果是否正确,如发现有问题,可重新修改原理图或硬件描述语言,完善设计。设计好后,如批量生产,可直接复制其他CPLD 芯片,即写入代码即可。如果要对芯片进行其它设计,比如进行交通灯设计,要重新画原理图、或写硬件描述语言,重复以上工作过程,完成设计。这种修改设计相当于将房屋进行了重新装修,这种装修对CPLD来说可进行上万次。

家庭成员:经过几十年的发展,许多公司都开发出了CPLD可编程逻辑器件。比较典型的就是Altera、Lattice、Xilinx世界三大权威公司的产品,这里给出常用芯片:Altera EPM7128S(PLCC84)

Lattice LC4128V(TQFP100)

Xilinx XC95108 (PLCC84)

[编辑本段]

FPGA与CPLD的辨别和分类

FPGA与CPLD的辨别和分类主要是根据其结构特点和工作原理。通常的分类方法是:

将以乘积项结构方式构成逻辑行为的器件称为CPLD,如Lattice的ispLSI系列、Xilinx的XC9500系列、Altera的MAX7000S系列和Lattice(原Vantis)的Mach系列等。

将以查表法结构方式构成逻辑行为的器件称为FPGA,如Xilinx的SPARTAN系列、Altera的FLEX10K或ACEX1K系列等。

尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和F PGA结构上的差异,具有各自的特点:

①CPLD更适合完成各种算法和组合逻辑,FP GA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。

②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA

的分段式布线结构决定了其延迟的不可预测性。

③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FP GA可在逻辑门下编程,而CPLD是在逻辑块下编程。

④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。

⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLAS H技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。

⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。

⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。

⑧CPLD保密性好,FPGA保密性差。

⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。

FPGA开发板

FPGA开发板 FPGA开发板ALTERA FPGA是世界上十几家生产CPLD/FPGA的公司中最大的可编程逻辑器件供应商之一,生产的FPGA产品有:FLEX6000/8000/10K、APEX20K、ACEX1K、APEXⅡ、Mercury、Excalibur、Cyclone、Stratix、CycloneⅡ和StratixⅡ等系列。 Altera的FPGA器件采用钢铝布线的先进CMOS技术,具有非常低的功耗和相当高的速度,而且采用连续式互连结构,提供快速的、连续的信号延时。Altera器件密度从300门到400万门,能很容易地集成现有的各种逻辑器件,高集成度的FPGA提供更高的系统性能,更高的可靠性,更高的性能价格比。 Altera Cyclone系列FPGA是Altera公司2003年9月份推出的,基于1.5V,0.13μm 工艺,Cyclone 是一个性价比很高的FPGA系列。其中EP1C3T144是Cyclone系列中的一员,共有2910逻辑单元,59904RAM bits,1个PLLs,最多有104个用户I/O,可以说这款FPGA的资源非常丰富,足够满足大型设计的需要。 本公司因此特推出Cyclone EP1C3T144C8 FPGA开发板,该开发板功能强大,接口丰富,可做大型综合实验。 FPGA开发板硬件资源主要有:

1、Altera EP1C3T144C8 FPGA芯片 2、Altera 串行配置芯片EPCS1 3、DAC0832芯片 4、ADC0809芯片 5、液晶接口 6、TP3057PCM编解码芯片 7、八位高亮数码管 8、八位拨码开关 9、4×4阵列键盘 10、4个复位轻触按键 11、9个高亮发光二极管(红、绿、黄色各三灯) 12、双刀双掷继电器 13、异步通信串口(UART) 14、双有源晶振(24MHz和32.768MHz) 15、5V,3.3V,1.5V电源管理系统 FPGA开发板带以下DEMO程序: 1、FPGA实现流水灯实验 2、FPGA实现电子钟实验 3、FPGA实现串口发送实验 4、FPGA实现串口接收、点阵显示实验 5、FPGA实现矩阵键盘和点阵显示(实时扫描方式) 6、FPGA实现矩阵键盘和数码管显示(延时扫描方式) 7、FPGA实现AD转换、数码显示和拨码选择通道实验 8、FPGA实现DA转换,产生锯齿、三角、正弦波;拨码开关选择波形

华为_FPGA设计流程指南

FPGA设计流程指南 前言 本部门所承担的FPGA设计任务主要是两方面的作用:系统的原型实现和ASIC的原型验证。编写本流程的目的是: ●在于规范整个设计流程,实现开发的合理性、一致性、高效性。 ●形成风格良好和完整的文档。 ●实现在FPGA不同厂家之间以及从FPGA到ASIC的顺利移植。 ●便于新员工快速掌握本部门FPGA的设计流程。 由于目前所用到的FPGA器件以Altera的为主,所以下面的例子也以Altera为例,工具组合为modelsim + LeonardoSpectrum/FPGACompilerII + Quartus,但原则和方法对于其他厂家和工具也是基本适用的。

目录 1. 基于HDL的FPGA设计流程概述 (1) 1.1 设计流程图 (1) 1.2 关键步骤的实现 (2) 1.2.1 功能仿真 (2) 1.2.2 逻辑综合 (2) 1.2.3 前仿真 (3) 1.2.4 布局布线 (3) 1.2.5 后仿真(时序仿真) (4) 2. Verilog HDL设计 (4) 2.1 编程风格(Coding Style)要求 (4) 2.1.1 文件 (4) 2.1.2 大小写 (5) 2.1.3 标识符 (5) 2.1.4 参数化设计 (5) 2.1.5 空行和空格 (5) 2.1.6 对齐和缩进 (5) 2.1.7 注释 (5) 2.1.8 参考C语言的资料 (5) 2.1.9 可视化设计方法 (6) 2.2 可综合设计 (6) 2.3 设计目录 (6) 3. 逻辑仿真 (6) 3.1 测试程序(test bench) (7) 3.2 使用预编译库 (7) 4. 逻辑综合 (8) 4.1 逻辑综合的一些原则 (8) 4.1.1 关于LeonardoSpectrum (8) 4.1.1 大规模设计的综合 (8) 4.1.3 必须重视工具产生的警告信息 (8) 4.2 调用模块的黑盒子(Black box)方法 (8) 参考 (10) 修订纪录 (10)

Actel FPGA结构简介

Actel FPGA结构简介 这篇关于Actel不同种类设备系列的综述涵盖了在充足细节上的主要结构特征,以确保读者相当熟悉Actel的设备,从而能从本节其余部分获取尽量多的应用笔记。关于每个产品功能的细节同样可以用在个别设备的产品说明上。 FPGA结构要求 数字化系统设计正在变得越来越难。系统要求不断增加的复杂性和性能,但是上市时间的紧迫性依旧限制发展周期。系统花费也是一个重要的限制,因此必须要找到一个满足严格财政指标的解决办法。这些相互矛盾的需求要求(我们)找到一个最优化的数字逻辑设计解决办法,以同时满足容量、性能、和上市时间的要求。一个最优化的结构必须能平衡全部相互矛盾的要求。Actel的结构通过提供容量、性能、耗费和使用舒适度之间的合适平衡来满足了这些全部要求,这期间使用了一个在最优逻辑单元、丰富又相互联系的资源、有效的硅使用量和强力的软件设计工具这四者之间的革新组合。 Actel设备结构 一个Actel FPGA的基础结构与一个传统的门阵列的是非常相似的。这个设备的核心是由被用于执行被需求的逻辑门和存储元素的简单逻辑单元组成。这些逻辑单元与大量分割的路由磁道相互联系。与门阵列不同,片段长度是被预先定义和能与低阻抗交换元素联系来建立相互联系信号所要求的准确路由长度。周围的逻辑核心是;连着设备的I/O衰减器。这个接口是由负责传输和相互连接从设备核心发到FPGA输出衰减器间的信号的I/O模块组成。一个一般的Actel FPGA 的一个模型图表如图1所示。 Actel FPGA结构的主要元素是I/O单元,相互联系的资源,定时资源和逻辑单元。每个Actei FPGA系列都有一个稍稍不同的资源组合,但都是在不同耗费、性能、密集要求之间的优化。列表1显示每种Actel FPGA系列的能力。每种能力都在列表1下面的章节里面被精确解释。 逻辑模块描述 最优的逻辑模块应该为用户提供性能,效率,和要求执行申请的设计舒适度的正确组合。如果逻辑模块提供了性能而没有提供效率,那设计的花费和容量要求也许就不能达到。同样地,如果在性能消耗和使用舒服度的基础上花费和容量要求达到了,那么设备可能就不能使用。最优逻辑模块必须能严格平衡这些交易,以确保能达到设计者的一些冲突的目标。 简单逻辑模块 最初的Actel逻辑模块就是用于ACT1系列上的简单逻辑模块,如图2所示。它是以多

ARM+FPGA开发板规格书

2014

Revision History

阅前须知 版权声明 本手册版权归属广州创龙电子科技有限公司所有,非经书面同意,任何单位及个人不得擅自摘录本手册部分或全部,违者我们将追究其法律责任。本文档一切解释权归广州创龙电子科技有限公司所有。 ?2014-2018Guangzhou TronlongElectronicTechnologyCo.,Ltd. All rights reserved. 公司简介 广州创龙电子科技有限公司(简称“广州创龙” ,英文简称"Tronlong"),是杰出的 嵌入式方案商,专业提供嵌入式开发平台工具及嵌入式软硬件定制设计及技术支持等服务,专注于DSP+ARM+FPGA 三核系统方案开发,和国内诸多著名企业、研究所和高校有密切的技术合作,如富士康、威胜集团、中国科学院、清华大学等国内龙头企业和院校。 TI 嵌入式处理业务拓展经理ZhengXiaolong 指出:“Tronlong 是国内研究OMAP-L138 最深入的企业之一,Tronlong 推出OMAP-L138+Spartan-6三核数据采集处理显示解决方案,我们深感振奋,它将加速客户新产品的上市进程,带来更高的投资回报率,使得新老客户大大受益。” 经过近几年的发展,创龙产品已占据相关市场主导地位,特别是在电力、通信、工控、 音视频处理等数据采集处理行业广泛应用。创龙致力于让客户的产品快速上市、缩短开发周期、降低研发成本。选择创龙,您将得到强大的技术支持和完美的服务体验。 产品保修 广州创龙所有产品保修期为一年,保修期内由于产品质量原因引起的,经鉴定系非 人为因素造成的产品损坏问题,由广州创龙免费维修或者更换。 更多帮助

FPGA原理图方式设计流程图

2 Quartus II软件的使用、开发板的使用 本章将通过3个完整的例子,一步一步的手把手的方式完成设计。完成这3个设计,并得到正确的结果,将会快速、有效的掌握在Altera QuartusII软件环境下进行FPGA设计与开发的方法、流程,并熟悉开发板的使用。 2.1 原理图方式设计3-8译码器 一、设计目的 1、通过设计一个3-8译码器,掌握祝组合逻辑电路设计的方法。 2、初步了解QuartusII采用原理图方式进行设计的流程。 3、初步掌握FPGA开发的流程以及基本的设计方法、基本的仿真分析方法。 二、设计原理 三、设计内容 四、设计步骤 1、建立工程文件 1)双击桌面上的Quartus II的图标运行此软件。

开始界面 2)选择File下拉菜单中的New Project Wizard,新建一个工程。如图所 示。 新建工程向导

3)点击图中的next进入工作目录。 新建工程对话框 4)第一个输入框为工程目录输入框,用来指定工程存放路径,建议可根据自己需要更改路径,若直接使用默认路径,可能造成默认目录下存放多个工程文件影响自己的设计,本步骤结束后系统会有提示(当然你可不必理会,不会出现错误的)。第二个输入框为工程名称输入框。第三个输入框为顶层实体名称输入框,一般情况下保证工程名称与顶层实体名称相同。设定完成后点击next。

指定工程路径、名称 5)设计中需要包含的其它设计文件,在此对话框中不做任何修改,直接点 击next。 工程所需其它文件对话框

6)在弹出的对话框中进行器件的选择。在Device Family框中选用Cyclone II,然后在Available device框中选择EP2C35F484C8,点击next进入下一步。 器件选择界面 7)下面的对话框提示可以勾选其它的第三方EDA设计、仿真的工具,暂时不作任何选择,在对话框中按默认选项,点击next。

基于DE2-115开发板的FPGA入门设计实验

基于DE2-115开发板的FPGA入门设计实验 1、Lab1: 4位加法器、减法器的设计 1.1 摘要 在文件add_sub里面的工程文件operation_4.v为顶层文件,该顶层文件包含了三个子模块,分别为数码管显示模块,4位带进位的二进制加法器模块和4位带借位的二进制减法器模块,最后通过DE2-115开发板显示实验结果。 1.2 程序 1)add_4bits.v 加法器 module adder_4bits ( input clk, input rst_n, input [3:0] x, input [3:0] y, output reg [3:0] sum, output reg carry_out //溢出位 ); always@(posedge clk or negedge rst_n) begin if(!rst_n)

{carry_out, sum} <= 0; else {carry_out, sum} = x + y; end endmodule 2)substractor_4bits.v减法器module subtractor_4bits ( input clk, input rst_n, input [3:0] x, input [3:0] y, output r eg [3:0] sub, output r eg borrow_out ); always@(posedge clk or negedge rst_n) begin if(!rst_n) {borrow_out, sub} <= 0; else begin

if(x >= y) {borrow_out, sub} = {1'b0, x - y}; else {borrow_out, sub} = {1'b1, x - y}; end end endmodule 3)seg7_lut.v 数码管显示译码模块 module Seg7_lut ( input [3:0] iDIG, output r eg [6:0] oSEG ); always @(iDIG) begin case(iDIG) 4'h1: oSEG = 7'b1111001; // ---t---- 4'h2: oSEG = 7'b0100100; // | | 4'h3: oSEG = 7'b0110000; // lt rt 4'h4: oSEG = 7'b0011001; // | | 4'h5: oSEG = 7'b0010010; // ---m---- 4'h6: oSEG = 7'b0000010; // | |

FPGA验证(介绍FPGA设计流程,STA,后仿真)

验证,顾名思义就是通过仿真、时序分析、上板调试等手段检验设计正确性的过程,在FPGA/IC 开发流程中,验证主要包括功能验证和时序验证两个部分。为了了解验证的重要性,我们先来回顾一下FPGA开发的整个流程。FPGA开发流程和IC的开发流程相似,主要分为以下几个部分: 1)设计输入,利用HDL输入工具、原理图输入工具或状态机输入工具等把所要设计的电路描述出来; 2)功能验证,也就是前仿真,利用Modelsim、VCS等仿真工具对设计进行仿真,检验设计的功能是否正确;常用的仿真工具有Model Tech公司的ModelSim,Synopsys公司的VCS,Cadence公司的NC-Verilog和NC-VHDL,Aldec公司的Active HDL VHDL/Verilog HDL等。仿真过程能及时发现设计中的错误,加快了设计进度,提高了设计的可靠性。 3)综合,综合优化是把HDL语言翻译成最基本的与或非门的连接关系(网表),并根据要求(约束条件)优化所生成的门级逻辑连接,输出edf和edn等文件,导给CPLD/FPGA厂家的软件进行实现和布局布线。常用的专业综合优化工具有Synplicity公司的synplify/Synplify Pro、Amplify等综合工具,Synopsys公司的FPGA Compiler II综合工具(Synopsys公司将停止发展FPGA Express软件,而转到FPGA Compiler II平台),Exemplar Logic公司出品的LeonardoSpectrum等综合工具。另外FPGA/CPLD厂商的集成开发环境也带有一些综合工具,如Xilinx ISE中的XST等。 4)布局布线,综合的结果只是通用的门级网表,只是一些门与或非的逻辑关系,与芯片实际的配置情况还有差距。此时应该使用FPGA/CPLD厂商提供的实现与布局布线工具,根据所选芯片的型号,进行芯片内部功能单元的实际连接与映射。这种实现与布局布线工具一般要选用所选器件的生产商开发的工具,因为只有生产者最了解器件内部的结构,如在ISE的集成环境中完成实现与布局布线的工具是Flow Engine。 5)时序验证,其目的是保证设计满足时序要求,即setup/hold time符合要求,以便数据能被正确的采样。时序验证的主要方法包括STA(Static Timing Analysis)和后仿真。在后仿真中将布局布线的时延反标到设计中去,使仿真既包含门延时,又包含线延时信息。这种后仿真是最准确的仿真,能较好地反映芯片的实际工作情况。仿真工具与综合前仿真工具相同。 6)生成并下载BIT或PROM文件,进行板级调试。 在以上几个主要开发步骤当中,属于验证的有功能仿真和时序验证两个步骤,由于前仿真和后仿真涉及验证环境的建立,需要耗费大量的时间,而在STA中对时序报告进行分析也是一个非常复杂的事情,因此验证在整个设计流程中占用了大量的时间,在复杂的FPGA/IC设计中,验证所占的时间估计在60%~70%之间。相比较而言,FPGA设计流程的其他环节由于需要人为干预的东西比较少,例如综合、布局布线等流程,基本所有的工作都由工具完成,设置好工具的参数之后,结果很快就可以出来,因此所花的时间精力要比验证少的多。 一般而言,在验证的几个内容中功能验证最受重视,研究讨论得最多,特别是现在FPGA/IC 设计都朝向SOC(System On Chip,片上系统) 的方向发展,设计的复杂都大大提高,如何保证这些复杂系统的功能是正确的成了至关重要的问题。功能验证对所有功能进行充分的验证,

FPGA基本设计流程资料

FPGA基本设计流程 首先建立工作库目录,以便设计工程项目的存储。注意不要将文件夹 1 建立工作库文件夹和编辑设计文件 1.1 新建一个文件夹(注意文件夹不能用中文,也不要用数字) 任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有设计文件的文件夹。此文件夹将被EDA软件默认为工作库(Work Library)。一般,不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。在建立了文件夹后就可以将设计文件通过Quartus II的文本编辑器编辑并存盘,这里新建文件夹在E盘中,取名为 jsq,则其路径是e:\jsq。步骤如下: 1.2 源程序输入 打开计算机桌面上图表,选择菜单File→New,出现如图1所示见面,在New窗口Device Design Files中选择编译文件的语言类型,这里选择VHDL File,选好后用鼠标左键点击OK,出现源程序输入窗口如图2所示(以十进制为例)。 图1 选择编译文件的语言类型

图2 源程序输入窗口 源程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT (CLK,RST,EN : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT10; ARCHITECTURE behav OF CNT10 IS BEGIN PROCESS(CLK, RST, EN) VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST = '1' THEN CQI := (OTHERS =>'0') ; --计数器异步复位 ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿 IF EN = '1' THEN --检测是否允许计数(同步使能) IF CQI < 9 THEN CQI := CQI + 1; --允许计数, 检测是否小于9 ELSE CQI := (OTHERS =>'0'); --大于9,计数值清零 END IF; END IF; END IF; IF CQI = 9 THEN COUT <= '1'; --计数大于9,输出进位信号 ELSE COUT <= '0'; END IF;

FPGA验证简介

这篇文章有EDA论坛deve所作: 第一编 验证的重要性 验证,顾名思义就是通过仿真、时序分析、上板调试等手段检验设计正确性的过程,在FPGA/IC开发流程中,验证主要包括功能验证和时序验证两个部分。为了了解验证的重要性,我们先来回顾一下FPGA开发的整个流程。FPGA开发流程和IC的开发流程相似,主要分为以下几个部分: 1)设计输入,利用HDL输入工具、原理图输入工具或状态机输入工具等把所要设计的电路描述出来; 2)功能验证,也就是前仿真,利用Modelsim、VCS等仿真工具对设计进行仿真,检验设计的功能是否正确;常用的仿真工具有Model Tech公司的ModelSim,Synopsys公司的VCS,Cadence公司的NC-Verilog 和NC-VHDL,Aldec公司的Active HDL VHDL/Verilog HDL等。仿真过程能及时发现设计中的错误,加快了设计进度,提高了设计的可靠性。 3)综合,综合优化是把HDL语言翻译成最基本的与或非门的连接关系(网表),并根据要求(约束条件)优化所生成的门级逻辑连接,输出edf和edn等文件,导给CPLD/FPGA厂家的软件进行实现和布局布线。常用的专业综合优化工具有Synplicity公司的synplify /Synplify Pro、Amplify等综合工具,Synopsys公司的FPGA Compiler II综合工具(Synopsys公司将停止发展FPGA Express软件,而转到FPGA Compiler II平台),Exemplar Logic公司出品的LeonardoSpectrum 等综合工具。另外FPGA/CPLD厂商的集成开发环境也带有一些综合工具,如Xilinx ISE中的XST等。 4)布局布线,综合的结果只是通用的门级网表,只是一些门与或非的逻辑关系,与芯片实际的配置情况还有差距。此时应该使用FPGA/CPLD厂商提供的实现与布局布线工具,根据所选芯片的型号,进行芯片内部功能单元的实际连接与映射。这种实现与布局布线工具一般要选用所选器件的生产商开发的工具,因为只有生产者最了解器件内部的结构,如在ISE的集成环境中完成实现与布局布线的工具是Flow Engine。 5)时序验证,其目的是保证设计满足时序要求,即setup/hold time符合要求,以便数据能被正确的采样。时序验证的主要方法包括STA(Static Timing Analysis)和后仿真。在后仿真中将布局布线的时延反标到设计中去,使仿真既包含门延时,又包含线延时信息。这种后仿真是最准确的仿真,能较好地反映芯片的实际工作情况。仿真工具与综合前仿真工具相同。 6)生成并下载BIT或PROM文件,进行板级调试。 在以上几个主要开发步骤当中,属于验证的有功能仿真和时序验证两个步骤,由于前仿真和后仿真涉及验证环境的建立,需要耗费大量的时间,而在STA中对时序报告进行分析也是一个非常复杂的事情,因此验

FPGA设计流程

基于多种 EDA工具的FPGA设计流程 发表时间:2008-6-30 蒋昊李哲英来源:万方数据 关键字:FPGA EDA CPU 信息化应用调查在线投稿加入收藏发表评论好文推荐打印文本 本文介绍了FPGA的完整设计流程,其中包括电路设计与输入、功能仿真、综合优化、综合后仿真、实现与布局布线、时序仿真、板级仿真与脸证、调试与加载配置等主要步珠。并通过一个8-bit RISC CPU的设计来例系统地介绍了利用多种EDA工具进行 FPGA协同设计的实现原理及方法 近年来,随着微电子学的迅速发展以及SoC(System on Chip,片上系统)技术在设计领域引起的深刻变革, EDA(Electornic Design Automatic,电子设计自动化)工具在系统设计中的地位愈发重要。特别是20世纪90年代后,电子系统已经由电路板级发展为ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Porgrammable Gate Array,现场可编程门阵列)以及嵌人式系统等多种模式,其中FPGA设计正是当前数字系统设计领域中的重要方式之一。 本文以Altera公司的FPGA为目标器件,通过一个8-bit RISC CPU的设计实例,系统地介绍了FPGA的完整设计流程以及开发过程中用到的多种EDA工具,包括Modelsim,Synplify,QuatrusII,并重点说明如何使用这些EDA工具进行协同设计。 1FPGA的设计流程 一般来说,完整的FPGA设计流程包括电路设计与输人、功能仿真、综合优化、综合后仿真、实现与布局布线、时序仿真、板级仿真与验证、调试与加载配置等主要步骤,如图1所示。电路设计与输人是指通过某些规范的描述方式,将工程师的电路构思输人给EDA工具,常用的设计方法有HDL(Hardwaer Description Language,硬件描述语言)设计输人法与原理图设计输人法。目前进行大型工程设计时,最常用的设计方法是HDL设计输人法,它利于自顶向下设计以及模块的划分与复用,可移植性和通用性好,设计不因芯片的工艺与结构的不同而变化,更利于向ASIC移植。 电路设计完成后,要用专用的仿真工具对设计进行功能仿真(FunctionalSimulation),验证电路功能是否符合设计要求。功能仿真又称前仿真(Per-Simulation)。通过仿真能及时发现设计中的错误,加快设计进度,提高设计的可靠性。综合(Synthesis)优化是指将HDL语言、原理图等设计输人翻译成由基本门、RAM、触发器等基本逻辑单元组成的逻辑网表,并根据目标与要求(约束条件)优化所生成的逻辑网表,输出标准格式的网表文件,供FPGA厂商的布局布线器进行实现。综合后仿真(Post Synthesis Simulation)的作用是检查综合出的结果与原设计是否一致。作综合后仿真时,要把综合生成的标准延时格式SDF(Standard Dela Format)文件反标注到综合仿真模型中去,可估计门延时带来的影响。综合后仿真虽然比功能仿真精确一些,但是只能估计门延时,不能估计线延时,仿真结果与布线后的实际情况还有一定

FPGA开发板EP1C12用户手册(一版)

使用手册

目 录 第一章综述 (1) EP1C12核心板资源介绍 (1) FPGA开发板资源介绍 (2) 第二章 系统模块功能介绍 (5) EP1C12核心板模块说明 EP1C12F324C8芯片说明 (7) NOR FLASH模块说明 (8) SRAM模块说明 (9) FPGA接口I/O说明 (10) 调试接口JTAG、AS说明 (11) 其它功能模块 (12) EP1C12核心板使用注意事项 (15) FPGA开发平台模块说明 液晶显示模块 (17) RTC实时时钟模块 (19) USB接口模块 (19) 音频CODEC接口模块 (20) EEPROM存储模块 (21) 数字温度传感器模块 (22) 其它功能模块 (23) FPGA开发平台使用注意事项 (24) 附表一 核心板载资源与FPGAEP1C12I/O接口对照表 (25) 附表二 EP1C12与开发板硬件资源I/O接口对照表 (30)

第一章综述 FPGA开发来台是根据现代电子发展的方向,集EDA和SOPC系统开发为一体的综合性实验开发系统,除了满足高校专、本科生和研究生的SOPC教学实验开发之外,也是电子设计和电子项目开发的理想工具。整个开发系统由核心板EP1C12、SOPC开发平台和扩展板构成,根据用户不同的需求配置成不同的开发系统。 EP1C12核心板 EP1C12核心板为基于Altera Cyclone器件的嵌入式系统开发提供了一个很好的硬件平台,它可以为开发人员提供以下资源: 1主芯片采用Altera Cyclone器件EP1C12F324C8 2EPCS4I8配置芯片 34个用户自定义按键 44个用户自定义LED 51个七段码LED 6标准AS编程接口和JTAG调试接口 750MHz高精度时钟源 8三个高密度扩展接口 9系统上电复位电路 10支持+5V直接输入,板上电源管理模块 系统主芯片采用324引脚、BGA封装的E1C12 FPGA,它拥有12060个LE,52个M4K 片上RAM(共计239616bits),2个高性能PLL以及多达249个用户自定义IO。同时,系统还可以根据用户不同的设计需求来更换其它不同系列的核心板,如: EP1C6、EP2C20、EP3C25等。所以,不管从性能上而言,还是从系统灵活性上而言,无论您是初学者,还是资深硬件工程师,它都会成为您的好帮手。

FPGA芯片介绍

Arria II GX FPGA器件 高无忌 2012511009 Arria?II 器件系列专为易操作性而设计。经过成本优化的40-nm 器件系列体系结构具有低功耗、可编程逻辑引擎、以及一体化的收发器和I/O 等特性。像PhyscialInterface for PCIExpress?(PCIe?)、Ethernet 和DDR3 存储器这样的公共接口在您的设计中可以很容易地通过Quartus?II 软件、SOPC Builder 设计软件以及Altera 所提供的多种硬/ 软知识产权(IP) 解决方案来实现。对于要求收发器运行在高达6.375 Gbps的应用程序设计而言,Arria II GX FPGA 器件系列能够使设计变得更快更容易。 Arria II GX FPGA器件特性 Arria II GX FPGA器件的关键特性如下: ■40-nm 低功耗FPGA 引擎 ■自适应逻辑模块(ALM) 实现了业界最高的逻辑效率 ■八输入分段查找表(LUT) ■存储器逻辑阵列模块(MLAB),用于小型FIFO 的有效实现 ■高达550 MHz 的高性能数字信号处理(DSP) ■可配置成9 x 9 位、12 x 12 位、18 x 18 位和36 x 36 位全精度乘法器,以及 18 x 36 位高精度乘法器 ■硬编码的加法器、减法器、累加器和求和功能 ■通过Altera 的MATLAB 和DSP Builder 软件实现的完全集成的设计流程 ■最大系统带宽 ■多达24个基于全双工时钟数据恢复(CDR)的收发器,支持600 Mbps到6.375 Gbps 的数据速率 ■专用电路,支持用于常用串行协议的物理层功能,这些串行协议包括:PCIeGen1 与PCIe Gen2、Gbps Ethernet、Serial RapidIO?(SRIO)、通用公共无线电接口(CPRI)、OBSAI、SD/HD/3G/ASI 串 行数字接口(SDI), XAUI 和ReducedXAUI(RXAUI)、HiGig/HiGig+、SATA/ 串行附加SCSI(SAS)、GPON、SerialLite II、光纤通道、SONET/SDH、Interlaken、串行数据转换器(JESD204) 和SFI-5。■采用嵌入式硬核IP模块的完整PIPE协议解决方案,嵌入式硬核IP模块提供了物理层 和介质存取控制(PHY/MAC) 层,数据链路层和传输层功能性 ■针对高带宽系统接口进行的优化 ■多达726个用户I/O管脚分布在支持多种单端和差分I/O标准的多达20个模块化的 I/O bank 中 ■高速LVDS I/O 支持,具有串化器/ 解串器(SERDES) 和运行在150 Mbps 到 1.25 Gbps数据速率上的动态相位对齐(DPA) 电路 ■低功耗 ■体系结构的功耗降低技术 ■100 mW @ 3.125 Gbps的物理介质附加子层(PMA) 的典型功耗 ■集成到Quartus II 开发软件的功耗优化 ■高级实用性和安全特性 ■并行和串行配置选项

Altium公司的FPGA开发板的原理图

1 12 23 34 45 56 67 78 8 D D C C B B A A 1 02 1/02/20101:34:44 PM NB3000_Top.SchDoc Project Title Size: Date:File:Revision:Sheet of Time:A2Sheet Title NB3000 Top Level Assy:81 NB3000AL - Altera D-820-0053 Altium Limited 3 Minna Close Belrose NSW 2085Australia PSU PSU.SchDoc SRAM SRA M1 SRAM_256Kx 16_TSOP44 STATUS_LED U SE R _STATUS_L E DS DB_LEDS_0603 SRAM1 SRAM2 MEM_COMMON DAU_RESET_SW BUZZER ONE_WIRE_DB_PB SW DIP USERIO EXT_A RS232 KEYBOARD MOUSE TFT_IO DB_PROGRAM STATUS_LED USER_LEDS RELAY I2C CODEC VGA ETH DBSD DBUSB PWM SPDIF DAC ADC RS485 MIDI DB_JTAG DB_CLOCKS DB_SPI ISP176X PROTOTYPE SPAREIO TFT_TSC FPGA _USE R FPGA.SCHDOC INT EXT V IDE O_OU T VGA_OUT.SCHDOC CON CON_VGA CON_VGA_DB15 HOST_JTAG LED1LED2 1WID DB_PROGRAM CLK_PLL FLASH_BOOT HOSTUSB SRAM RTC SD HOST_AUDIO DB_JTAG DB_CLOCKS FLASH_USER DB_SPI PB_A EXTSPI FLASH_GOLDEN DIAGCOMMS FPGA _HOST HOST_FPGA.SchDoc HOST_JTAG HOST_JTA G HOST_JTAG.SchDoc INT EXT R S232 RS232_HIN232 EXT INT KE Y BOA RD PC_PS2 RS232# KBD#MSE# RS232 KEYBOARD EXT INT MOUSE PC_PS2 DIPSW DB_RESET CON CON_DBU SB CON_MINI_USBB_RA_KME04-USBMU03A01-1 DBUSB DBUSB# CON CON_DBSD CON_SD_KSDC012551 DBSD EXT INT DBU SB_TX RX USB_CY7C68001-56LFC.SchDoc INT EXT E TH Ethernet_RTL8201CL.SchDoc ETH CLK_PLL CL K_PL L CLK_ICS307-02_PLL 1WID NB_ID 1WB_DS2502_ID CON CON_HOST_USB CON_MINI_USBB_RA_KME04-USBMU03A01-1 TFT_TSC TFT_TOUCH L CDTFT TSC_XPT2046.SchDoc TFT_TSC TFT_IO CON CON_MOU SE CON_PS2PORT_MINIDIN6F_BLACK INT CON PDA _SW ITCHE S SW_PB_SPNOx5_SMD INT TE ST_RE SE T SW_RESET_SPNO CON USERPOWER CON_IO CON_USER_20WBOXHDRRAMx 2 UIO BUZZER CODEC_AUD AUDIO SPK_L SPK_R HOST_AUDIO AIN AOUT_PBA A UDIO_A MP AUDIO_AMP_NB2C PB_AIN AUDIO SPK_L USER_LEDS CON U SE R _L E D LED_RGB_SMDx 8.SCHDOC USER_LEDS VGA# VGA SW SRAM SRA M2 SRAM_256Kx 16_TSOP44 RELAYS CON R E L AY RELAY_X4_IM03GR RELAY PWM CON PW M PWM_5.8A_30V_X4 PWM 1V21V82V53V35V0 PBPOW E R 1V21V82V53V35V0 I2C DIGITAL CODEC_AUD AIN A UDIO_CODE C Audio_Codec.SchDoc CODEC SPK_L SPK_R CON_SPE AKE R S CON_EXT_SPK SPK_R PB_AOUT PBIO LED1LED2 LED1_EXT LED2_EXT L E D_HOST LED_RGB_SMDx 2 SPDIF CON_SPDIF CON_SPDIF_INOUT_A SPDIF SPI CON DAC DAC_DAC084S085_SPI SPI CON A DC ADC_ADC084S021_SPI DAC ADC CON CON_E TH CON_ETHERNET_RJ45_LEDS ETH# TFT_IO TFT_TOUCH CON_L CDTFT CON_FFC40_LCDTFT.SCHDOC CON CON_RE L AY CON_RELAYx 4_KMRJIO3_5MM_12WAY CON CON_RS232 CON_RS232DCE_DB9_TH BOOT_FLASH MOUNTS Mounts.SchDoc INT EXT R S485 RS485_ISL8491 CON_PSU PWJACK+SWITCH.SchDoc HOST_USB HOSTUSB# EXT INT HOST_USB_TXR X USB_CY7C68001-56LFC.SchDoc VBATT CON_BA TT CON_BATT_COIN VBATT VBATT RTC R T CL OCK CLK_PCF2123_RTC HOST_RTC USERPOWER U SE R _POW E R USERPWR.SCHDOC CON CON_HOST_SD CON_SD_KSDC012551 RS485#CON CON_RS485 CON_RS485_RJ45 INT EXT MIDI INTE RFA CE MIDI_FULL CON CON_MIDI CON_MIDI_DIN5 MIDI# MIDI RS485HOST_AUDIO PBCTRL DB_PROGRAM HOST_JTAG HOST_ID HOST_CLK HOST_SRAM HOST_LED1 HOST_LED2 HOST_SD DB_SRAM1 DB_SRAM2 DB_MEM DB_STATUS ADC# RELAYS# PWM# DAC# UIO_PWR DB_JTAG DB_CLOCKS PB_SPI USER_FLASH DB_SPI EXT ONE_WIRE_DB_PB AIN I2C SPI AOUT CTRL PBPOWER CON_PE R IPHE R AL _BRD PBCON USER_LEDS SW_PDA SPARE_IO CON_L E DKBD CON_NB3000_LEDKB SERFLASH SYSBOOT FLASH_M25PX0_SPI_8Mbit GOLD_FLASH SERFLASH GOL DE N FLASH_M25PX0_SPI_8Mbit FLASH U SE R _FL A SH FLASHSPI_M25PX0 INT SW _DIP8_SM T SW_DIP8_SMT CON CON_KE YBOAR D CON_PS2PORT_MINIDIN6F_BLACK CON CON_USB1 CON_USBA_RA_UPRIGHT LEDS# ATE DIAGCOMMS A TE INTE R FACE CON_NB3000_ATE_INTF ISP176X PORT1 PORT2 PORT3 U SB_U SE RHOST USB_ISP1760 ATE VGA#SPDIF UIO ADC#DAC#AUDIO HOST_JTAG PWM RS232#RS485#KBD#MSE#MIDI# HOST_ID A TE INTE R FACE VGA#SPDIF UIO ADC# DAC# AUDIO HOST_JTAG PWM# RS232#RS485#KBD#MSE#MOUSE ISP176X PORT1 PORT2 PORT3 PROTOTYPE U SE R _PROTOTYPE _AR E A PROTOTYPE_A PROTOTYPE CON CON_AU DIO CON_AUDIO_AC99_NOMIC.SCHDOC DIAGCOMMS MIDI# HOST_ID SW# SPAREIO MEM COMM ON_ME M OR Y CommonMemory CON CON_ADC CON_ADCx 4_KMRJIO3_5MM_6WAY CON CON_DAC CON_DACx 4_KMRJIO3_5MM_6WAY CON CON_PW M CON_PWMx4_KMRJIO3_5MM_6WAY CON CON_USB2 CON_USBA_RA_UPRIGHT CON CON_USB3 CON_USBA_RA_UPRIGHT SRAM SRA M_HOST SRAM_256Kx 16_TSOP44 TFT_TOUCH INT U SB_CL K OSC_24MHZ.SchDoc HOST_USB.XTALIN HOST_USB.XTALOUT CMOSOUT XTALIN XTALOUT OSC DBUSB.XTALIN

基于FPGA开发板的数字钟设计初探

基于FPGA开发板的数字钟设计初探 摘要:本文介绍了基于FPGA开发板的数字钟设计的基本构想,所提供的功能,基本的模块和控制逻 辑。 关键词: 模块,数字钟 1引言 VHDL结合FPGA可以方便地,可重复利用地实现各种设计,本文主要从原理上规划出设计一个数字钟需要的模块和功能逻辑,以便后期使用VHDL和FPGA实现。 2 设计原理 本文打算实现的数字钟向用户提供的功能包括:秒、分、时、日、月显示,闹钟设定,时间校准。鉴于所提供的功能,电路应当包括以下五大模块:控制模块,分频模块,闹钟模块,计时模块和显示模块。控制模块包括了输入部分,用户通过外部按钮选择数字钟工作模式和输入基准时间,闹钟时刻;分频模块主要是给需要的模块提供特定频率的时钟信号;闹钟模块的主要作用是接收并存储用户输入的闹钟时刻,比较当前时刻是否是用户所设定的闹钟时刻,进而决定是否启动闹钟提醒装置(蜂鸣器);计时模块包括了秒、分、时、日,月计数模块,并提供给显示模块显示输出;显示模块包括数码管及驱动部分,蜂鸣器。 3 电路设计 控制模块主要是一个译码电路,控制系统所处的模式:正常计时显示,时间校准,设定闹钟。 计时模块通过六十进制、二十四进制、三十或三十一进制和十二进制的计数器实现计时。计时模式下利用分频器提供的基准时钟信号实现计时;时间校准模式下,用户输入按钮的脉冲作时钟信号。 分频模块是一个分频器,将系统提供的时钟分频到需要的频率。 闹钟模块在计时模式下利用比较电路检测当前时间,如果是闹钟时刻,则启动蜂鸣器;闹钟模式下,用户通过输入按钮脉冲设定闹钟,闹钟模块记录并存储。 显示模块在计时模式和时间校准模式下由计时模块控制显示,设定闹钟时由闹钟模块控制显示,方便用户设定闹钟,蜂鸣器由闹钟模块控制。

FPGA开发设计流程和功能实现

FPGA设计流程与功能实现 前言 本部门所承担的FPGA设计任务主要是两方面的作用:系统的原型实现和ASIC的原型验证。编写本流程的目的是: ●在于规范整个设计流程,实现开发的合理性、一致性、高效性。 ●形成风格良好和完整的文档。 ●实现在FPGA不同厂家之间以及从FPGA到ASIC的顺利移植。 ●便于新员工快速掌握本部门FPGA的设计流程。 由于目前所用到的FPGA器件以Altera的为主,所以下面的例子也以Altera为例,工具组合为modelsim + LeonardoSpectrum/FPGACompilerII + Quartus,但原则和方法对于其他厂家和工具也是基本适用的。

目录 1. 基于HDL的FPGA设计流程概述 (1) 1.1 设计流程图 (1) 1.2 关键步骤的实现 (2) 1.2.1 功能仿真 (2) 1.2.2 逻辑综合 (2) 1.2.3 前仿真 (3) 1.2.4 布局布线 (3) 1.2.5 后仿真(时序仿真) (4) 2. Verilog HDL设计 (4) 2.1 编程风格(Coding Style)要求 (4) 2.1.1 文件 (4) 2.1.2 大小写 (5) 2.1.3 标识符 (5) 2.1.4 参数化设计 (5) 2.1.5 空行和空格 (5) 2.1.6 对齐和缩进 (5) 2.1.7 注释 (5) 2.1.8 参考C语言的资料 (5) 2.1.9 可视化设计方法 (6) 2.2 可综合设计 (6) 2.3 设计目录 (6) 3. 逻辑仿真 (6) 3.1 测试程序(test bench) (7) 3.2 使用预编译库 (7) 4. 逻辑综合 (8) 4.1 逻辑综合的一些原则 (8) 4.1.1 关于LeonardoSpectrum (8) 4.1.1 大规模设计的综合 (8) 4.1.3 必须重视工具产生的警告信息 (8) 4.2 调用模块的黑盒子(Black box)方法 (8) 参考 (10) 修订纪录 (10)

相关文档