基于ARM内核SoC的FPGA 验证环境设计方法
摘 要:针对片上系统(SoC) 开发周期较长和现场可编程门阵列(FPGA) 可重用的特点,设计了基于ARM7TDMI 处理器核的SoC 的FPGA 验证平台,介绍了怎样利用该平台进行软硬件协同设计、IP核验证、底层硬件驱动和实时操作系统设计验证。使用该平台通过软硬件协同设计,能够加快SoC 系统的开发。整个系统原理清晰,结构简单,扩展灵活、方便。
关键词:SoC;FPGA;软硬件协同设计;验证平台;ARM7TDMI
引 言
随着片上系统(SoC) 设计的复杂度和性能要求的不断提高, 软硬件协同设计(Hardware/ Software Co2de2sign) 贯穿于SoC 设计的始终。软硬件协同设计是一个以性能和实现成本为尺度的循环优化过程,验证设计是其中必不可少的重要环节。目前大多数公司提供的开发验证系统(开发板) 存在两个弱点:一是开发板的性能、规模难以根据特定的设计需求灵活、自由地调节;二是开发板的功能大多数只能进行软件代码的调试,即使ARM公司提供的开发平台也只能调试部分硬件。这两个弱点均在一定程度上限制了软硬件划分的探索空间,使所设计的SoC 不能获得更佳结构实现的能力。
本文利用现场可编程门阵列(FPGA) 重用性好、现场灵活性好的优势,开发一个能进行详细的行为监测和分析的实时运行验证平台,实现软硬件的紧密和灵活耦合,从而克服上述结构的弱点,以全实时方式运行协同设计所产生的硬件代码和软件代码,构成一个可独立运行、可现场监测的验证平台。这样,不但能够提高SoC 流片成功率,加快SoC 的开发,而且可以降低整个SoC 应用系统的开发成本。
验证平台的设计
系统设计
图1 是我们设计的SoC 系统架构, 选用了ARM7TDMI 处理器核, 它是一个RISC 体系的32 位CPU ,具有功耗低、性价比高、代码密度高三大特色(ARM公司本身不生产芯片,普通用户无法获得ARM可综合的CPU 核) ,包括AMBA 总线、DMA 控制器和Bridge 、(外部存储器接口EMI) 、通用串行总线(USB) 客户端控制器、液晶显示器(LCD) 控制器、多媒体加速器(MMA) 、AC97 控制器、通用串口/ 红外(UART/ IrDA) 、通用定时器/ 脉宽调制器(TIMER/ PWM) 、中断控制器( INTC) 、同步外设接口(SPI) 、实时时钟(RTC/ WD) 、时钟和功耗管理单元(PMU) 。
图1 SoC的系统架构
图2 是该SoC 验证平台的结构框图,选用Altera公司的APEX20K1500E 作为验证SoC 用的FPGA ,该器件由一系列的MegaLAB 结构构成,每个结构包含一组逻辑阵列块(LAB) 、一个嵌入式系统块( ESB) 及一个在MegaLAB 结构内提供信号通道的MegaLAB 互连。在MegaLAB 结构和I/ O 引脚间的信号布线通过Fast -Track 互连实现。另外,靠边的LAB 能被I/ O 引脚通过局部互连驱动。
该器件有如下特点:具有多核结构,支持可编程单芯片系统(SOPC) ,密度高,专为低电压应用设计,最多带4 个锁相环的时钟管理电路,多达8路全局时钟信号,每个I/ O 引脚具有独特的三态输出使能控制及可编程压摆率控制[1 ,2 ] 。使用该器件作为AMBA 总线模块、DMA 控制模块、EMI 模块、USB 模块及LCD 控制模块等多个IP 模块的硬件载体, 与ARM7 TDMI处理器构成了一个SoC的验证系统。
评论