- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
SoPC系统的综合优化设计策略
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编译库和减少设备驱动,这样经优化后可以缩减硬件代码,减少器件资源占用。
作者:杨进,邱兆坤,杨德贵 来源:维库开发网