0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于AEMB微处理器构建SoC系统验证平台

电子设计 来源:郭婷 作者:电子设计 2019-04-18 08:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

SoC芯片的规模一般远大于普通的ASIC,同时深亚微米工艺带来的设计困难等使得SoC设计的复杂度大大提高。仿真与验证是SoC设计流程中最复杂、最耗时的环节,约占整个芯片开发周期的50%~80%,采用先进的设计与仿真验证方法成为SoC设计成功的关键。一个简单可行的SoC验证平台,可以加快SoC系统的开发与验证过程。FPGA器件的主要开发供应商都针对自己的产品推出了SoC系统的开发验证平台,如基于Nios II微处理器的SOPC系统与基于MicroBlaze微处理器的SOPC系统等。它们功能强大,而且配有相应的开发环境与系统集成的IP核。但每个器件厂商的SOPC系统只适用于自己开发的器件,同时需要支付相应的使用费用且没有源代码,所以在学习以及普通设计开发验证中使用起来会有诸多的不便。

本文采用OpenCores组织所发布的32位微处理器AEMB作为SoC系统的控制中心,通过Wishbone总线互联规范将OpenCores组织发布维护的相关IP核集成在目标SoC系统上,构成了最终的SoC验证平台。

1 AEMB及Wishbone总线介绍

AEMB是一款高效的开源微处理器软核,在指令上与Xilinx公司针对其器件开发的Microblaze微处理器兼容,而且在结构上还有所增强。它主要有以下特点:

①软核设计得非常小,相对于其他的一些微处理器软核,在物理实现上占用较少的硬件逻辑资源;

②支持硬件上的多线程,可以有效地执行操作系统相关的代码;

③AEMB是在LGPL3下开发的,所以它完全可以作为一个部分嵌入到一个大的设计中,同时非常适合一些科研院所以及高校或者个人用来学习;

④支持Wishbone总线规范,可以非常容易地集成其他的一些支持Wishbone总线规范的开源IP核;

⑤完全通过一些参数来定义系统的可配置功能,如系统的地址空间和一些其他可选的功能单元;

⑥在指令上99%与EDK6.2兼容,可以方便地使用已经非常成熟的开发工具链。

Wishbone总线规范是一种片上系统IP核互连体系结构。它定义了一种IP核之间公共的逻辑接口,减轻了系统组件集成的难度,提高了系统组件的可重用性、可靠性和可移植性,加快了产品市场化的速度。Wishbone总线规范可用于软核、固核和硬核,对开发工具和目标硬件没有特殊要求,并且几乎兼容目前存在的所有综合工具,可以用多种硬件描述语言来实现。Wishbone总线提供了4种不同的IP核互连方式:

◆点到点(point-to-point),用于两IP核直接互连;

◆数据流(data flow),用于多个串行IP核之间的数据并发传输;

◆共享总线(shared bus),多个IP核共享一条总线;

◆交叉开关(crossbar switch),同时连接多个主从部件,可提高系统吞吐量。

2 SoC系统验证平台总体框架

SoC系统中主要包含的IP模块有:32位开源微处理器软核AEMB、中断控制器时钟定时器、Wishbone总线、片上RAM控制器、SDRAM控制器、SSRAM控制器、Flash控制器、UART16550控制器、GPIO控制器。整个SoC系统的总体结构如图1所示。

基于AEMB微处理器构建SoC系统验证平台

为了方便后续开发与应用,本SoC系统中的Wishbone总线仲裁采用了开源的IP软核wb_conmax。其为8×16的结构,即在该Wishbone总线模块中可以使用8个主设备与16个从设备。本系统中使用了8个从设备接口和2个主设备接口。AEMB软核中没有提供时钟定时器与中断控制器,为了正常使用该软核,本系统中加入了中断控制器和时钟定时器,这两个控制器是作为从设备添加进来的。针对一些对存储空间需求很少的应用,系统将片上RAM作为主存储器。然而,FPGA片上存储器的空间是非常有限的,为了能够运行需要大量存储空间的操作系统,以及让系统正常上电启动,就需要外部存储器作为系统的主存储器。所以,系统中还添加了SDRAM、SSRAM控制器及Flash存储器。UART16550控制器和GPIO控制器作为2个从设备连接在系统中。

3 SoC系统验证平台具体构建

3.1 AEMB版本的选择与配置

AEMB软核采用最新的EDK62版本。本设计的目的在于整个SoC系统验证平台的构建,对微处理器性能及整个SoC系统的具体应用性能没有要求。为了简化设计,将AEMB软核中可配置的一些优化选项全部禁掉。这样不仅省去了对FPGA硬件逻辑资源的占用,而且也避免了因一些具体细节使用不当而带来的诸多问题。

3.2 片上RAM的生成

为了减少对FPGA逻辑资源的占用,同时又能够满足最基本的启动代码的存放与运行,将片内存储器的大小设为4 KB。使用Altera公司的FPGA开发环境QuartusII 9.0中的MegaWizard Plug-In Manager工具,来生成设定大小为4 KB的片上RAM。EDA开发工具生成的片上存储文件仅是具有相关存储器地址、数据及读写控制信号的一个HDL描述文件。为了能够在本SoC系统中使用,需要将其包装成符合Wishbone总线接口的一个从设备,以挂接在系统的Wishbone总线上。

3.3 片外存储控制器的配置

在该SoC系统上,片外存储控制器主要有SDRAM、Flash、SSRAM控制器。根据***友晶公司的DE2-70开发板上实际存储芯片的需要,对控制器的数据总线宽度与地址总线宽度作相应的修改与定制。一般情况下,SDRAM作为系统的主存储器,Flash用来存储系统的一些固化程序。在对一些实时系统进行时间参数测量的过程中,为了减小程序运行空间中时序的不稳定性影响,一般情况下测试程序都是在SSRAM器件中运行的。

作为存储器件的物理芯片,数据总线的端口基本上都是双向的,而在片内系统中数据端口基本上都是单向的。这些片外存储控制器在进行物理板级的连接时需要对相应的数据端口作处理。以Flash控制器为例,数据总线的双向I/O口具体实现RTL代码如下:

其他的存储器(如SDRAM、SSRAM)的数据总线双向I/O的实现,也都是采用这种方法来完成的。

3.4 中断控制器与时钟定时器的配置

中断控制器主要用于接收外部中断源的中断请求,并对中断请求进行处理后再向CPU发出中断请求,等待CPU响应中断并进行处理。在CPU响应中断的过程中,中断控制器仍然负责管理外部中断源的中断请求,从而实现中断的嵌套与禁止。在本设计中,中断控制器的逻辑结构如图2所示。所采用的中断控制器主要负责接收片内IP核及片外器件所发出的中断请求,然后根据一定的优先级与规则将中断发送给微处理器。微处理器可以通过设置与读取相应的中断寄存器来管理查看中断优先级与中断状态。

基于AEMB微处理器构建SoC系统验证平台

时钟定时器主要是作为操作系统的时钟滴答定时器,本质上就是一个简单的计数器。在每个系统时钟来到时计数器会自动加1,当计数器的值达到设定数值时便产生1次时钟中断。PTC是OpenCores组织发布的一个支持Wishbone总线接口的脉冲定时计数器。其不仅可以作为时钟定时器,还可以通过配置寄存器的设置产生PWM脉冲输出。本SoC系统中主要是使用PTC的定时器功能。

3.5 地址空间的分配

根据DE2-70开发板上各器件的特点与AEMB微处理器的中断例外向量表及wb_conmax的逻辑实现,系统地址空间分配结果为:

基于AEMB微处理器构建SoC系统验证平台

4 SoC系统的FPGA综合实现

针对DE2-70开发板在进行SoC系统的FPGA综合时选用CycloneII系列器件EP2C70F896C6。系统时钟频率预设为50 MHz,不加额外约束条件下进行综合,综合后的逻辑资源占用报告如图3所示。

基于AEMB微处理器构建SoC系统验证平台

通过时序分析报告可知,该SoC系统在满足时序的前提下,系统实际运行频率可达到65.31 MHz。

5 SoC系统验证平台软件支持

考虑到SoC验证平台所包含的硬件部件与该平台的具体应用,系统软件主要构成如图4所示。Mini Bootloader负责应用程序从Flash器件向程序运行空间的加载。在DE2-70开发板上,借助于NiosII开发工具与开发板自带的基于NiosII的SOPC硬件系统,烧写Flash很方便。系统启动时可以从Flash开始启动,完成应用程序的拷贝后再跳转到主程序运行的存储器空间。在本系统中,为了使编程更加方便,将拷贝程序放在片上RAM中存储。系统从片上RAM开始启动,完成应用程从Flash到SDRAM的拷贝之后,跳转到SDRAM开始执行应用程序。

基于AEMB微处理器构建SoC系统验证平台

AEMB微处理器在指令上与MicroBlaze达到99%的兼容,而后者的应用程序及操作系统的开发已经有非常成熟的范例。操作系统的移植主要是完成对硬件地址空间的修改与操作系统一些底层初始化代码的编写。最终在该SoC系统验证平台上完成了μC/OS-II的移植工作。

结 语

本文基于32位微处理器AEMB设计了一款SoC系统验证平台,给出了SoC系统经过FPGA综合后的逻辑资源占用情况,以及系统能够运行的最高时钟频率。该平台已在***友晶公司的DE2-70开发板上完成了FPGA验证。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • asic
    +关注

    关注

    34

    文章

    1269

    浏览量

    124028
  • soc
    soc
    +关注

    关注

    38

    文章

    4514

    浏览量

    227554
  • 微处理器
    +关注

    关注

    11

    文章

    2416

    浏览量

    85314
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    处理器微处理器系统

    集成了DSP,GPU,基带处理器等,越来越多的传统上分立的芯片被集成到一起,协同工作以提高效率,降低能耗,这也是未来的一个趋势。SoC随着半导体技术、移动互联网和智能终端的迅猛发展,传统的微处理器
    发表于 02-07 11:41

    基于AVR 8位微处理器的FSPLC微处理器SOC设计

    两个方面的内容:IP核生成和IP核复用。文中采用IP核复用方法和SOC技术基于AVR 8位微处理器AT90S1200IP Core设计专用PLC微处理器FSPLCSOC模块。
    发表于 07-26 06:19

    龙芯处理器IP核的FPGA验证平台该怎么设计?

    片上系统SoC(Sytem。n Chip),即是将整个系统集成在单个的芯片上。与传统的板级电路不同,SoC集成的完整系统一般包括
    发表于 08-30 08:27

    龙芯处理器IP核的FPGA验证平台该怎么设计?

    片上系统SoC(Sytem。n Chip),即是将整个系统集成在单个的芯片上。与传统的板级电路不同,SoC集成的完整系统一般包括
    发表于 09-02 07:06

    SoC验证平台的FPGA综合怎么实现?

    基于NiosII微处理器的SOPC系统与基于MicroBlaze微处理器的SOPC系统等。它们功能强大,而且配有相应的开发环境与系统集成的I
    发表于 10-11 07:07

    怎样去构建一种SoC系统验证平台

    SoC系统验证平台总体框架是怎样的?SoC系统验证平台如何去
    发表于 04-28 07:13

    STM32微处理器

    作为通用MCU,面对的不仅是消费类客户,更多的是工业控制和通信类客户。”意法半导体微控制事业部STM32微处理器产品市场经理SylvainRAYNAUD在近期的发布会上表示,“客户在认可ST产品品质的同...
    发表于 08-20 08:09

    基于IDE构建用于STM32微处理器的完整人工智能项目

    本用户手册指导了基于 IDE 逐步构建用于 STM32 微处理器的完整人工智能(AI)项目,自动转换预训练好的神经网络(NN)并集成所生成的优化库。本手册还介绍了 X-CUBE-AI 扩展包,该扩展
    发表于 09-07 06:15

    AEMB软核处理器设计的SoC系统验证平台

    AEMB软核处理器设计的SoC系统验证平台 本文采用OpenCores组织所发布的32位微处理器
    发表于 05-24 11:02 1025次阅读
    <b class='flag-5'>AEMB</b>软核<b class='flag-5'>处理器</b>设计的<b class='flag-5'>SoC</b><b class='flag-5'>系统验证</b><b class='flag-5'>平台</b>

    S3C4510B型ARM微处理器最小系统构建

    本文介绍S3C4510B型ARM微处理器最小系统构建,并给出系统外围相关器件的选型。
    发表于 08-19 14:33 3543次阅读
    S3C4510B型ARM<b class='flag-5'>微处理器</b>最小<b class='flag-5'>系统</b><b class='flag-5'>构建</b>

    龙芯处理器IP核的FPGA验证平台设计

    本文利用Altera公司的FPGA开发工具对皋于国产龙芯I号处理器IP核的SoC芯片进行ASIC流片前的系统验证,全实时方式运行协同设计所产生的硬件代码和软件代码,构建一个可独立运行、
    发表于 04-21 15:22 7721次阅读
    龙芯<b class='flag-5'>处理器</b>IP核的FPGA<b class='flag-5'>验证</b><b class='flag-5'>平台</b>设计

    基于OVM的32位微处理器验证吴勇昊

    基于OVM的32位微处理器验证_吴勇昊
    发表于 03-17 08:00 3次下载

    基于FPGA的验证平台及有效的SoC验证过程和方法

    设计了一种基于FPGA的验证平台及有效的SoC验证方法,介绍了此FPGA验证软硬件平台及软硬件
    发表于 11-17 03:06 2w次阅读
    基于FPGA的<b class='flag-5'>验证</b><b class='flag-5'>平台</b>及有效的<b class='flag-5'>SoC</b><b class='flag-5'>验证</b>过程和方法

    利用FPGA软硬件协同系统验证SoC系统的过程和方法

    设计了一种基于FPGA的验证平台及有效的SoC验证方法,介绍了此FPGA验证软硬件平台及软硬件
    发表于 11-17 03:06 5156次阅读
    利用FPGA软硬件协同<b class='flag-5'>系统验证</b><b class='flag-5'>SoC</b><b class='flag-5'>系统</b>的过程和方法

    基于LEON开源微处理器IP软核实现SoC系统基本平台构建

    SoC芯片的核心是实现运算和控制功能的微处理器。LEON是一款基于SPARC V8架构的开源微处理器IP软核,在VHDL源代码基础上,结合具体需求加入定制的运算单元和外设接口建立SoC
    的头像 发表于 06-17 14:32 3449次阅读
    基于LEON开源<b class='flag-5'>微处理器</b>IP软核实现<b class='flag-5'>SoC</b><b class='flag-5'>系统</b>基本<b class='flag-5'>平台</b>的<b class='flag-5'>构建</b>