原创 可编程片上系统(SOPC)设计技术

2010-5-13 18:30 1934 4 4 分类: FPGA/CPLD

1. FPGA和SOPC概述


      1.1 FPGA的特点及最新进展
      嵌入式系统是一个面向应用、技术密集、资金密集、高度分散、不可垄断的产业,随着各个领域应用需求的多样化,嵌入式设计技术和芯片技术也经历着一次又一次的革新。


      虽然ASIC的成本很低,但设计周期长、投入费用高、风险较大,而可编程逻辑器件(Programmable Logical Device)设计灵活、功能强大,尤其是高密度现场可编程逻辑器件(Field Programmable Gate Array)其设计性能已完全能够与ASIC媲美,Xilinx公司最新推出的SpartanIII系列高性价比FPGA,其批量成本已经达到10美元/100万门的成都,其性能价格比已足以与ASIC抗衡。因此,FPGA在嵌入式系统设计领域已占据着越来越重要的地位。


      FPGA的基本结构由以下几个部分构成:


      可编程逻辑功能模块CLB(Configurable Logic Blocks) 
      可编程输入输出模块IOB(Input/Output Blocks) 
      可编程内部互连资源PI(Programmable Interconnection) 
      随着工艺的进步和应用系统需求,一般在FPGA中还包含以下可选资源:


      存储器资源(Block RAM和Select RAM) 
      数字时钟管理单元(分频/倍频、数字延迟) 
      I/O多电平标准兼容(Select I/O) 
      算数运算单元(乘法器、加法器) 
      特殊功能模块(MAC等硬IP核) 
      微处理器(PPC405等硬处理器)
  


      以FPGA为核心的PLD产品是近几年集成电路中发展得最快的产品。随着FPGA性能的高速发展和设计人员自身能力的提高,FPGA将进一步扩大可编程芯片的领地,将复杂专用芯片挤向高端和超复杂应用。目前FPGA的发展趋势主要体现在以下几个方面:


      向更高密度、更大容量的千万门系统级方向迈进 
      向低成本、低电压、微功耗、微封装和绿色化发展 
      IP资源复用理念将得到普遍认同并成为主要设计方式 
      MCU、DSP、MPU等嵌入式处理器IP将成为FPGA应用的核心
  


      随着处理器以IP的形式嵌入到FPGA中,ASIC和FPGA之间的界限将越来越模糊,未来的某些电路版上可能只有这两部分电路:模拟部分(包括电源)和一块FPGA芯片,最多还有一些大容量的存储器。Xilinx等公司最新一代FPGA:Spartan II/E、Virtex II Pro,尤其是SpartanIII及其相关IP Core的推出,使我们有理由相信,可编程片上系统(System on Programmable Chip)的时代已经离我们不远了。


      1.2可编程片上系统(SOPC)的基本特征
  


      可编程片上系统(SOPC)是一种特殊的嵌入式系统:首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。


      SOPC结合了SOC和FPGA各自的优点,一般具备以下基本特征:


      至少包含一个以上的嵌入式处理器IP Core 
     具有小容量片内高速RAM资源 
     丰富的IP Core资源可供灵活选择 
     足够的片上可编程逻辑资源 
     处理器调试接口和FPGA编程接口共用或并存 
     可能包含部分可编程模拟电路 
     单芯片、低功耗、微封装
  


       SOPC设计技术实际上涵盖了嵌入式系统设计技术的全部内容,除了以处理器和实时多任务操作系统(RTOS)为中心的软件设计技术、以PCB和信号完整性分析为基础的高速电路设计技术以外,SOPC还涉及目前以引起普遍关注的软硬件协同设计技术。由于SOPC的主要逻辑设计是在可编程逻辑器件内部进行,而BGA封装已被广泛应用在微封装领域中,传统的调试设备,如:逻辑分析仪和数字示波器,已很难进行直接测试分析,因此,必将对以仿真技术为基础的软硬件协同设计技术提出更高的要求。同时,新的调试技术也已不断涌现出来,如Xilinx公司的片内逻辑分析仪Chip Scope ILA就是一种价廉物美的片内实时调试工具;而在应对复杂设计方面,诸如Xilinx公司的System Generator for DSP就是一个利用可编程硬件逻辑实现数字信号处理算法的强大辅助工具。


2. 基于Xilinx FPGA的SOPC设计方法 
      


       2.1 FPGA基本开发流程与开发工具介绍
  


       FPGA基本开发流程主要包括设计输入(Design Entry);设计仿真(Simulation);设计综合(Synthesize);布局布线(Place & Route);配置(Configuration)五个主要步骤。
  


       设计输入主要有原理图输入和HDL输入两种方式,一般开发商都同时支持两种输入方式。有些熟悉硬件设计的工程师开始喜欢利用原理图进行设计,这种方法非常直观,但基于可移植性和规范化方面的考虑,绝大部分深入FPGA设计和ASIC设计的工程师最终都将统一到HDL平台上来。
  


       设计仿真包含功能仿真和时序仿真两项主要内容,功能仿真忽略了综合和布局布线导致的时延等因素,仅仅从逻辑上进行仿真,这对设计思路的验证是有帮助的,但必须通过时序仿真作进一步验证,发现并修正时序问题。
  


       设计综合将HDL语言生成用于布局布线的网表和相应的约束。综合效果直接导致设计的性能和逻辑门的利用效率,因此,许多可编程逻辑器件开发商都支持第三方综合和仿真工具,著名的有:Synplicity、Synopsys和ModelSim等。
  


       布局布线工具利用综合生成的网表,在FPGA内部进行布局布线,并生成可用于配置的比特流文件。布局布线工具与可编程逻辑器件工艺及其布线资源密切相关,一般由可编程逻辑器件开发商直接提供。
  


       随着可编程逻辑器件容量的不断增大和设计性能要求的不断提高,对传统的FPGA开发工具提出了挑战。以Xilinx公司为例,应IP Core开发和集成的需要,开发了IP Core使用工具Core Generator并内嵌了IP Core包装工具IP Capture;提供了模块化设计工具Modular Design用于超大规模设计的团队项目开发;用片内逻辑分析仪ChipScope ILA进行片内逻辑调试;Xpower则用于设计功耗分析并得出相应的解决方案;还有System Generator结合Simulink甚至可以简单地实现数字信号处理模型(如FIR滤波器和FFT等)的FPGA硬件实现。此外,一些有争议的设计工具,如基于C语言的FPGA开发工具DK1等为超大容量FPGA设计和复杂逻辑设计提供了值得尝试的途径。


       2.2 处理器IP Core:Micro Blaze
  


       将处理器IP Core嵌入到可编程逻辑器件是基于FPGA的嵌入式系统设计的前提条件,目前,国内外许多单位已成功的将51单片机、ARM和PPC等处理器内核嵌入各种可编程逻辑器件并进行了应用系统的设计,其中最著名的要数Xilinx公司的Micro Blaze和Altera公司的Nois了。Xilinx从Pico Blaze到Micro Blaze,再到PPC405,完成了从8位单片机到32位微处理器的逐步完善和性能提升。
  


       Micro Blaze 是一个专门为Xilinx FPGA优化的RISC嵌入式软处理器,符合IBM Core Connect标准,能够与PPC405系统无缝连接,Micro Blaze软处理器内核的结构如图2所示,它具备以下基本特征:


       32个32bit通用寄存器 
       硬件乘法器(仅限Virtex II系列) 
       32bit地址总线和32bit数据总线 
       三操作数32bit指令字,两种寻址模式 
       独立的片内程序32bit总线和数据总线 
       片内总线遵循OPB(On-chip Peripheral Bus)标准 
       通过LMB(Local Memory Bus)访问片内Block RAM
  


       Micro Blaze是一个非常简化,但有具有较高性能的软处理器内核,他可以在性价比很高的Spartan II(-E)系列FPGA上实现,系统时钟频率为75MHZ,仅占用400个Slice资源,相当于10万门FPGA容量的三分之一,而10万门的Spartan II系列FPGA的批量目标市场价格仅为10美元左右,非常适合消费类嵌入式产品应用需求。


       2.3 基于EDK3.2的SOPC软硬件开发
  


       基于嵌入式处理器内核的SOPC系统开发是一个软硬件协同设计的过程,一方面,它极大地提高了系统设计的灵活性和快速的设计迭代周期,使整个开发过程变得更加可控;另一方面,一些新的调试和设计问题,如逻辑分析仪和数字示波器的接入等,对调试设备和调试手段提出了更高的要求,为了尽可能避免问题的产生,要求有更好的设计工具和集成开发环境,保证IP Core资源的可用性和设计实现的一致性,让设计工程师从烦琐的内部时序调试中解放出来。
  


       Xilinx提供了针对Micro Blaze Core应用系统开发的集成开发环境EDK3.2,该开发环境包含了用于硬件描述和系统生成的Platform Generator、用于软件设计和编译的Micro Blaze IDE,GDB调试可通过FPGA配置JTAG接口进行,无需任何附加的调试硬件,配合Foundation ISE5.2和FPGA目标板即可进行全功能开发,EDK还包含了UART、GPIO、Watchdog、Timer/Counter、EMC和中断控制等基本处理器外设库,用户可以添加兼容OPB总线标准的任意IP Core。Insight和依元素科技均提供了功能全面的Micro Blaze Core评估工具。
  


       PPC405 Core是一个高性能的处理器内核,它具有独立于FPGA JTAG的调试端口和更加复杂的调试功能,我们甚至可以将基于PPC405 Core的SOPC调试直观地理解为基于IBM PPC405处理器和大容量FPGA的单板机调试,只不过这个单板机无需进行传统的PCB设计和调试,设计迭代过程全部在计算机上进行。PPC405 Core的软件集成开发环境支持传统的IBM PPC405开发环境,Xilinx提供了相应的系统集成开发环境和GNU软件开发工具包支持。第三方软件开发商Wind River和Montvisa已分别宣布其VxWorks和HardHat Linux实时操作系统(RTOS)及其集成开发环境支持Virtex II Pro 系列FPGA,Insight和Avnet已开始销售含有Virtex II Pro FPGA的高端评估板。依元素科技也推出了用于开发PowerPC系列处理器的GNU集成开发工具和利刃?系列调试工具,以及含有PowerPC处理器的原型评估板。


       2.4 基于ChipScope Pro的FPGA调试技术
  


       新一代FPGA器件所具有的规模、速度和板级要求使得利用传统逻辑分析方法来调试采用FPGA器件进行的设计几乎是不可能的。CS和BGA封装无法提供进行物理探测用的外露引脚。为了解决这些问题,Xilinx公司推出了ChipScope Pro 片内逻辑分析仪解决方案。基于开创性的ChipScope ILA产品,ChipScope Pro实际上是将逻辑分析仪(ILA)和总线分析仪(IBA)核心嵌入到了您的设计中。这些嵌入核心允许用户观察所使用的FPGA器件中的所有内部信号和结点,此外还包括对业界领先的Virtex-II Pro? FGPA 器件内所集成的IBM PowerPC 405处理器的IBM CoreConnect片上外设总线的分析支持。


       ChipScope Pro主要包含以下几个核心部件:
  


       (1) ChipScope Pro核心生成器:为综合控制器(ICON)核心、CoreConnect? OPB的总线分析核心(IBA/OPB)、逻辑分析(ILA)核心及安捷伦跟踪核心(ILA/ATC)提供网表和实例化的模板;
  (2) ChipScope Pro核心插入器:自动地为用户已经综合完的设计中插入ICON、ILA和ILA/ATC的核心;
  (3) ChipScope Pro分析仪软件:提供器件的配置、触发的设定和ILA、IBA/OPB及ILA/ATC核的踪迹显示功能。各种核心实现了信号的触发和捕获,而ICON核心专门用于与边界扫描(Boundary Scan)管脚的通信。
  


       ChipScope Pro分析仪软件支持所有通过JTAG边界扫描链连接PC与器件的下载电缆,如Xilinx的并口电缆 Cable III、Cable IV和依元素提供的利刃系列下载调试电缆等。
  


       用户可以使用ChipScope Pro 核心生成器生成的例示代码插入HDL源程序中,从而将ICON、ILA等核心插入到他们的设计中。当然,你也可以使用ChipScope Pro核心插入器将ICON、ILA等核心直接插入到已经综合完成的设计网表中。然后,利用Xilinx ISE 5.2i的综合工具进行综合布线,生成配置文件。这样用户就可以通过ChipScope Pro分析仪软件将配置数据流下载到待测的器件中,进行分析测试。


3. IP Core设计及其在SOPC中的应用 
       3.1 IP资源复用与IP Core设计方法
  


       由于芯片设计的复杂性和产品面市时间对于保证终端市场的成功率至关重要,设计师不断寻求缩短设计周期的方法,以及更有效的设计方式。随着我们步入系统级芯片时代,利用IP内核和可编程逻辑进行设计复用显得日趋重要。IP资源复用(IP Reuse)是指在集成电路设计过程中,通过继承、共享或购买所需的智力产权内核,然后再利用EDA工具进行设计、综合和验证,从而加速流片设计过程,降低开发风险。IP Reuse已逐渐成为现代集成电路设计的重要手段,在日新月异的各种应用需求面前,超大规模集成电路设计时代正步入一个IP整合的时代。
  


       IP Core是IP Reuse的载体和核心内容,基于应用需求、规范协议和行业标准的不同,IP Core的内容也是千差万别的。但是,为了使IP Core易于访问和易于集成,其设计必须遵循一定的规范和准则。 在IP Core的开发方面,许多开放性的团体都付出了巨大的努力来推动各种IP Core的开发和IP Reuse理念的推广,其中比较著名的是Open Cores开发组织(http://www.opencores.org)。他们不仅开发了许多开放源代码的IP Core,涵盖了处理器IP、处理器外设控制器IP、算术运算单元IP、DSP算法IP等方面,而且编写了详细的IP Core编码风格和项目模板。国内开放性团体IP Core开发小组(http://www.IPcore.com.cn)也在IP Core开发和IP Reuse理念的推广和普及方面进行了不懈努力。
  


       编码风格(Coding Style)是基于HDL的IP Core源码编写的指导性文档,其可读性直接关系到IP Core的易于访问和易于集成性。编码风格一般包含几个方面的约定:文件头和版本说明、联机注释、命名规则、可综合编码等。


       项目模板则规定了完成一个IP Core设计包含的主要内容及所需提供的文档,项目模板内容及其文档直接关系到IP Core的易于集成特性,一个IP Core必须是完整的、经过全面验证的,才能顺利地集成到应用项目中去。项目模板一般包含几个方面的内容:项目定义、接口说明、系统结构和模块、设计文档说明、测试验证报告、约束和实现、版本说明、试用评价以及参考文献等。


       3.2 IP Core验证:仿真、测试与评估板
  


       IP Core设计在完成编码阶段以后,对其功能的测试验证是一项非常重要的内容,因为这直接关系到IP Core资源的可用性。仅仅通过功能仿真、时序仿真和测试向量验证的IP Core是不完备的,它必须通过实际系统的验证。国际上各大公司通常采用的办法是评估板验证,也即构建一个与实际系统IP Core应用一致的硬件环境,通过下载FPGA配置使其具备相应的逻辑功能,并进行实物仿真,图3是依元素科技开发的专用于SOPC和IP Core设计验证的评估板实物照片和原理框图。


       4. SOPC设计应用实例:单芯片动态可重构信号处理器
  


       数字信号处理器是一种为高度密集运算量而专门优化的嵌入式处理器,典型的有TI的TMS320系列和AD公司的ADSP,其中TI公司最新产品TMS32C641X系列处理器工作频率高达1GHZ,而处理能力可达数GFLOPS。但是,归根结底,数字信号处理器还是一种基于软件程序顺序执行指令的串行处理器,从微观上看,处理器中某一特定时刻,只有一个算数逻辑单元(MAU)在执行特定的指令,如果要在硬件上实现多个MAU并行,只能通过将多个DSP器件并行处理,这样必然导致PCB设计及调试方面复杂性的大幅度提高,而且DSP器件之间的藕合程度、处理任务划分与进程间通信等方面的灵活性也存在一定问题。基于可编程逻辑器件实现的可编程片上系统设计技术则从很大程度上克服了上述问题,SOPC的处理器IP、控制器IP、信号处理算法IP等各种数字逻辑都是基于可编程逻辑在同一个FPGA芯片内部实现,可以任意添加、裁减以及改变连接关系,而且它们之间的互连方式是比板级PCB互连更具有紧藕合特征的片内互连。


       基于SOPC设计技术实现的单芯片动态可重构信号处理器结构及接口如图4所示:


       5. 结束语
  


       随着新新一代超大规模可编程逻辑器件工艺的不断进步和开发工具的不断完善,以FPAG为基础的SOPC技术将更加广泛的应用在各个领域,FPGA的将在更广泛的范围普及,成本和价格将不再成为我们拒绝在设计中采用FPGA的理由。我们有理由相信,SOPC、IRL等设计理念将会对我们的设计方式产生新的变革,也必将给每一位嵌入式工程师带来有益的思路和更加宽广的创意空间,从而为更新日益加速的嵌入式产品设计注入新的活力。


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条