- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
开发蓝牙IP面临的挑战及解决方法
蓝牙技术的应用前景为很多系统和芯片厂商所看好,但是完全实现蓝牙技术的应用还有很多问题有待克服,包括SoC设计中IP模块的开发与集成、互操作性等。基于平台的集成设计和不同仿真技术的各种集成能有效解决这些问题。
在爱立信、诺基亚这些电信巨头们的大力支持下,蓝牙技术成为PC开发商、移动电话制造商及许多其它消费设备制造商们看好的热门技术。要将蓝牙技术推向成功,系统设计商和芯片设计商必须实现有效的IP交换。通过采用基于平台的设计技术和更高层次的抽象,可以解决IP交换的问题。
对于在开发蓝牙过程中提供不同内核能力、使用不同工具与方法的系统开发商和芯片设计商而言,实现互操作性也是一个挑战。这个问题可能会妨碍整个芯片的设计过程,进而影响最终系统的开发。值得庆幸的是,现在已经有了新的设计模型和抽象方法可以解决这个问题,并使系统设计商能够更快地将蓝牙设备推向市场。
蓝牙协议概述
蓝牙技术是一种短距离的无线传输技术,其目的是取代传统的物理电缆。蓝牙工作在2.4 GHz频段,它应用了一种跳频扩谱(FHSS)技术,每发送或接收完一个数据包后在不同信道之间跳转,从而避免干扰信号的影响。
图1所示为蓝牙协议堆栈。蓝牙无线部分,即协议规范所定义的最底层,定义了工作在2.4 GHz频段的蓝牙收发器设备的需求。通过在79个间隔为1MHz的频点之间跳转完成扩频,典型的起始频率为2.403 GHz。这些RF部件可能是系统集成商的核心技术,需要模拟仿真工具来仿真连续时间效应。
在蓝牙协议的物理层(PHY)上,基带信号是调制在RF载波上的信息,它负责物理信道、链接、纠错、数据白噪声处理、跳频选择以及蓝牙安全等。实现这项功能所需要的算法(可能由第三方开发商授权使用)通常采用数据流描述来进行建模和仿真。
在蓝牙技术中,链路的建立、验证、配置及其它协议由链路管理器进行处理,物理层主要是通过链接管理协议(LMP)与其它的链接管理器进行通信。链接管理器利用底层链接控制器(LC)的服务来实现服务提供功能。逻辑链路控制与适配协议(L2CAP)位于基带协议之上,它允许更高层的协议和应用程序收发最大为64 KB的数据包。另一个协议RFCOMM提供L2CAP上的串口仿真。
当软件协议的授权是来自使用规范描述语言(SDL)工具的第三方厂商,蓝牙芯片设计工程师可使用有限状态机(FSM)来描述这种控制逻辑。所有这些功能组成部分必须与应用软件协同工作来实现最终产品的核心功能。
蓝牙协议中还融合了一个服务发现协议(SDP),该协议使应用程序了解蓝牙设备中可实现哪些服务,它还可以确定这些有效服务的特性。协议的另一个重要组成是主控制器接口(HCI),该接口提供了一个与基带控制器和链接管理器的命令接口,并可访问硬件状态寄存器和控制寄存器。
三种不同的建模仿真技术
尽管蓝牙协议堆栈比较小,但系统和芯片设计工程师仍然要处理三种不同的建模和仿真技术。为了将这些建模和仿真技术同越来越复杂的蓝牙SoC设计结合在一起,设计工程师需要采用先进的设计方法。这些方法包括集成基于平台的设计、采用更高层次的抽象,以及不同仿真技术的各种综合。下面首先来看看基于平台设计的优势。
随着设计的复杂性与面市时间的压力增大,从零实现每个设计是不现实的。由于设计模块中的每个改变都需要进行完整的重新验证,因此,即使复用可综合的设计模块(有改动)也很困难。
于是,系统和SoC设计工程师现在采用设计模块复用技术(对复用模块不做改动),该方法借鉴了PCB的设计。这就引出了基于平台的设计技术,这种技术在产品开发过程中维持基本的平台结构不变。
基于平台的设计方法的主要问题之一就是难以实现差异化。由于使用一个公共的SoC平台,系统和芯片设计商可能开发出与竞争对手几乎一样的蓝牙产品。在基于平台的设计中,产品的差异可通过两种方法来实现:即通过软件实现产品差异化和使用标准接口从平台库中增加硬件部件实现差异化设计。
基于平台的设计方法改变了各个设计工程师在设计供应链中的互动方式,甚至可以实现不同公司的互动。在半导体集成平台中,最著名的有TI公司针对无线应用提供的开放式多媒体应用平台(OMAP)、飞利浦半导体公司的Nexperia平台和Tality的蓝牙平台。各公司可以从标准平台系统开始,通过使用软件或替换平台架构中的模块来增加独特的功能,以实现差异化的设计。利用系统级的工具,系统设计商和芯片设计商之间在寄存器传输级(RTL)和嵌入软件结束之前就可以实现互动。
在这个过程中,抽象的作用越来越重要,半导体公司再也不能仅仅提供平台的实现模型,系统集成商现在还需要抽象的系统平台模型以在设计周期的早期评估整体优劣和其它设计因素。此外,半导体供应商还向软件开发商提供一个平台规范以及相应的应用编程接口(API),以便软件开发商配置和修改平台。
在一个典型的基于平台的设计方法中,设计工程师可能至少会采用三种不同的仿真类型。无线信号可能会在仿真模拟连续时间数据的环境中进行分析;数据流仿真器也会用来分析蓝牙的基带信号;最后,离散事件仿真器将会用来评估图1中所示的蓝牙协议。
综上所述,蓝牙设计中三个挑战是:
无线部分和基带解码器之间的相互作用;
基带部分与控制功能协议之间的接口;
软硬件之间的组合以及系统设计商与SoC提供商之间的相互作用。
模拟抽象
无线接收器RF前端中的混合信号射频电路一般位于天线和DSP之间。这个电路中包含能产生噪声的非线性模拟元件,如低噪声放大器(LNA)、混频器和振荡器等。
RF部分从模拟RF载波上提取出数字信号数据,模拟元件的噪声使基带信号产生了一些畸变。一个典型的设计困难是根据模拟电路结构来对一个给定信道接收器组合进行误码率(BER)估计。由于仿真时间太长,带数据流仿真的类Spice数据联合仿真实际上并不可行。
不过,K模型能解决这个难题。K模型在无线接收器中有着广泛的应用,它是模拟电路的离散时间行为模型,它表现了由RF接收器引起的线性和非线性的基带信号畸变,并可用于对数据流算法进行基于C++的系统级仿真。考虑到大多数信道变化范围很宽,行为模型在对用于数据流仿真的模拟电路进行参数提取时进行了速度与准确性的折衷。与基于C++的模型一起执行时,它们并不使用模拟仿真器。这个链接在连续时间模拟仿真和DSP中使用的数据流仿真之间提供了一个高效的接口。
图3显示了如何使用抽象来实现这一链接。K模型从晶体管模式开始,从非线性RF电路的输入信号的几个确定幅值获得频率传递函数。为了保证K模型能准确反映模拟效应,设计工程师应该在模拟域作一次瞬态分析,并将此分析与从数据流仿真器中的模型所得到的数据流仿真结果进行比较。经过特征化和验证之后,K模型就可代表接收器用在基于C++的数据流仿真中。
基带信号解码后送到控制系统模块,这个模块决定进一步的处理需求,如语音处理、视频处理或简单的数据存储。控制模型可以用离散事件计算模型进行有效仿真,在仿真过程中,只要有任何一个有效输入,就执行这些模型。
相比之下,数据流模型只有当全部输入都有效时才执行。由于模块的执行次序可以预先确定,因此数据流仿真要比离散事件仿真快很多。
图4是一个蓝牙产品的系统结构图。图中显示了一个发送器和接收器路径,两个基带控制器与来自数据流仿真器的输入模块连接。LC和HCI被建模为C和C++模型,驱动设计的测试平台也是如此。根据开放式建模接口标准(OMI,IEEE 1499),在几个系统级设计模块集成工具之间存在着数据流与控制块的相互链接。
在输入OMI封装模型时一定要生成必要的逻辑,以便在离散事件环境下执行输入的数据流模型。为了实现这一目的,要自动插入了一个触发器模块,以便仿真时一旦模块的所有输入有效就将它激活。这使得对软件协议集成与软硬件联合设计环境进行评估成为可能。
图4描述了蓝牙系统的功能集成,其中协议部分和基带控制器实现电子设备的蓝牙功能。功能集成的目的是评估不同系统模块之间的互相作用情况。在图4中,数据流基带部分执行某些编解码任务。功能仿真与协议模块被设计为纯C/C++模型,离散事件仿真可以发现并控制数据流方面的死锁和链接问题。
设计工程师应该注意的是,基带控制器之间的信道并不使用K模型。尽管理论上是可行的,但是考虑到总体仿真次数以及过长的协议序列,这种模型将会很慢,因此实际上并不可行。
折衷分析
在SoC设计中,硬件和软件的关系越来越紧密,在基于平台的设计方法中尤其如此,此时实际产品的差异可能通常都是使用软件来实现的。现在已经有了硬件/软件联合验证等标准方法,可以用来解决具体的硬件/软件接口验证问题。
然而,在作为结构的折衷分析工具时,其适用性受到了由于慢硬件描述语言(slow HDL)或C++模块一起仿真的指令集仿真(ISS)进行协同仿真所决定的仿真速度的限制,这将导致同样慢的仿真速度。而且,所有的模块必须在这些工具能够使用之前实现。这两个因素都使得通过这些技术来链接半导体设计和系统设计不可行。
解决这个问题的一种方案是对抽象的高效利用。软件和硬件的实现都有各种各样的描述和实现技术,其中大多数技术允许用户从抽象的初始模型开始,在设计流程中逐渐进行改进和细化,直到设计最终实现。
在软件方面,设计工程师可以选择面向特定应用领域的工具。在硬件方面,设计工程师可从行为HDL和普通C/C++描述的抽象级开始工作。
在软硬件两方面,上述工具允许在抽象级建模,有些还提供直接的实现途径。不过,只是在少数情况下自动生成的代码才接近于产品代码。大多数情况下,设计工程师需要手动实现RTL和软件设计,只使用抽象模型来对系统特定方面进行分析。例如,对一个解码算法的不同算法选项的评估。但也有极少数例外,允许DSP算法实现的微结构的图形化输入以及输出给Verilog、VHDL和测试工具的HDL可在不同抽象级之间重复使用。
除了设计工程师的具体设计之外,系统集成也面临一定的挑战。对实现级的RTL和软件进行综合评估是不大可行的,因为仿真速度有限,只能考虑几种替代方案。不过,现在有一些新的开发环境,在这些环境中,SoC设计工程师可以使用模型对实现方案的性能进行抽象。这种方法允许蓝牙SoC设计工程师在系统级(独立于实现)保持功能描述,并通过改变性能模型,快速尝试不同的选择。
先进的基于平台的设计方法以不同的方式对功能进行描述和仿真。虽然功能定义通常是蓝牙系统设计工程师的责任,但是SoC设计工程师可以使用CPU、DSP、总线、实时操作系统(RTOS)、存储器的系统结构和专用硬件/软件实现的抽象模型来提供系统结构。
结构模型代表了抽象的性能模型。功能和结构之间的映射定义了哪些结构资源是由所有计算和通信使用的。性能仿真模型可由那三种描述建立,因而在用代表实现的特征化或估计的性能模型进行实现之前,就可进行高效的折衷仿真。
注意,在适当高的抽象级为设计工作提供功能记录、结构记录以及同一开发环境内的映射具有重要意义。这为蓝牙系统设计商和SoC半导体提供商之间进行交流提供了新途径,更重要的是,他们在保持紧密协作的同时,每一方都可专注于其核心任务上。
上述设计流程提供了开展早期系统性能评估的能力,它还在SoC设计链中提供了一个高效的连接点。同时,功能和结构描述定义了抽象出来的系统平台。蓝牙系统设计者可以改变映射、增加功能,并在产品最后实现之前有效地进行功能设计研究。功能的定义与实现是不相关的,它可以清楚地呈现给蓝牙SoC开发商,并进行结构选项评估。
在使用性能仿真进行了功能设计研究并确定出一组最佳的功能/结构方案后,最重要的就是直接向实现级工具输出这一信息。这一工作需要包括硬件/软件联合验证、编译器以及硬件综合工具。
基于平台的设计方法也支持不经修改的IP复用。因此,蓝牙系统设计商与蓝牙芯片设计商之间的设计输出必须能够自动实现在硬件与软件、软件与硬件以及在硬件和软件领域内的通信路径。也必须有一种功能-结构协同设计方法以及一个工具环境来提供从抽象系统级到实现级的途径。这将促进从系统级向实现的硬件和软件输出,以及通信综合在设计模块之间建立通信。
作者:Frank Schirrmeister
产品部主管 Cadence Design Systems
franks@cadence.com。