随着130nm和90nm工艺的成熟,每平方毫米的硅片面积上可以集成大约100K~200K的逻辑门,一颗面积大约50mm2的低成本芯片可以容纳5M~10M逻辑门。越来越多的SoC设计者正在试图将整个系统集成在一颗芯片上,但是他们也面临着严峻的挑战,因为传统的基于RTL的SoC硬件设计方法的缺点正日益显现出来。
● 设计能力——以前,硅片容量和自动化设计工具的能力将一个RTL模块的规模限制在100K左右,如今在一个硅片上即使是500K逻辑门的模块也不会受到这些限制,但是设计方法却没能跟上硅片容量增长的脚步。
● 验证困难——一个典型逻辑模块的内部设计复杂度以及潜在的出错可能性随着其逻辑门数的增加而迅速增大,这导致了验证的难度不成比例的增加。许多SoC设计团队声称他们90%的工作量花在了验证工作上。
● 修复成本——修复SoC设计中错误的成本正在增加。人力成本和NRE费用都在不断增加,与此同时利润率及市场份额却在不断下降,这使得设计错误变得越来越无法忍受。因此可以减少错误或降低修复成本的设计方法迅速发展起来。
● 软硬件整合——所有的嵌入式系统中都有大量的软件和固件程序,一般来说,整合软件只能放在系统开发的最后,并且往往被认为是拖累开发进度的罪魁祸首。
● 标准变化与灵活性——通信协议的标准正在迅速变化中。为了充分利用有限的频带资源,协议设计者们提出了很多创新性的协议标准,如IPv6、 G.729、JPEG2000、MPEG4和AES等。这些新标准需要的计算性能比以前的标准要高得多。
指令集固定且固件可编程的通用嵌入式处理器仍然非常具有吸引力,因为它们可以处理很多任务,但通常这类处理器缺乏复杂数据处理的能力,如网络应用中的包处理,视频以及加密应用中的数据处理等。为了满足类似的性能需求,芯片设计者不得不回过头来求助于RTL硬逻辑。随着设计复杂度和运算性能的不断提高,设计的规模也在不断增大,SoC设计人员需要有更多的资源才能完成芯片设计。同时,他们还面临着以下两个挑战。
● SoC设计者如何保证芯片的规格真正符合客户的需要。
● SoC设计者如何保证芯片符合当初的设计规格。
在SoC设计中使用微处理器
解决上面两个问题的办法是赋予SoC设计足够的灵活性,从而使一颗芯片能够应用于10个、100个甚至1000个不同的系统设计,这种需求推动了通用SoC设计的出现,从而分摊了大量芯片设计的成本。大多数的嵌入式系统都需要高速处理外部复杂的实时数据,通用微处理器需要运行在极高的频率上才能满足这些数据处理任务的要求。在个人电脑市场上正是如此,价值数百美元的PC处理器消耗几十瓦的功耗来完成用户任务。但是对于嵌入式应用来说,昂贵且耗电的芯片是没有市场的,于是设计者们转而使用RTL硬逻辑来执行高速数据处理任务。过去10年中,在逻辑综合等ASIC设计工具的帮助下,RTL硬逻辑得到了广泛使用,这种方法已经被证明能够合理且有效的并行完成高速数据处理任务,其性能可以达到通用微处理器性能的几十甚至上百倍。与基于RTL的设计类似,可扩展处理器技术针对特殊应用定制的高速逻辑模块也需要使用逻辑综合工具。不同之处在于,RTL设计中的状态机只能通过硬件控制,而可扩展处理器中逻辑模块的状态则可以通过软件控制,这就大大提高了设计的灵活性。
图1 Xtensa可配置处理器模块图