优化32位RISC处理器置入FPGA的设计

2013-11-18 10:49 来源:电子信息网 作者:和静

目前,越来越多的客户想在FPGA中设计ASIC原型。GDA Technologies是一家擅长于ASIC设计的专业工程设计服务公司,最近,他们帮助客户在FPGA中完成了一个高速CPU设计,本文介绍他们在该设计中积累的经验,为从事类似开发的(中国)设计工程师提供借鉴。

在本例中,我们的客户想将一个经过优化的32位RISC处理器置入Xilinx的Vertex XCV 1000 FPGA,要求该处理器运行速度不低于75 MHz,所占空间不得多于FPGA面积的40%。

我们采用Xilinx的Alliance 3.1版工具进行基于分层模块的布局和布线。在设计过程中,Xilinx公司就如何更好地使用其工具以加快设计速度提出了许多建议,像递增编辑、多通道运行和分层方法等等。例如,多通道运行可产生不同的结果,我们可从中选取最符合要求的一个。此外,我们还采用了Synplicity公司的RTL底层规划工具Amplify及其FPGA综合工具Synplify。

原来的数据库RTL(图1)是为ASIC设计而编写的,内核结构也是专为ASIC而定制的,它们都不太适用于FPGA环境。为解决这些问题,我们通过上述工具来运行LX4189 RTL代码,以找到合适的设计切入点。此外,还利用Amplify和Synplify工具创建了一个网络络表,将之与Xilinx布局工具配合以便在Vertex XCV 1000上生成版图。

第一次版图设计获得了50MHz的时钟速度,在该版图的最坏一个路径上,延迟为20ns。对于FPGA,理想情况是延迟的60%在于逻辑部分,40%在于布线。第一次版图设计的结果是,30%的延迟在于逻辑部分,而70%在于布线。下一步工作就是将布线延迟缩短到逻辑延迟的范围内,以便得到12ns或更小的延迟,从而获得75到80MHz的时钟速度。

为提高时钟速度以达到75MHz的原定目标,我们开始对引起最大延迟的路径予以评估。对内核的分析表明,复杂数据路径包含多路复用器链MUX(图2)。当在FPGA上实现这些路径时,它们会产生很大的网络延迟。事实上,70%到75%的网络延迟都是由数据路径造成的。

此外,随着设计的深入,我们在协处理器的地址路径上发现了冗余逻辑部分,还有寄存器文件(如果去除的话,可提高FPGA时钟速度)。例如,内核带有一个设计中不需要的MIPS16模块。尽管Lexra去掉了该模块及其它不必要的逻辑部分,而且为我们提供了新的RTL数据库,我们并未看到时钟速度有明显的提高,因为数据路径上仍有延迟存在。

我们不得不继续寻找其它可能妨碍提高时钟速度的原因,其中包括MUX实现问题以及三态MUX是否优于其它形式的MUX。我们利用Virtex CLB(可配置逻辑模块)上常见的三态缓冲器BUFT来驱动专用的、分段水平布线资源。

扇出是我们发现的另一个问题。减少扇出数有助于缩短多个关键路径上的延迟,但当达到一定程度后,进一步减少扇出数不但不能降低延迟,反而会增加延迟。在为综合工具提供约束条件以减少扇出数时,我们意识到这一问题。对综合工具施加约束需要插入额外的门以减少扇出数,因此增加了延迟。

Amplify底层规划工具生成协处理器CP0和RPA两大模块,然后将它们放入FPGA。RPA代表内核的算术逻辑单元和指令执行管线逻辑。在设计过程中,我们为每个模块单独布局,当两个模块都接近或达到75 MHz时,再将它们放到一起。

在这两个模块中,CP0的慢速路径数最多,其时钟速度介于48MHz到50MHz之间。借助于Amplify工具,我们将其时钟速度从50MHz提升至66MHz。达到66MHz后,便很难用Amplify来进一步提高时钟了。因此,我们将注意力集中在两个模块的关键路径上。根据Xilinx的建议,我们用三态MUX代替了一组关键的多路复用器。

通过识别一系列出现时序冲突的路径,以及用三态MUX有选择地替代多路复用器,我们将整个设计的运行速度提高到80MHz。获得80MHz的速度是一个重要的里程碑,因为它表示我们把ASIC的时钟速度提高了30%。对于完整的设计,它占用Xilinx XCV 1000中96个BLOCKRAM中的12个(约12%),12,288个SLICE的1505个(约12%),以及12,544个TBU的448个(约3%)。

本文总结

最终设计占用FPGA中200K逻辑门的80K。我们与该客户的指定IP内核供应商Lexra公司合作,共同完成了这一设计。在两个月的时间内,我们将Lexra的LX4189处理器置入到XCV 1000 FPGA中。Lexra对IP内核进行了优化,以便更好地适应FPGA。最终设计超过了原定的75MHz目标,时钟速度可达到80MHz。

作者:Yanzhe Liu

设计工程师

GDA Technologies公司

Greg Kahlert

应用工程师

Lexra公司

FPGA RISC

相关阅读

暂无数据

一周热门