购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.4 基于FPGA的开发流程

1.4.1 FPGA设计方法概论

与传统的自底向上的设计方法不同,FPGA的设计方法属于自上而下的设计方法,一开始并不去考虑采用哪一型号的器件,而是从系统的总体功能和要求出发,先设计规划好整个系统,然后再将系统划分成几个不同功能的部分或模块,采用可完全独立于芯片厂商及其产品结构的描述语言,对这些模块从功能描述的角度出发,进行设计。整个过程并不去考虑具体的电路结构是怎样的,功能的设计完全独立于物理实现。

与传统的自底向上的设计方法相比,自上而下的设计方法具有如下优点:

(1)完全符合设计人员的设计思路,从功能描述开始,到物理实现的完成。

(2)设计更加灵活。自底向上的设计方法受限于器件的制约,器件本身的功能以及工程师对器件了解的程度都将影响到电路的设计,限制了设计师的思路和器件选择的灵活性。而功能设计使工程师可以将更多的时间和精力放在功能的实现和完善上,只在设计过程的最后阶段进行物理器件的选择或更改。

(3)设计易于移植和更改。由于设计完全独立于物理实现,所以设计结果可以在不同的器件上进行移植,应用于不同的产品设计中,做到成果的再利用。同时也可以方便地对设计进行修改、优化或完善。

(4)易于进行大规模、复杂电路的设计实现。FPGA器件的高集成度以及深亚微米生产工艺的发展,使得复杂系统的SoC设计成为可能,为设计系统的小型化、低功耗、高可靠性等提供了物理基础。

(5)设计周期缩短。由于功能描述可完全独立于芯片结构,在设计的最初阶段,设计师可不受芯片结构的约束,集中精力进行产品设计,进而避免了传统设计方法所带来的重新再设计风险,大大缩短了设计周期,同时提高了性能,使得产品竞争力加强。据统计,采用自上而下设计方法的生产率可达到传统设计方法的2~4倍。

1.4.2 典型FPGA开发流程

典型FPGA的开发流程如图1-14所示。

图1-14 典型FPGA的开发流程

第一步,首先要明确所设计电路的功能,并对其进行规划,确定设计方案,根据需要可以将电路的设计分为几个不同的模块分别进行设计。

第二步,进行各个模块的设计,通常是用硬件描述语言HDL(Hardware Description Language)对电路模块的逻辑功能进行描述,得到一个描述电路模块功能的源程序文件,从而完成电路模块的设计输入。

第三步,对输入的文件进行编译综合,从而确定设计文件有没有语法错误,并将设计输入文件从高层次的系统行为描述翻译为低层次的门级网表文件。这之后,可以进行电路的功能仿真,通过仿真检验电路的功能设计是否满足设计需求。

第四步,进行FPGA适配,即确定选用的FPGA芯片,并根据选定芯片的电路结构,进行布局布线,生成与之对应的门级网表文件。如果在编译之前已经选定了FPGA芯片,则第三步和第四步可以合为一个步骤。

第五步,进行时序仿真,根据芯片的参数以及布局布线信息验证电路的逻辑功能和时序是否符合设计需求。如若仿真验证正确,则进行程序的下载,否则,返回去修改设计输入文件。

第六步,下载或配置,即将设计输入文件下载到选定的FPGA芯片中,完成对器件的布局布线,生成所需的硬件电路,通过实际电路的运行检验电路的功能是否符合要求,如若符合,则电路设计完成,否则,返回去修改设计输入文件。

1.4.3 FPGA的配置

FPGA的下载称之为配置,可进行在线重配置ICR(In Circuit Reconfigurability),即在系统正常工作时进行下载配置FPGA,其功能跟ISP类似。FPGA采用静态存储器SRAM存储编程信息,SRAM属于易失元件,所以系统需要外接配置芯片或存储器,存储编程信息。每次系统加电,在整个系统工作之前,先要将储存在配置芯片或存储器中的编程数据加载到FPGA器件的SRAM中,之后系统才开始工作。

CPLD的下载称之为编程,我们常说的在系统可编程ISP(In System Programmability)是针对CPLD器件而言的。在系统可编程ISP器件采用的是EEPROM或者闪存存储器FLASH存储编程信息,这类器件的编程信息断电后不会丢失,由于器件设有保密位,所以器件的保密性强。

1. 配置方式

FPGA的配置有多种模式,大致分为主动配置和被动配置两种模式。主动配置是指由FPGA器件引导配置过程,是在产品中使用的配置方式,配置数据存储在外部ROM中,上电时由FPGA引导从ROM中读取数据并下载到FPGA器件中。被动配置是指由外部计算机或者控制器引导配置过程,在调试和实验阶段常采用这种配置方式。每个FPGA厂商都有自己特定的术语、技术和协议,FPGA配置细节不完全一样。

下面以Intel公司的FPGA器件为例,其配置模式主要有:主动串行AS(Active Serial)方式、被动串行PS(Passive Serial)方式、快速被动并行FPP(Fast Passive Parallel)方式、JTAG(Joint Test Action Group)方式、Avalon®-ST方式、SD/MMC、Configuration via Protocal(CvP)。各配置模式间的区别如表1-10所示。不同的FPGA芯片支持的配置模式不同,具体需参照各系列芯片的数据手册。

表1-10 配置模式比较表

2. 下载电缆

下载电缆用于将不同配置方式下的配置数据由PC传送到FPGA器件中,下载电缆不仅可以用于配置FPGA器件,也可以实现对CPLD器件的编程。Altera公司目前主要提供三种类型的下载电缆,ByteBlaster Ⅱ、USB-Blaster和Ethernet Blaster下载电缆。其中ByteBlaster Ⅱ下载电缆通过使用PC的打印机并口,可以实现PC对Altera器件的配置或编程,USB Blaster下载电缆通过使用PC的USB口,可以实现PC对Altera器件的配置或编程。两种电缆都支持1.8V、2.5V、3.3V和5.0V的工作电压,支持SignalTap II的逻辑分析,支持EPCS配置芯片的AS配置模式。另外USB Blaster下载电缆还支持对嵌入Nios II处理器的通信及调试。Ethernet Blaster下载电缆通过使用以太网的RJ-45接口,可以实现以太网对Altera器件的远程配置或编程。各下载电缆如图1-15所示。

图1-15 下载电缆

下面以Cyclone10系列FPGA的配置为例,介绍其配置模式和配置电路的设计。Cyclone10支持的配置模式主要有:AS、PS、FPP和JTAG。在FPGA芯片的外部引脚上,有专门的3个引脚MSEL[2..0]用于设定具体的配置模式,如表1-11所示。

表1-11 配置模式设置

注:JTAG配置方式的优先级最高,当仅采用JTAG配置方式时,MSEL[2..0]接地或电源均可;若除JTAG配置方式外,还采用了其他的配置方式,则按照其他配置方式设定MSEL1和MSEL0的值。

除此之外,FPGA上还有专门的配置引脚,用于各种配置方式,表1-12所示为下载电缆采用10针的插头时,插头上的各引脚分别在PS和JTAG配置方式下与FPGA的配置引脚间的对应关系。

表1-12 不同配置方式下10针插头与FPGA配置引脚间的对应关系及功能描述

不同配置方式下,各配置电路的设计也不相同。图1-16为FPGA的AS配置电路图,即先通过在系统编程ISP方式将配置数据通过ByteBlaster Ⅱ或USB Blaster下载电缆下载至串行配置芯片中,再通过配置芯片与FPGA采用AS配置方式连接,在上电时由FPGA引导完成对FPGA的配置。

图1-16 FPGA的AS配置电路图

图1-17为FPGA的PS配置电路图。

图1-17 FPGA的PS配置电路图

在PS配置模式下,还可以采用MAX Ⅱ、MAX Ⅴ系列的CPLD器件或其他的微处理器,配置电路如图1-18所示。

图1-18 MAX系列或微处理器在PS方式下的FPGA配置电路图

FPGA通过JTAG方式用下载电缆配置的电路如图1-19所示。

FPGA的配置模式非常灵活,在使用时可参阅具体系列芯片数据手册。

1.4.4 基于FPGA的SoC设计方法

片上系统SoC是半导体和电子设计自动化技术发展的产物,也是业界研究和开发的焦点。国内外学术界一般倾向将SoC定义为将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,它通常是客户定制的,或是面向特定用途的标准产品。所谓SoC,是将原来需要多个功能单一的IC组成的板级电子系统集成到一块芯片上,从而实现芯片即系统,芯片上包含完整系统并嵌有软件。SoC又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。

图1-19 FPGA的JTAG配置电路图

高集成度使SoC具有低功耗、低成本的优势,并且容易实现产品的小型化,在有限的空间中实现更多的功能,提高系统的运行速度。

SoC设计关键技术主要包括总线架构技术、IP核可复用技术、软硬件协同设计技术、SoC验证技术、可测性设计技术、低功耗设计技术、超深亚微米电路实现技术等,此外还要做嵌入式软件移植、开发研究,是一门跨学科的新兴研究领域。基于FPGA的SoC设计流程如图1-20所示。在进行SoC设计的过程中,应注意采用IP核的重用设计方法,通用模块的设计尽量选择已有的设计模块,例如各种微处理器、通信控制器、中断控制器、数字信号处理器、协处理器、密码处理器、PCI总线以及各种存储器等,把精力放在系统中独特的设计部分。关于IP核的介绍及使用,大家可参见本书第5章的内容。

1. 系统功能集成是SoC的核心技术

在传统的应用电子系统设计中,需要根据设计要求的功能模块对整个系统进行综合,即根据设计要求的功能,寻找相应的集成电路,再根据设计要求的技术指标设计所选电路的连接形式和参数。这种设计的结果是一个以功能集成电路为基础、器件分布式的应用电子系统结构。设计结果能否满足设计要求不仅取决于电路芯片的技术参数,而且与整个系统PCB版图的电磁兼容特性有关。同时,对于需要实现数字化的系统,往往还需要有单片机等参与,所以还必须考虑分布式系统对电路固件特性的影响。很明显,传统应用电子系统的实现,采用的是分布功能综合技术。

对于SoC来说,应用电子系统的设计也是根据功能和参数要求设计系统,但与传统方法有着本质的差别。SoC不是以功能电路为基础的分布式系统综合技术,而是以功能IP为基础的系统固件和电路综合技术。首先,功能的实现不再针对功能电路进行综合,而是针对系统整体固件实现进行电路综合,也就是利用IP技术对系统整体进行电路结合。其次,电路设计的最终结果与IP功能模块和固件特性有关,而与PCB板上电路分块的方式和连线技术基本无关。因此,使设计结果的电磁兼容特性得到极大提高。换句话说,就是所设计的结果十分接近理想设计目标。

图1-20 基于FPGA的SoC设计流程图

2. 固件集成是SoC的基础设计思想

在传统分布式综合设计技术中,系统的固件特性往往难以达到最优,原因是所使用的是分布式功能综合技术。一般情况下,功能集成电路为了满足尽可能多地使用面,必须考虑两个设计目标:一个是能满足多种应用领域的功能控制要求目标;

另一个是要考虑满足较大范围应用功能和技术指标。因此,功能集成电路(也就是定制式集成电路)必须在I/O和控制方面附加若干电路,以使一般用户能得到尽可能多的开发性能。从而导致定制式电路设计的应用电子系统不易达到最佳,特别是固件特性更是具有相当大的分散性。

对于SoC来说,从SoC的核心技术可以看出,使用SoC技术设计应用电子系统的基本设计思想就是实现全系统的固件集成。用户只需根据需要选择并改进各部分模块和嵌入结构,就能实现充分优化的固件特性,而不必花时间熟悉定制电路的开发技术。固件集成的突出优点就是系统能更接近理想系统,更容易实现设计要求。

3. 嵌入式系统是SoC的基本结构

在使用SoC技术设计的应用电子系统中,可以十分方便地实现嵌入式结构。各种嵌入结构的实现十分简单,只要根据系统需要选择相应的内核,再根据设计要求选择与之相配合的IP模块,就可以完成整个系统硬件结构。尤其是采用智能化电路综合技术时,可以更充分地实现整个系统的固件特性,使系统更加接近理想设计要求。必须指出,SoC的这种嵌入式结构可以大大地缩短应用系统设计开发周期。

4. IP是SoC的设计基础

传统应用电子设计工程师面对的是各种定制式集成电路,而使用SoC技术的电子系统设计工程师所面对的是一个巨大的IP库,所有设计工作都是以IP模块为基础。SoC技术使应用电子系统设计工程师变成了一个面向应用的电子器件设计工程师。由此可见,SoC是以IP模块为基础的设计技术,IP是SoC设计的基础。 GpYytH2+CNIl17MQgoPTDXVfnR43Uw5EMyzl6DRrrlDM4QQGigyeUiVcuZpQhPSH

点击中间区域
呼出菜单
上一章
目录
下一章
×