1、微电子讲座之一微电子讲座之一 可重用设计方法在可重用设计方法在SOPC系统设计中的研究与实系统设计中的研究与实现现主要内容介绍可重用设计方法的概念和发展,系统级设计概介绍可重用设计方法的概念和发展,系统级设计概况、实现方式和设计方法。况、实现方式和设计方法。基于基于SoPC平台的可重用设计方法的拓宽平台的可重用设计方法的拓宽:详细阐详细阐述了述了SoPC系统平台在可重用设计方面和电子系统系统平台在可重用设计方面和电子系统级设计方面的方法和优势。级设计方面的方法和优势。基于基于DSPBullder的的SOPC系统级设计系统级设计:详细介绍详细介绍系统级设计工具系统级设计工具DSPBullder,
2、以及怎样在,以及怎样在SoPC平台上完成原型算法模块的设计。平台上完成原型算法模块的设计。引言近年来,随着可编程器件技术的进步,可编程逻辑近年来,随着可编程器件技术的进步,可编程逻辑阵列阵列FPGA逻辑容量不断提高而价格在不断的降低,逻辑容量不断提高而价格在不断的降低,在在FPGA上实现上实现SOC即即SOPC技术已成为了一种发技术已成为了一种发展趋势。展趋势。SOPC(System on Programmable Chip)是一种灵活、高效的是一种灵活、高效的soc解决方案。首先它是片上解决方案。首先它是片上系统系统(soC),由单个芯片完成整个系统的主要逻辑,由单个芯片完成整个系统的主要逻
3、辑功能。功能。其次它是可编程系统,具有灵活的设计方式,可裁其次它是可编程系统,具有灵活的设计方式,可裁减,可扩充,可升级,并具有软硬件体系可编程的减,可扩充,可升级,并具有软硬件体系可编程的功能。功能。将可重用设计方法与将可重用设计方法与SOPC技术相结合,将传统的技术相结合,将传统的停留在板级设计层面的嵌入式系统硬件设计提升到停留在板级设计层面的嵌入式系统硬件设计提升到基于可编程逻辑芯片上的系统设计,并将可重用设基于可编程逻辑芯片上的系统设计,并将可重用设计方法从计方法从SOC领域延伸到领域延伸到SOPC领域。领域。在在SOPC系统平台上将可重用设计方法扩展为四个系统平台上将可重用设计方法扩
4、展为四个方面:方面:可重构硬件平台、可重配置系统平台、可重构硬件平台、可重配置系统平台、IP核复用与核复用与IP核设计、原型算法可重用设计与验证。核设计、原型算法可重用设计与验证。可重用设计方法定义可重用设计方法定义20世纪世纪70年底以来,微电子技术飞速发展,集成年底以来,微电子技术飞速发展,集成电路设计和工艺水平有了很大提高。电路设计和工艺水平有了很大提高。如今人类已经可以设计并制造出包含上亿个晶体管如今人类已经可以设计并制造出包含上亿个晶体管的超大规模集成电路,集成在单个芯片上的功能也的超大规模集成电路,集成在单个芯片上的功能也在不断增加。从而使得以往由许多芯片组成的电子在不断增加。从而
5、使得以往由许多芯片组成的电子系统集成在一个单片硅片成为可能,构成所谓的系统集成在一个单片硅片成为可能,构成所谓的片片上系统(上系统(soc)。)。与普通的集成电路(与普通的集成电路(IC)相比,)相比,SOC不再是一种功能单一不再是一种功能单一的单元电路,而是将大规模的数字逻辑和的单元电路,而是将大规模的数字逻辑和嵌入式处理器嵌入式处理器整整合在单个芯片上,集合模拟部件,形成模数混合、软硬件合在单个芯片上,集合模拟部件,形成模数混合、软硬件结合的完整的控制和处理片上系统。结合的完整的控制和处理片上系统。因此,当今电子系统设计已不再是利用各种通用集成电路因此,当今电子系统设计已不再是利用各种通用
6、集成电路实现板上系统(实现板上系统(SOB),即印刷电路板(),即印刷电路板(PCB)级的设计级的设计和调试,而是转向以专用集成电路(和调试,而是转向以专用集成电路(ASIC)或大规模或大规模FPGA以及以及CPLD为物理载体的系统芯片设计,前者称为为物理载体的系统芯片设计,前者称为SOC,后者称为后者称为SOPC(可编程片上系统)可编程片上系统)设计方法的转变设计方法的转变随着芯片制造工艺的变化,芯片的设计方法也发生了巨大随着芯片制造工艺的变化,芯片的设计方法也发生了巨大的改变。传统的方法是自上而下先写出所有模块的的改变。传统的方法是自上而下先写出所有模块的RTL编编码,再将这些模块集成到一
7、个共同的顶层设计下,最后再码,再将这些模块集成到一个共同的顶层设计下,最后再进行综合。这种方法对于复杂芯片的设计已经不再适应,进行综合。这种方法对于复杂芯片的设计已经不再适应,也满足不了快速变化的市场的要求也满足不了快速变化的市场的要求现在复杂芯片设计的有效方法就是现在复杂芯片设计的有效方法就是可重用设计可重用设计,即使用以即使用以前设计的核以及经过验证的核进行设计。前设计的核以及经过验证的核进行设计。可重用设计方法理念可重用设计方法理念随着嵌入式技术的不断完善与发展,现在的嵌入式系统设随着嵌入式技术的不断完善与发展,现在的嵌入式系统设计已经不再像早期那样,只要完成某个特定的功能就可以。计已经
8、不再像早期那样,只要完成某个特定的功能就可以。越来越多的越来越多的SoC芯片对系统性能芯片对系统性能稳定性、可靠性稳定性、可靠性有了越来有了越来越高的要求,越高的要求,SoC设计的焦点设计的焦点己经不再是某个新功能的设己经不再是某个新功能的设计和实现,而是如何去评估验证和集成多个己存在的软硬计和实现,而是如何去评估验证和集成多个己存在的软硬件模块。件模块。可重用设计方法可重用设计方法已经成为设计巨大容量芯片的必选方法,已经成为设计巨大容量芯片的必选方法,因为只有使用这种方法,我们才能在芯片设计过程中有效因为只有使用这种方法,我们才能在芯片设计过程中有效控制控制设计费用、缩短设计周期、提高设计质
9、量设计费用、缩短设计周期、提高设计质量。从。从SOC的的设计和实践中,人们认识到设计方法的革命就是要完成一设计和实践中,人们认识到设计方法的革命就是要完成一个转变,个转变,以功能设计为基础的传统流程转变为以功能组装以功能设计为基础的传统流程转变为以功能组装为基础的全新流程为基础的全新流程。可重用设计方法规范可重用设计方法规范可重用设计方法是基于知识产权核的,适用于设计可重用设计方法是基于知识产权核的,适用于设计可重用可重用核核或者或者集成可重用核集成可重用核的设计。的设计。知识产权核知识产权核是经过预先设计、是经过预先设计、预先验证,符合产业界普遍认同的设计规范和设计标准,预先验证,符合产业界
10、普遍认同的设计规范和设计标准,具有相对独立功能的具有相对独立功能的电路模块或子系统电路模块或子系统,可重用于,可重用于SOC、SoPC设计中。设计中。在可重用设计方法中最关键的技术就是在可重用设计方法中最关键的技术就是IP核的设计与验证核的设计与验证。可重用设计在大大提高电子系统设计效率的同时,也提出可重用设计在大大提高电子系统设计效率的同时,也提出了对了对IP核设计中代码、接口、验证、配置核设计中代码、接口、验证、配置等方面的更高要等方面的更高要求。求。研究内容研究内容 可重用设计方法学中对于可重用设计方法学中对于IP核设计及能够研究的核设计及能够研究的内容大体包括:内容大体包括:面向一般设
11、计问题设计面向一般设计问题设计 这就是意味这就是意味IP核必须很容易进行配置,以适用核必须很容易进行配置,以适用不同的应用不同的应用面向多种工艺设计面向多种工艺设计 对于对于IP软核,它必须能够面向不同的工艺库进软核,它必须能够面向不同的工艺库进行综合,从而产生令用户满意的结果行综合,从而产生令用户满意的结果面向多种模拟器的设计面向多种模拟器的设计 对于好的可重用设计,既要有对于好的可重用设计,既要有Verilog代码版本,代码版本,又有又有VHDL代码版本,能有各种版本的验证和测试代码版本,能有各种版本的验证和测试向量,而且能够运行在多个主流商用模拟器上。向量,而且能够运行在多个主流商用模拟
12、器上。面向标准的接口设计面向标准的接口设计 IP核设计要基于标准的接口,只有在没有标准核设计要基于标准的接口,只有在没有标准可遵循的时候才设计一些特殊、定制的接口可遵循的时候才设计一些特殊、定制的接口提供独立的验证提供独立的验证 可重用可重用IP核在集成到芯片之前必须经过全面、核在集成到芯片之前必须经过全面、独立的测试和验证,需要保持很高的测试覆盖率独立的测试和验证,需要保持很高的测试覆盖率验证要达到高度可信验证要达到高度可信 可重用可重用IP核需要进行极其严格的验证,甚至要建核需要进行极其严格的验证,甚至要建立一个物理原型并附加特定软件进行测试立一个物理原型并附加特定软件进行测试对于核的应用
13、和限制必须给予全面说明对于核的应用和限制必须给予全面说明 任何配置中的限制和参数选取,需要清楚地说明,特别任何配置中的限制和参数选取,需要清楚地说明,特别是配置方法、参数意义和可重用核接口要求及限制必须详是配置方法、参数意义和可重用核接口要求及限制必须详细说明。细说明。系统设计的第一步通常是创建系统的设计规范,包括开系统设计的第一步通常是创建系统的设计规范,包括开发、验证、细化等一整套的设计规范,甚至可以详细到可发、验证、细化等一整套的设计规范,甚至可以详细到可以开始以开始RTL编码。快速完成一套清晰、全面、一致的设计编码。快速完成一套清晰、全面、一致的设计规范是个非常困难的问题,而一个成功的
14、设计中,设计规规范是个非常困难的问题,而一个成功的设计中,设计规范阶段是最关键、最具有挑战性和最耗时的阶段范阶段是最关键、最具有挑战性和最耗时的阶段当前,有两种主要技术有助于描述软件、硬件规范,可使软、当前,有两种主要技术有助于描述软件、硬件规范,可使软、硬件更具有鲁棒性和可用性,它们是形式规范和可执行规范硬件更具有鲁棒性和可用性,它们是形式规范和可执行规范形式化规范:在形式规范中,设计的特征被一种与任何实现形式化规范:在形式规范中,设计的特征被一种与任何实现都不相关的形式定义下来。一旦设计采用了形式化规范,就都不相关的形式定义下来。一旦设计采用了形式化规范,就可以利用形式化方法来证实实现是否
15、满足规范的要求(利用可以利用形式化方法来证实实现是否满足规范的要求(利用属性检查)属性检查)可执行规范:可执行规范对于描述大多数设计中的功能行为可执行规范:可执行规范对于描述大多数设计中的功能行为更加有用。可执行规范实际上是对软、硬件的一种抽象模型。更加有用。可执行规范实际上是对软、硬件的一种抽象模型。对一些高层次的规范用对一些高层次的规范用system c或或HVL(硬件验证语言)硬件验证语言)书写。在低层次通常用书写。在低层次通常用verilog或或VHDL语言描述语言描述采用可重用设计方法的意义采用可重用设计方法的意义可重用设计方法己经成为可重用设计方法己经成为SoC设计团队必须采用的一
16、种设设计团队必须采用的一种设计方法,也正在被世计方法,也正在被世 界上越来越多的可重用界上越来越多的可重用IP开发团队和开发团队和SoC集成设计者使用。偶然地重用可以带来集成设计者使用。偶然地重用可以带来2一一3倍的效益倍的效益;而大多数而大多数soc设计明确要求使用可重用模块。因为可重用设计明确要求使用可重用模块。因为可重用IP核设计需要花费比一般设计更多的时间。所以只有专门核设计需要花费比一般设计更多的时间。所以只有专门的公司或团队来负责可重用模块的开发,的公司或团队来负责可重用模块的开发,可重用模块设计可重用模块设计就必须走向标准化。就必须走向标准化。因此可重用设计方法的最大意义在于使整
17、个芯片设计行业因此可重用设计方法的最大意义在于使整个芯片设计行业划分两类划分两类:IP核集成或使用者核集成或使用者和和专业的专业的IP核设计或开发者核设计或开发者。可重用设计方法不仅限于数字可重用设计方法不仅限于数字IP核重用的范畴和核重用的范畴和SoC设计,随着可重用设计方法的不断完善,势必设计,随着可重用设计方法的不断完善,势必在模拟在模拟IP核和软件的可重用设计上也会逐渐受到核和软件的可重用设计上也会逐渐受到重视。重视。将可重用设计方法从将可重用设计方法从SoC设计领域延伸到设计领域延伸到SoPC设设计领域,从可重用设计方法角度阐述基于计领域,从可重用设计方法角度阐述基于SoPC的的嵌入
18、式系统设计。嵌入式系统设计。ESL系统级设计系统级设计ESL系统级设计基本概念系统级设计基本概念电子系统级电子系统级ESL(Electronie system Level)设计方法设计方法是从算法建模演变而来的,是从算法建模演变而来的,ESL设计已经演变为嵌入式系设计已经演变为嵌入式系统软硬件设计、验证和调试的一种补充方法学。这些嵌入统软硬件设计、验证和调试的一种补充方法学。这些嵌入式系统包括式系统包括soc系统、系统、FPGA系统、板上系统、以及多板级系统、板上系统、以及多板级系统。系统。ESL以抽象方式来描述以抽象方式来描述SOC系统,给软硬件工程师提供一系统,给软硬件工程师提供一个虚拟的
19、硬件原型平台,用以进行硬件系统结构的探察和个虚拟的硬件原型平台,用以进行硬件系统结构的探察和软件系统的开发。在软件系统的开发。在ESL设计中,系统的描述和仿真速度设计中,系统的描述和仿真速度快,使设计师有充足的时间分析设计内容。快,使设计师有充足的时间分析设计内容。ESL设计不仅能应用在设计初期与系统架构规划阶段,也设计不仅能应用在设计初期与系统架构规划阶段,也能支持整个硬件与软件协同设计的流程。能支持整个硬件与软件协同设计的流程。SOC的设计趋势正从的设计趋势正从RTL向向ESL转移。转移。ESL可以帮助设计者可以帮助设计者从更高层次进行电路设计,它能协助工程师进行系统级设计、从更高层次进行
20、电路设计,它能协助工程师进行系统级设计、结构定义、软硬件分割和协同设计,建立虚拟原型机,以及结构定义、软硬件分割和协同设计,建立虚拟原型机,以及验证不同构架方案的可行性。验证不同构架方案的可行性。ESL设计的核心设计的核心TLM(Transaction Level Modeling)事事务级建模。目前的务级建模。目前的ESL工具通常采用工业标准语言进行建模,工具通常采用工业标准语言进行建模,如如c/c、system、system Verilog等。等。在基于在基于FPGA的的SocPC平台上,还可以使用平台上,还可以使用MATLAB/Simulink进行建模。用基于模型的设计方法,以系统模型取
21、进行建模。用基于模型的设计方法,以系统模型取代书面规范。代书面规范。系统级设计流程为了迎接系统设计所带来的挑战,设计师正在将他为了迎接系统设计所带来的挑战,设计师正在将他们的设计方法转移到两种主要的设计方法上:们的设计方法转移到两种主要的设计方法上:从瀑布式模式转移到螺旋式模式上从瀑布式模式转移到螺旋式模式上从自顶向下的方法转变为自顶向下和自底向上的混从自顶向下的方法转变为自顶向下和自底向上的混合方法合方法由图可以看出传统的瀑布模式,项目开发是从一个阶段到由图可以看出传统的瀑布模式,项目开发是从一个阶段到另一阶段按步骤推进的,后一阶段完成后,不会再返回到另一阶段按步骤推进的,后一阶段完成后,不
22、会再返回到前一阶段。这样的模式中,设计项目通常是由一个团队移前一阶段。这样的模式中,设计项目通常是由一个团队移交到下一个团队,团队之间没有交流。另外,此模式在上交到下一个团队,团队之间没有交流。另外,此模式在上一阶段未完成之前,不允许下一阶段开始。在以前大多数一阶段未完成之前,不允许下一阶段开始。在以前大多数项目开发中,软件设计总是紧跟着硬件设计之后就开始了,项目开发中,软件设计总是紧跟着硬件设计之后就开始了,然而由于没有硬件平台供软件进行调试,软件开发团队也然而由于没有硬件平台供软件进行调试,软件开发团队也只能等待,所以软、硬件的开发总是顺序进行。只能等待,所以软、硬件的开发总是顺序进行。随
23、着随着复杂度的增加复杂度的增加、几何尺寸的缩小几何尺寸的缩小和和上市时间的上市时间的压力压力,许多设计团队己经从旧的瀑布模式转移到螺,许多设计团队己经从旧的瀑布模式转移到螺旋模式上。在此模式下,设计团队是在多个层面上旋模式上。在此模式下,设计团队是在多个层面上同时开始设计,增强了设计的竞争力。同时开始设计,增强了设计的竞争力。上图给出了螺旋式系统设计流程,这种流程的特征上图给出了螺旋式系统设计流程,这种流程的特征包括包括:软件和硬件的开发并行软件和硬件的开发并行;验证和综合的过程并行验证和综合的过程并行;规划和布局、布线包含在综合过程中规划和布局、布线包含在综合过程中;只有当以前设计的软、硬核
24、不可用时,才开发新只有当以前设计的软、硬核不可用时,才开发新模块模块;整个过程中有多次迭代。整个过程中有多次迭代。经典的自顶向下的设计流程式设计中常采用的,它开始于经典的自顶向下的设计流程式设计中常采用的,它开始于规范制定、功能划分,结束于系统集成和验证。但是像瀑规范制定、功能划分,结束于系统集成和验证。但是像瀑布模式一样,自顶向下的开发方式也是一种可以实现的理布模式一样,自顶向下的开发方式也是一种可以实现的理想状态。因为它是假定底层的模块己经设计好了,如果某想状态。因为它是假定底层的模块己经设计好了,如果某一模块不合一模块不合 适本次设计,则设计需要重新再反复一次。正因如此,设计适本次设计,
25、则设计需要重新再反复一次。正因如此,设计团队通常选择自顶向下和自底向上的混合方法。在这一设团队通常选择自顶向下和自底向上的混合方法。在这一设计过程中,可重用核库可以提供一些已验证过的核,以满计过程中,可重用核库可以提供一些已验证过的核,以满足设计的需要。足设计的需要。ESL设计步骤与以往的与以往的SOC系统级设计不同,系统级设计不同,ESL设计可分设计可分3步走。步走。首先是首先是功能设计功能设计,在这一步需要建立并且验证所开发产品,在这一步需要建立并且验证所开发产品的功能模型,通常包括各个部分的功能,各个部分之间的的功能模型,通常包括各个部分的功能,各个部分之间的通信、数据流控制输入输出端口
26、等。通信、数据流控制输入输出端口等。其次是基于应用的其次是基于应用的结构设计结构设计 此时需要描述整个系统平台,将功能模型映射到平台上,此时需要描述整个系统平台,将功能模型映射到平台上,并进行验证,找到最理想的情况。并进行验证,找到最理想的情况。最后是基于平台的结构设计最后是基于平台的结构设计 这一步需要对平台进行低层次的描述,建立和谐的硬这一步需要对平台进行低层次的描述,建立和谐的硬件结构。件结构。电子系统设计流程首先接受一个设计定义的输入,这个定义可以是文本、图表、算法或首先接受一个设计定义的输入,这个定义可以是文本、图表、算法或某种描述语言。根据这个输入的定义,完成算法的开发,提出一种系
27、某种描述语言。根据这个输入的定义,完成算法的开发,提出一种系统的架构,用统的架构,用ESL语言来描述这种系统架构,即系统级描述,并在此语言来描述这种系统架构,即系统级描述,并在此基础上完成软硬件的初步划分。基础上完成软硬件的初步划分。完成基本的软硬件划分后,开始软件和系统级硬件的设计。这里的系完成基本的软硬件划分后,开始软件和系统级硬件的设计。这里的系统级硬件设计是指对功能单元的高抽象层次的建模,完成功能设计。统级硬件设计是指对功能单元的高抽象层次的建模,完成功能设计。软件设计是根据架构中指定的处理器和软件任务的定义完成应用软件软件设计是根据架构中指定的处理器和软件任务的定义完成应用软件的设计
28、。的设计。软硬件协同验证,根据协同验证的结构反馈给体系结构和软硬件划分,软硬件协同验证,根据协同验证的结构反馈给体系结构和软硬件划分,根据性能成本等因素重新做出调整,这是一个重复的过程,在整个设根据性能成本等因素重新做出调整,这是一个重复的过程,在整个设计过程中要根据验证的结果对系统和设计做出调整。计过程中要根据验证的结果对系统和设计做出调整。完成验证的硬件和软件就可以组成一个完整的系统设计。完成验证的硬件和软件就可以组成一个完整的系统设计。ELS系统级设计特点ESL设计受到欢迎,主要有三方面的功能设计受到欢迎,主要有三方面的功能:功能正确和时钟精确型的执行环境使提前开发软件成为可功能正确和时
29、钟精确型的执行环境使提前开发软件成为可能,缩短了软硬件集成时间能,缩短了软硬件集成时间;系统设计更早的和验证流程结系统设计更早的和验证流程结合,能确定工程开发产品的正确性合,能确定工程开发产品的正确性;在抽象层设置的约束和在抽象层设置的约束和参数能传递到各种用于实现的工具中。参数能传递到各种用于实现的工具中。ESL设计领域有三种不同的层次设计领域有三种不同的层次:在最高的层次是算法开发在最高的层次是算法开发;在设计和实现层次是系统构架开发在设计和实现层次是系统构架开发;接着就是设计的自动生成过程。接着就是设计的自动生成过程。ESL设计有以下几个特点设计有以下几个特点:1.更早的进行软件开发更早
30、的进行软件开发2.更高层次上的硬件设计更高层次上的硬件设计3.设计的可配置性和自动生成设计的可配置性和自动生成4.方便的架构设计方便的架构设计5.快速设计和验证快速设计和验证ESL系统级设计的挑战首先是首先是IP核问题,核问题,在在ESL设计中设计中IP无疑起到了很重要的作用。虽然在无疑起到了很重要的作用。虽然在ESL设计中,功能模块的设计在较高的抽象层次上完成,设计中,功能模块的设计在较高的抽象层次上完成,但这相对于但这相对于RTL模块的设计速度要快很多。但要完成设计模块的设计速度要快很多。但要完成设计和验证众多的功能模块,没有专业的和验证众多的功能模块,没有专业的IP核提供商也是难以核提供
31、商也是难以想象的,而像处理器等重要的虚拟模型需要由想象的,而像处理器等重要的虚拟模型需要由ESL工具或工具或专业的专业的IP提供商来提供,而提供商来提供,而IP的可配置性决定了他们能否的可配置性决定了他们能否工作在不同的平台上。工作在不同的平台上。其次是设计方法学的发展,其次是设计方法学的发展,ESL是一个新的设计方法,需是一个新的设计方法,需要在设计流程和设计方法学上进一步探索。要在设计流程和设计方法学上进一步探索。最后是设计人员观念的转变,传统的软件工程师、硬件工最后是设计人员观念的转变,传统的软件工程师、硬件工程师和体系架构工程师是各自分立,而程师和体系架构工程师是各自分立,而ESL设计
32、需要他们设计需要他们结合在一起而不是分离。结合在一起而不是分离。SOPC技术概述SoPC是一种灵活、高效的是一种灵活、高效的SOC解决方案。它具有双重含解决方案。它具有双重含义义:首先它是片上系统首先它是片上系统(SoC),由单个芯片完成整个系统的,由单个芯片完成整个系统的主要逻辑功能主要逻辑功能;其次它是可编程系统,具有灵活的设计方式,可裁减,可其次它是可编程系统,具有灵活的设计方式,可裁减,可扩充,可升级,并具有软硬件在系统可编程的功能。扩充,可升级,并具有软硬件在系统可编程的功能。SOPC是是PLD和和AsIC技术融合的结果。与传统的系统设计技术融合的结果。与传统的系统设计相比相比SoP
33、C继承了继承了SoC的优点。的优点。此外,此外,SoPC将处理器、存储器、将处理器、存储器、I/O口等系统设计需要口等系统设计需要的功能模块集成到一个的功能模块集成到一个PLD器件上,构建成一个可编程的器件上,构建成一个可编程的片上系统。下图表示了片上系统。下图表示了SoC到到SoPC的转变,以往在的转变,以往在ASIC芯片实现的众多功能模块以芯片实现的众多功能模块以IP核集成的方式在核集成的方式在FPGA芯片芯片内实现,系统功能更具灵活性。内实现,系统功能更具灵活性。从系统集成的角度看,从系统集成的角度看,SoC是以不同模型的电路集成、不是以不同模型的电路集成、不同工艺的集成作为支持基础的。
34、所以,要实现同工艺的集成作为支持基础的。所以,要实现SoC,首先,首先必须重点研究必须重点研究器件的结构器件的结构与设计技术、设计技术、VLSI设计技术、工设计技术、工艺兼容技术、信号处理技术、测试与封装技术等艺兼容技术、信号处理技术、测试与封装技术等,这就需这就需要规模较大的专业设计队伍,相对较长的开发周期和高昂要规模较大的专业设计队伍,相对较长的开发周期和高昂的开发费用,并且涉及到大量的开发费用,并且涉及到大量集成电路后端设计和微电子集成电路后端设计和微电子技术技术的专门知识,因此设计者在转向的专门知识,因此设计者在转向SOC的过程中也面临的过程中也面临着巨大的困难。着巨大的困难。SoC面
35、临上述诸多困难的原因在于面临上述诸多困难的原因在于SoC技术基于超大规模技术基于超大规模专用集成电路,因此,整个设计过程必须实现完整的定制专用集成电路,因此,整个设计过程必须实现完整的定制或半定制集成电路设计流程。或半定制集成电路设计流程。美国美国ALTERA公司在公司在2000年提出的年提出的SoPC技术则提供了技术则提供了另一种有效地解决方案,即用大规模编程器件的另一种有效地解决方案,即用大规模编程器件的FPGA来来实现实现SoC的功能。的功能。SoPC与与SoC的区别就是的区别就是FPGA与与AsIC区别。区别。SoPC是是SoC发展的新阶段,代表了当今电子设计的发展方向。发展的新阶段,
36、代表了当今电子设计的发展方向。其基本特是设计人员采用自顶向下的设计方法,对整个系其基本特是设计人员采用自顶向下的设计方法,对整个系统进行方案设计和功能划分,最后系统的核心电路在可编统进行方案设计和功能划分,最后系统的核心电路在可编程器件上实现。程器件上实现。随着百万门级以上的随着百万门级以上的FPGA芯片、功能复杂的芯片、功能复杂的IP核、可重核、可重构的嵌入式处理器核以及各种功能强大的开发工具的出现,构的嵌入式处理器核以及各种功能强大的开发工具的出现,SoPC已成为一种一般单位甚至个人都可以承担和使用的设已成为一种一般单位甚至个人都可以承担和使用的设计方法。计方法。SoPC基于基于FPGA芯
37、片,将处理器、存储器、芯片,将处理器、存储器、I/O口等系统口等系统设计需要的模块集成在一起,完成整个系统的主要逻辑功设计需要的模块集成在一起,完成整个系统的主要逻辑功能,具有设计灵活、能,具有设计灵活、可裁减、可扩充、可升级及软件、硬件在系统可编程的功可裁减、可扩充、可升级及软件、硬件在系统可编程的功能能。MCU、DSP、FPGAMCU(Micro Control Unit)、DSP(Digital Signal Processing)和和FPGA在现代嵌入式系统中都扮演着非常在现代嵌入式系统中都扮演着非常重要的角色,它们都具有各自的特点但又不能兼顾。重要的角色,它们都具有各自的特点但又不能
38、兼顾。在简单的控制和人机接口方面,以在简单的控制和人机接口方面,以51系列单片机和系列单片机和 ARM(Advanced RISC Machine)微处理器为代表的微处理器为代表的MCU因为具有全面的软件支持而处于领先地位因为具有全面的软件支持而处于领先地位在海量数据处理方面,在海量数据处理方面,DSP优势明显优势明显;在高速复杂逻辑处理在高速复杂逻辑处理方面,方面,FPGA凭借其超大规模的单芯片容量和硬件电路的凭借其超大规模的单芯片容量和硬件电路的高速并行运算能力而显示出突出的优势。高速并行运算能力而显示出突出的优势。因而,因而,MCU、DSP、FPGA的结合将是未来嵌入式系统发的结合将是未
39、来嵌入式系统发展的趋势。而展的趋势。而SoPC技术正使技术正使MCU、DSP和和FPGA有机融有机融合。合。目前,在大容量目前,在大容量FPGA中可以嵌入中可以嵌入16位或位或32位的位的MCU,如如ALTERA公司的公司的Nios2处理器处理器;DSP对海量数据快速处对海量数据快速处理的优异性能主要在于它的理的优异性能主要在于它的流水线计算技术流水线计算技术,只有规律的,只有规律的加减乘除等运算才容易实现流水线的计算方式加减乘除等运算才容易实现流水线的计算方式.这种运算方这种运算方式也较容易用式也较容易用FPGA的硬件门电路来实现。的硬件门电路来实现。SOPC一般采用大容量一般采用大容量FP
40、GA作为载体,除了在一片作为载体,除了在一片FPGA中定制中定制MCU处理器和处理器和DSP功能模块外,可编程器件功能模块外,可编程器件内还具有小容量高速内还具有小容量高速RAM资源和部分可编程模拟电路,还资源和部分可编程模拟电路,还可以设计其他逻辑功能模块。可以设计其他逻辑功能模块。由于市场上有丰富的由于市场上有丰富的IP核资源可供灵活选择,用户可以构核资源可供灵活选择,用户可以构成各种不同的系统。成各种不同的系统。有些可编程器件内还可以包括部分可编程模拟电路。除了有些可编程器件内还可以包括部分可编程模拟电路。除了系统使用的资源外,可编程器件内还具有足够的可编程逻系统使用的资源外,可编程器件
41、内还具有足够的可编程逻辑资源,用于实现其它的附加逻辑。辑资源,用于实现其它的附加逻辑。目前精度较高的目前精度较高的ASIC产品制造价格仍然相当昂贵,而集成产品制造价格仍然相当昂贵,而集成了硬核或软核的了硬核或软核的CPU、DSP、存储器、外围、存储器、外围I/O及可编程及可编程逻辑的逻辑的SOPC芯片在应用的灵活性和价格上有极大的优势。芯片在应用的灵活性和价格上有极大的优势。从应用角度看,从应用角度看,SOPC与与SOC相比有自己的优点。相比有自己的优点。因为它是基于因为它是基于PLD/FPGA实现的,可以随时下载实现的,可以随时下载以验证其功能,灵活性高。以验证其功能,灵活性高。对设计好的产
42、品中,如果要对芯片中电路布局改动,对设计好的产品中,如果要对芯片中电路布局改动,或者增减功能只需要重新下载,设计周期短,不是或者增减功能只需要重新下载,设计周期短,不是定制的,是可编程的。定制的,是可编程的。SOPC结合了结合了SOC和和FPGA各自的优点,一般具各自的优点,一般具备以下基本特征备以下基本特征:.至少包含一个以上的嵌入式处理器至少包含一个以上的嵌入式处理器IP核核.具有小容量片内高速具有小容量片内高速RAM资源资源.丰富的丰富的IP核资源可供灵活选择核资源可供灵活选择.足够的片上可编程逻辑资源足够的片上可编程逻辑资源.处理器调试接口和处理器调试接口和FPGA编程接口共用或并存编
43、程接口共用或并存.可能包含部分可编程模拟电路可能包含部分可编程模拟电路.单芯片低功耗微封装单芯片低功耗微封装SOPC设计流程通常包括两方面设计流程通常包括两方面:基于基于Quartus2的硬件设计,基于的硬件设计,基于Nios2的软件的软件设计。对于比较复杂的系统,硬件和软件设计可以设计。对于比较复杂的系统,硬件和软件设计可以分开进行。分开进行。下图为下图为SOPC设计流程示意图。设计流程示意图。硬件设计工作如下硬件设计工作如下:(l)使用使用SOPC Builder进行进行IP软核集成。软核集成。(2)将将SOPC Builder生成的生成的HDL代码用代码用QuartusII进行综合、布局
44、布线和前端仿真验证,进行综合、布局布线和前端仿真验证,也可用第三方工具综合,仿真验证也可用第三方工具综合,仿真验证;将设计顶层模将设计顶层模块在目标器件进行块在目标器件进行I/O分配。分配。(3)使用使用QuartusII编程器将生成的配置文件下编程器将生成的配置文件下载到载到FPGA,进行后端验证和测试,根据结果不断,进行后端验证和测试,根据结果不断优化设计。优化设计。软件设计工作如下软件设计工作如下:(1)在在SoPC Builder构建硬件系统同时,就可以开始编构建硬件系统同时,就可以开始编写独立于器件的写独立于器件的C/C+应用程序,或编写自行设计的应用程序,或编写自行设计的IP核驱动
45、程序。核驱动程序。(2)在在NiosII软件开发环境中根据软件开发环境中根据 SOPC Builder对系对系统的配置脚本生成相对应的统的配置脚本生成相对应的HAL库,可以进行对程序进行库,可以进行对程序进行软件级仿真和调试,还可以进行操作系统配置。软件级仿真和调试,还可以进行操作系统配置。(3)在在NiosII软件开发环境中将编译、链接过的可执行程软件开发环境中将编译、链接过的可执行程序下载到可编程逻辑器件,进行硬件级的调试和测试,根序下载到可编程逻辑器件,进行硬件级的调试和测试,根据结果不断优化设计。据结果不断优化设计。从上图可以看出软、硬件协同设计思想自始至终体从上图可以看出软、硬件协同
46、设计思想自始至终体现在现在SoPC系统的开发过程中。不仅在软、硬件划系统的开发过程中。不仅在软、硬件划分后,构建硬件系统的同时就可并行地设计软件程分后,构建硬件系统的同时就可并行地设计软件程序,序,当配置文件和软件程序下载到当配置文件和软件程序下载到FPGA后,系统的优后,系统的优化和调试完全也是是相互协调、配合的。化和调试完全也是是相互协调、配合的。可重用设计方法是针对可重用设计方法是针对SoC设计所总结出的方法论,设计所总结出的方法论,将可将可重用设计方法的思想延伸到重用设计方法的思想延伸到以以FPGA为平台、为平台、以以IP核为核心的基于核为核心的基于SoPC的嵌入式系统设计中,的嵌入式
47、系统设计中,将研究重点放在算法可重用的设计与评估上,能够将研究重点放在算法可重用的设计与评估上,能够彻底摆脱在以往的嵌入式系统设计中,软硬工程师彻底摆脱在以往的嵌入式系统设计中,软硬工程师分家和总体设计人员只能停留在分家和总体设计人员只能停留在SoC应用层的局面。应用层的局面。基于SOPC平台的可重用设计方法的拓宽SOPC片上可编程系统是美国片上可编程系统是美国ALTERA公司于公司于2000年提出一种灵活、高效的年提出一种灵活、高效的SoC解决方案,它解决方案,它将处理器、存储器、将处理器、存储器、I/O接口和用户逻辑电路等系接口和用户逻辑电路等系统设计所需要的功能模块集成在一个可编程器件中
48、,统设计所需要的功能模块集成在一个可编程器件中,构建成一个可编程的片上系统,具有可裁剪、可扩构建成一个可编程的片上系统,具有可裁剪、可扩充、可升级以及软硬件在系统可编程的功能。充、可升级以及软硬件在系统可编程的功能。可重用设计方法源于可重用设计方法源于SoC的设计人员对复杂芯片设的设计人员对复杂芯片设计方法的总结和归纳计方法的总结和归纳即使用以前设计完成且已经过验证的知识产权核构即使用以前设计完成且已经过验证的知识产权核构建系统的设计方法。建系统的设计方法。在不断的使用和总结过程中,这种设计方法己经推在不断的使用和总结过程中,这种设计方法己经推广到更多的设计层次上并被赋予了更多的内涵广到更多的
49、设计层次上并被赋予了更多的内涵在在SoPC平台下,我们认为可以从平台下,我们认为可以从四个层次四个层次或者是或者是模式上定义可重用设计方法。模式上定义可重用设计方法。基于FPGA硬件结构的可重构设计(1)可重构技术可重构技术是指用在系统内作为硬件处理单元的可编程是指用在系统内作为硬件处理单元的可编程逻辑器件,根据需要对其内部结构、功能、连线重新配置,逻辑器件,根据需要对其内部结构、功能、连线重新配置,使使固定的硬件固定的硬件实现多种多样的可编程解法。实现多种多样的可编程解法。(2)可重构计算机可重构计算机是一种通过将是一种通过将计算单元进行制造后空域连计算单元进行制造后空域连接以实现计算的器件
50、接以实现计算的器件。该定义中的两个要点是。该定义中的两个要点是:一是制造后一是制造后的功能定义的功能定义;二是利用空域连接进行计算。所谓制造后,是二是利用空域连接进行计算。所谓制造后,是指器件功能的定义是在指器件功能的定义是在IC器件出厂之后由用户完成的,而器件出厂之后由用户完成的,而ASIC器件的功能是在芯片生产厂制造过程中完成的,在这器件的功能是在芯片生产厂制造过程中完成的,在这个意义上可重计算系统与通用处理器十分相似。个意义上可重计算系统与通用处理器十分相似。空域连接指的是用逻辑门和连线来实现计算,与此空域连接指的是用逻辑门和连线来实现计算,与此相对的另一种完成计算的方式相对的另一种完成
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。