在SoPC规划中,体系往往比较杂乱。为了进步规划功用(有时乃至仅仅为了到达规划要求),对所规划的SOPC体系进行概括优化是非常必要的。论文结合详细工程,以Altera公司的FPGA EP2S60为例,探讨了SOPC体系规划的概括优化办法。
1 概括优化规划的一般流程和办法
在FPGA处理器没有选定前,能够进行SOPC体系的开发。依据编译和优化的作用辅导处理器芯片的选型,挑选适宜的处理器类型、速度等级和封装。当硬件体系规划好后,就只能在已挑选好的处理器芯片上进行优化。一般的优化办法有Verilog程序代码优化、编译和布线优化设置,在增加Nios II体系后也触及对Nios II体系的优化。在规划进程中应遵从模块化规划思维,假如前面的优化都不能到达满意的作用,则需求运用逻辑确定技能和运用DSE算法进行优化。
2 概括优化规划战略
2.1 Quartus II软件优化设置
在进行概括前,对软件编译和布线进行优化设置是优化规划的一个重要进程,不同设置对概括布线的成果有较大影响。几个比较重要的设置包括时刻要求设置、编译器设置,最重要的是布线器的设置,如图1所示。
规划中设置对一切途径进行优化,并设置布线器尽最大努力满意规划的时序要求。在进一步的布线器参数设置中,挑选大局时钟有用,这样尽管或许增加实践布线后延时,可是能够削减时钟偏斜,为体系全体时序规划的稳定性供给确保,一起也能够增强网络的驱动才能。
别的,中心处理器EP2S60支撑多种电平形式,而各个bank支撑的形式不尽相同。在开端的硬件电路规划中现已考虑到这一点,将外接PCI接口的引脚分配在器材的bank7和bank8上,这样能够充分利用器材规划好的优化途径,到达比较好的规划功用。在引脚分配中,需求对引脚的特性进行更详细的设置,详细应依据实践体系引脚分配的功用要求挑选相应的电平规范,如PCI核接口挑选3.3 V PCI电平规范。
2.2 程序代码的优化规划
Verilog言语是一品种C言语的硬件描绘言语,在规划中首要要对所需完成的硬件电路结构和衔接都非常明晰,然后再用恰当的言语进行描绘。在详细完成上,应概括考虑以下根本规划准则:
①面积和速度的平衡交换准则。如规划时序余量大,能够通过功用模块复用来削减耗费的芯片面积;如规划时序要求高,可选用“串并转化”和“乒乓操作”以面积换速度。
②硬件准则。从硬件视点进行程序开发。
③ 体系准则。以体系的眼光进行模块区分和各模块使命的分配。
④同步规划准则。同步规划易于进步规划的频率和规划的稳定性,当时的优化东西也多是针对同步时序的优化。
硬件程序规划的另一个重要方面是状况机的规划。课题中触及4个状况机的规划。遵从好的状况机规划准则也是硬件程序开发中不行忽视的一方面。
状况机编码办法的挑选:因为FPGA中供给较多的触发器资源,FPGA规划中多选用热键编码办法,概括器的概括束缚特色界面下能够方便地改动状况编码办法。
初始化状况和默许状况:为防止上电不能正确进入初始状况,规划中初始状况编码为全零;一起为确保逻辑不会堕入死循环,规划语句中应留意完备化规划。
选用两段式状况机规划办法:将状况搬运独自写成一个模块,将状况的操作和判别写到另一个模块中,这样能够将同步时序和组合逻辑别离放置于不同的逻辑块,利于概括器优化代码和布线器完成规划。
2.3 片上存储器分配战略
在Stratix II系列的FPGA中包括3种不同类型的内部存储块:M-RAM块、M512 RAM块和M4K RAM块。规划中,运用不同的存储块规划不同的存储器,能够到达较优化的体系功用。
M-RAM彻底支撑双端口形式,由512 Kb RAM加上校验位组成,首要用于大数据包的缓存,如以太网帧、IP包等大到几KB的数据包,以及视频图画帧的缓存和NiosII嵌人式软核的存储;M512 RAM块由512位模块加上校验的RAM组成,首要用于接口速率适配的内部FIF0、移位寄存器和时钟域阻隔等;M4K块由4 096×1位到128×36位的4 Kb模块加校验组成,首要用于小型数据块存储和多通道I/O协议中,别的M4K RAM也彻底支撑双端口形式。
规划中选用的中心处理器FPGA芯片EP2S60包括丰厚的存储器逻辑资源,和上一代Stratix系列比较,运转速度进步了50%,逻辑容量增加了1倍,具有达180 Kb的等效逻辑元件和9 Mb的RAM,大大增加了集成度,为高度集成的运用供给了完成根底,而本钱比上一代还要低。规划选用的EP2S60器材逻辑资源如表1所列。
依据器材内3种存储器的各自特色,结合片内的逻辑资源散布,在片内规划了5个同步 FIFO,其间4个长度32位、存储深度256字的FIFO作为64位PCI传输的缓存,另一个长度32位,存储深度规划为2 048字。M512存储块首要用于内部FIFO的规划,在装备片内FIFO时挑选M512存储块类型。1个32位长、存储深度256字的FIFO占用的逻辑资源为30个LUT单元、15个M512存储块、134个REG单元。4个这样的FIFO占用60个M512存储块、120个LUT单元。536个 REG单元。而1个32位长、2 048字存储深度的FIFO占用的逻辑资源为114个M512存储块、63个LUT单元、128个REG单元。这样,体系规划中的FIFO一共占用174 个M512存储块,比较表1中EP2S60器材329个M512存储块,占用率为52.9%,彻底能够在片内规划完成。
相似核算机体系,软CPU Nios II体系也需求装备片上的ROM和片上RAM,如图2所示。片上ROM规划存储器类型为M4K,数据宽度32位,深度为32 KB,读推迟1。片上RAM存储器类型相同为M4K,数据宽度32位,深度规划为16 KB,读推迟1。
片上ROM首要用于上电后程序从外部存储器加载完成后的程序存储,是IDE主程序开端履行的当地。在Nios II主动分配的地址中,一般开始地址为0x00000000,意图地址为规划ROM容量的巨细。片上RAM首要作为程序运转的缓存和程序反常时的暂存,相当于核算机中的内存。在IDE编程设置中,要对片上ROM和片上RAM的运用进行详细的设置,如图3所示。
对程序存储器和只读数据存储器,设置为运用片上ROM。对读写数据存储器、堆存储器和仓库存储器,设置运用片上RAM存储器。这样,能够作到有用的存储器装备。
2.4 针对NiOS II体系的优化
SoPC 体系在没有增加Nios II体系时,较简单完成比较高的频率,在参加Nios II体系后,体系规划频率有较显着的下降。因而在带Nios II的体系中,对Nios II的优化规划是限制整个SOPC体系时序的一个瓶颈。
另一方面,在Nios II体系中,多是运用现已规划好的软核CPU和外接器材IP核,在规划时现已进行过优化而且现已封装集成,进一步优化的难度很大,因而优化首要放在自行开发规划的IP核和软件的参数装备以及规划NiosII体系时应当遵从的一些准则上。在Nios II IDE编程环境中,如图4所示,挑选最大优化,在编译器参数设置中挑选小的C编译库和削减设备驱动,这样经优化后能够减缩硬件代码,削减器材资源占用。
参考文献[7]中探讨了Nios II体系的优化途径。文中概括体系优化有如下办法:
①运算应选用定点运算。通过测验,浮点加法和乘法运算耗费的时刻为定点运算的5~6 倍,假如需求浮点运算,也应该选用自定义指令的办法来完成。
②选用C言语和汇编言语混合编程。对核算量大的屡次调用的程序模块选用汇编言语,对骨干流程言语选用C言语,这样能够照顾到程序的可读性,功率也较高,一起减缩程序占用资源量。
③运用用户自定义指令。将一些杂乱的算法由软件转而交由硬件来完成,能够获得较高的功率进步。
④运用硬件加快进步软件功用。通过增加外部协处理器来加快数据功用。
⑤ 多处理器体系。运用两个或多个处理器来进步体系的数据处理才能。
通过上面剖析,进行体系优化似乎是一个对立的进程:有时需求优化以减缩代码量并削减资源占用,有时又通过增加逻辑和增加处理模块来进步数据处理才能。实践上,点评一个体系规划的好坏,除了需求完成根本的功用外,还要看运用逻辑资源和功用的概括比较,以更好有利地势用处理器,到达最好的功用。
3 试验定论
在体系规划中,运用文中剖析的概括优化规划办法,体系最高频率有了较大进步,从开端的88.24 MHz,优化至现在的111.73 MHz。因为在Quartus II编译器参数没置中,要求最高时钟设置为132 MHz,因而优化后最高时钟陈述以赤色显现,表明没有到达预先设置的132 MHz时钟要求。比较于优化前,体系最高频率进步了26.62%,可见采纳的概括优化规划办法比较有用。关于EP2S60器材,在没有增加Nios II体系时,能够较简单到达200~300 MHz的最高时钟频率,参加Nios II通过优化处理,最高时钟频率现在只完成111.73 MHz,应该还有进一步优化空间。能够考虑对要害途径进行手艺连线,选用DSE算法和逻辑确定技能进行进一步的优化,然后进步体系最高频率。