嵌入式软处理器在硅IP开发中的验证加速方法
摘要 本文提出了一种利用嵌入式软处理器进行硅IP调试和验证的方法。将嵌入式软处理器与待验证的IP进行绑定和整合,为待验证的硅IP提供了便捷的调试和评估环境,大大加速了集成电路设计的开发进程。
关键词 嵌入式 硅IP开发 方法
在现代的集成电路设计过程中,常常使用“用砖头,盖房子”类似的方法来进行大规模项目的设计。硅IP模块就是盖房子用的“砖头”。“砖头”质量的好坏,直接决定了整个集成电路设计的成败。对于集成电路而言,在大多数情况下,任何小缺陷都会造成整个集成电路的失败,因此在商业过程中,往往采用经过市场验证过的硅IP,或者经过反复验证该IP的可用性。验证IP的质量和性能,逐渐成为设计工作中价值最大,最耗费人力和才智的工作。随着计算机软件技术的进步,出现了许多计算机软件工具用于提高设计的自动型,以避免人为错误。然而,由于摩尔定律的作用,集成电路上晶体管的成本在不断下降,越是大型的设计可能反而性价比越高,迫使商业公司和其他机构不断往电路上加入更多更复杂的设计,来保持市场竞争力。在摩尔定律作用下,芯片成本线性降低,规模线性增长,但复杂度却呈现指数上涨趋势,导致原有的软件设计工具越来越难以满足需要。具体表现在以下方面:一是芯片的设计规模不断翻番,但计算机的硬件性能却不能同步增长。二是即使使用最先进的计算机硬件,但操作系统的能力又再次限制了系统的性能。主流的计算机操作系统,从16位,到32位,到64位,三次跨越耗费了近30年时间,但芯片设计规模,仍然保持18个月就翻番。当前主流的操作系统,其程序使用空间如WindowsXP 32bit和NT系统,仅仅在2G~3G Byte之间,但千万门级的设计,在现在已经只能算中等规模设计,就是读入这样的设计,已经让当前的主流计算机系统狼狈不堪,仿真这样的设计,几乎到了无路可走的地步。三是在使用软件对集成电路IP进行设计时候,测试向量的生成可能非常困难。由于软件工具靠手工输入数据,在面临大量数据处理的设计时候,手工输入几乎成为了不可能的事情。典型的就是比如高清视频信号处理,每秒钟的仿真,需要输入的数据量达到了1920X1080X30X3=186624000 byte,也就是说接近200MB。对这么大量的数据,进行大规模软件仿真,已经不现实了。所以,配合新技术新方法的出现,大型商业设计往往采用以下思路进行:
1、将大型设计尽量分割开,区分可靠设计和待完成设计,重点把时间用在待完成设计上。团队能并行进行设计工作。
2、采用可编程器件(FPGA),将芯片待开发的硅IP映射到可编程器件中,让可编程器件模拟硅IP的工作。由于可编程器件并行工作,其运行速度远高于计算机软件仿真,还可以反复擦写可编程器件,使测试和调整变得更容易,还可以反复测试和验证修改结果。这个过程常常被称为FPGA原型验证。同时,可编程器件的软件还兼顾一个优点,就是可以通过软件编译结果,查看硅IP大致的资源使用状况,方便设计者调整硅IP流片形成的成本。比较典型的就是信号处理器的乘法器,在算法不断调整优化的情况下,乘法器常常占到设计1/3的晶体管,为了使得芯片成本更便宜,开发者常常想办法降低乘法器使用的晶体管,比如浮点乘法器改定点、高精度转低精度,用几个小型乘法器替代大型乘法器等。
目前,主流的设计,已经开始慢慢接受和采用上述开发手段。但是上述开发手段又出现了新的不匹配。例如IP的输入输出系统。把一个IP看成一组信号输入和输出的系统。在现实的物理世界,每个系统的输入输出通常是比较稳定的。如网络接口、无线广播信号、图像信号、声音信号等等。但采用可编程器件来模拟硅IP,则引起了新的问题,就是每次硅IP调整后,可能占用的可编程资源都不同,其运行速度和性能都将发生变化,从而导致对外部信号的处理能力出现不匹配的状况;再如原先能接受1.25M无线GSM手机信号,运行在80Mhz,修正后只能运行在75Mhz了,尽管内部处理过程逻辑正确、外部信号输入仍然不变,但FPGA仿真系统却无法提供更高性能而正确工作了。因此,要在FPGA里调试IP,并不是容易的事情,为FPGA原型系统提供准确的数据通路,变得非常重要。我们会发现,若将嵌入式软处理器与待验证的IP相融合,将为IP的验证带来极大的便利。主要原因为:(1)软处理器本身与待验证IP可以共享时钟和其他FPGA资源,其运行速度很容易与待验证IP匹配;(2)软件处理器的及其外围资源,比如IO接口、总线、存储器资源,都是动态可配置的成熟IP资源,其运行规模和实时性可配置而达到待验证IP的验证要求;(3)软件处理器的外部接口资源,容易与PC系统连接,建立起PC资源与待验证IP之间的数据桥接通道;(4)软处理器和PC资源相配合,能产生超越冯。诺曼体系结构的计算系统(在传统的冯。诺曼结构里,程序被固化在固定的存储空间,处理器按照固定的路径执行和跳转;而软处理器与PC资源相结合,则能随时用PC来更新软处理器运行的程序代码和功能),成为特殊的计算方案,非常有利于IP设计的反复迭代优化过程。
下面我们以Xilinx公司的软处理器MicroBlaze为例,谈谈对一个待验证的视频解码(或者编码或者图像增强)IP的验证过程,其主要思路是:
待验证IP作为MicroBlazer软处理器的外设运行,其输入和输出由软处理器系统来调度和存储,由于软处理器系统在同一个FPGA中运行,因此能使用高带宽和实时性的外部直连内存池为待验证IP提供足够的实时性和带宽需求;同时由于软处理器本身可编程,就可以对待验证的IP输入输出需求进行模拟和匹配;软处理器系统也提供了与PC通讯的能力,因此PC上能方便地产生测试向量并解读软处理器系统发回的验证结果。当验证开始时,FPGA复位启动了软处理器,软处理器启动后将PC端生成的测试向量通过PC接口下载到FPGA控制的内存池当中;当测试向量下载完成,软处理器的程序再启动待验证IP,并根据待验证IP的需求不断将内存池中的测试向量发送给待验证IP,然后取得处理结果,仍然存放在内存池中;当测试向量完成处理,软处理器就暂停待验证IP,然后向PC发送验证结果;验证结果在PC上就会很容易被检查了。