专注工科类创新实验教学、科研开发20余年!方案覆盖嵌入式、IOT、AI、机器人、新能源等领域。
 
  当前位置:首页 >> 新闻动态 >> 产品资讯
 
公司新闻
 
培训与竞赛
 
行业新闻
产品资讯

点击排行(TOP 10)
  创新设计方案:手机便携式
  首届NAO机器人在线程序设计
  Altera官方视频教程
  中国EDA助力移动互联发展
  嵌入式微处理器选型的考虑
  在京高校专利申请去年首破
  无线充电时代即将普及
  英特尔挑战ARM移动市场
  日本三大电子巨头走下神坛
  德州仪器不再重点投资移动
  华为“网络天线”,颠覆传
 
sopc系统综合优化设计
     革新科技  来源:革新科技 日期:2011/5/10 8:38:17 阅读:1764 次
- 返回 -
 

 摘要: 针对SOPC系统优化设计问题,首先介绍了综合优化设计的一般流程和方法,然后从软件优化设置
、代码优化设计、片上存储器资源有效分配、Nios II系统优化等方面提出综合优化设计策略。在实验系
统中应用该优化策略,SOPC系统最高频率提高了26.62%。
   在SOPC设计中,系统往往比较复杂。为了提高设计性能(有时甚至只是为了达到设计要求),对所
设计的SOPC系统进行综合优化是非常必要的。论文结合具体工程,以Altera公司的FPGA EP2S60为例,探
讨了SOPC系统设计的综合优化方法。
  综合优化设计的一般流程和方法
在FPGA处理器没有选定前,可以进行SOPC系统的开发。根据编译和优化的效果指导处理器芯片的选
型,选择合适的处理器型号、速度等级和封装。当硬件系统设计好后,就只能在已选择好的处理器芯片
上进行优化。一般的优化方法有Verilog程序代码优化、编译和布线优化设置,在添加Nios II系统后也
涉及对Nios II系统的优化。在设计过程中应遵循模块化设计思想,如果前面的优化都不能达到满意的效
果,则需要使用逻辑锁定技术和应用DSE算法进行优化。
综合优化设计策略 
 2.II软件优化设置
   在进行综合前,对软件编译和布线进行优化设置是优化设计的一个重要步骤,不同设置对综合布线
的结果有较大影响。几个比较重要的设置包括时间要求设置、编译器设置,最重要的是布线器的设置, 
 布线器参数设置
   设计中设置对所有路径进行优化,并设置布线器尽最大努力满足设计的时序要求。在进一步的布线
器参数设置中,选择全局时钟有效,这样虽然可能增加实际布线后延时,但是可以减少时钟偏斜,为系
统整体时序设计的稳定性提供保障,同时也可以增强网络的驱动能力。
   另外,中心处理器EP2S60支持多种电平模式,而各个bank支持的模式不尽相同。在最初的硬件电路
设计中已经考虑到这一点,将外接PCI接口的引脚分配在器件的bank7和bank8上,这样可以充分利用器件
设计好的优化路径,达到比较好的设计性能。在引脚分配中,需要对引脚的特性进行更详细的设置,具
体应根据实际系统引脚分配的功能要求选择相应的电平标准,如PCI核接口选择3.3 V PCI电平标准。 
 2.程序代码的优化设计
   Verilog语言是一种类C语言的硬件描述语言,在设计中首先要对所需实现的硬件电路结构和连接都
十分清晰,然后再用适当的语言进行描述。在具体实现上,应综合考虑以下基本设计原则:
 ① 面积和速度的平衡互换原则。如设计时序余量大,可以通过功能模块复用来减少消耗的芯片面积;
如设计时序要求高,可采用“串并转换”和“乒乓操作”以面积换速度。<BR>② 硬件原则。从硬件角度
进行程序开发。<BR>③ 系统原则。以系统的眼光进行模块划分和各模块任务的分配。<BR>④ 同步设计
原则。同步设计易于提高设计的频率和设计的稳定性,当前的优化工具也多是针对同步时序的优化。
   硬件程序设计的另一个重要方面是状态机的设计。课题中涉及4个状态机的设计。遵循好的状态机
设计原则也是硬件程序开发中不可忽视的一方面。
   状态机编码方式的选择:由于FPGA中提供较多的触发器资源,FPGA设计中多采用热键编码方式,综
合器的综合约束属性界面下可以方便地改变状态编码方式。
   初始化状态和默认状态:为避免上电不能正确进入初始状态,设计中初始状态编码为全零;同时为
保证逻辑不会陷入死循环,设计语句中应注意完备化设计。
   采用两段式状态机设计方法:将状态转移单独写成一个模块,将状态的操作和判断写到另一个模块
中,这样可以将同步时序和组合逻辑分别放置于不同的逻辑块,利于综合器优化代码和布线器实现设计

 2. 片上存储器分配策略
   在Stratix II系列的FPGA中包含3种不同类型的内部存储块:MRAM块、M512 RAM块和M4K RAM块。设
计中,应用不同的存储块设计不同的存储器,可以达到较优化的系统性能。
   MRAM完全支持双端口模式,由512 Kb RAM加上校验位组成,主要用于大数据包的缓存,如以太网帧
、IP包等大到几KB的数据包,以及视频图像帧的缓存和Nios II嵌入式软核的存储;M512 RAM块由512位
模块加上校验的RAM组成,主要用于接口速率适配的内部FIFO、移位寄存器和时钟域隔离等;M4K块由4
096×1位到128×36位的4 Kb模块加校验组成,主要用于小型数据块存储和多通道I/O协议中,另外M4K
RAM也完全支持双端口模式。
   设计中采用的中心处理器FPGA芯片EP2S60包含丰富的存储器逻辑资源,和上一代Stratix系列相比
,运行速度提高了50%,逻辑容量增加了1倍,具有达180 Kb的等效逻辑元件和9 Mb的RAM,大大增加了
集成度,为高度集成的应用提供了实现基础,而成本比上一代还要低。设计采用的EP2S60器件逻辑资源
   根据器件内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.针对Nios II系统的优化
   SOPC系统在没有添加Nios II系统时,较容易实现比较高的频率,在加入Nios II系统后,系统设计
频率有较明显的下降。因此在带Nios II的系统中,对Nios II的优化设计是制约整个SOPC系统时序的一
个瓶颈。
   另一方面,在Nios II系统中,多是应用已经设计好的软核CPU和外接器件IP核,在设计时已经进行
过优化并且已经封装集成,进一步优化的难度很大,因此优化主要放在自行开发设计的IP核和软件的参
数配置以及设计Nios II系统时应当遵循的一些原则上。在Nios II IDE编程环境中,如图4所示,选择最
大优化,在编译器参数设置中选择小的C编译库和减少设备驱动,这样经优化后可以缩减硬件代码,减少
器件资源占用。
   探讨了Nios II系统的优化途径。文中归纳系统优化有如下方法:
 ①运算应采用定点运算。经过测试,浮点加法和乘法运算消耗的时间为定点运算的5~6倍,如果需要浮
点运算,也应该采用自定义指令的方式来实现。<BR>②采用C语言和汇编语言混合编程。对计算量大的多
次调用的程序模块采用汇编语言,对主干流程语言采用C语言,这样可以照顾到程序的可读性,效率也较
高,同时缩减程序占用资源量。<BR>③使用用户自定义指令。将一些复杂的算法由软件转而交由硬件来
实现,可以获得较高的效率提升。<BR>④使用硬件加速提高软件性能。通过添加外部协处理器来加速数
据功能。⑤多处理器系统


 
 
   
销售电话:010-82608898     技术支持:82608898-800    Email:sales@gexin.com.cn
Copyright © 2012-2024 版权所有:北京革新创展科技有限公司   京ICP备20004067号-1