基于FPGA的OPB_AHB总线桥接器的设计

发布时间:2010-8-10 15:56    发布者:lavida
关键词: AHB , OPB , 桥接器
摘要:本文首先介绍了 AHB和OPB总线协议特点,并在此基础上详细阐述了 OPB_AHB总线桥接器的功能和设计思路,最后给出了 OPB_AHB的验证方法和仿真结果。并在 Xilinx的EDK环境下利用MicroBlaze软核构建了 SoC系统并通过 FPGA验证。  

1.引言  

SoC(System on a Chip)自20世纪90年代后期出现以来,广受学术界和工业界的关注, SoC通常将微处理器、 IP(Intelligence Property)核和存储器(或片外存储控制接口)集成在单一芯片上,具有小型、轻量、低功耗、多功能、高可靠和低成本化等特征,在计算机、通信、消费类电子、工控、交通运输等领域应用十分广泛。  

随着基于IP复用技术的 SoC设计的不断发展,片上总线 OCB(on-chip Bus)技术成为解决 SoC发展的关键技术。目前主要有三大主流片上总线标准: IBM公司的 CoreConnect,ARM公司的AMBA (Advanced Microcontroller Bus Architecture)以及Silicore Corp公司的 Wishbone。本文针对两大主流 OCB总线标准 AMBA和CoreConnect,完成AMBA高性能系统总线AHB和CoreConnect的外围总线 OPB之间的桥接转换,设计出 OPB_AHB桥接器。  

2.OPB_AHB桥接器功能特性  

AHB是ARM公司微控制器总线体系结构 AMBA规范定义的三种总线之一,它是先进的系统总线,用于连接高性能系统模块,支持突发数据传输方式及单个数据传输方式, AHB总线可挂接多个功能模块(主 /从),并为它们提供高带宽、低延迟的总线连接。  

OPB总线是IBM公司推出的一种芯片级的外围设备总线, OPB总线主要连接外围低速设备,降低外围设备对系统性能的影响,支持突发( Burst)操作。  

Xilinx公司的软核处理器 MicroBlaze能够很好的支持 OPB总线协议, MicroBlaze环境的 OPB总线都是 32位的地址位宽和数据位宽,支持 8bit、16bit、32bit的数据传输。本文设计的OPB_AHB桥接器主要是完成以下四个功能。  

3.OPB_AHB桥接器结构  

图1是一个简单的基于 MicroBlaze的OPB_AHB 桥接器拓扑结构图。 MicroBlaze是一个软核处理器,整个系统在 Xilinx的EDK环境下实现, AHB_OPB桥接器可以作为 OPB设备和 AHB设备之间数据、地址和控制命令的传输通道。  



  


当OPB主设备要向 AHB从设备读写数据时, OPB_AHB桥接器可以作为 OPB总线这一侧的从设备( Slave),同时在 AHB总线这一侧充当主设备 (Master)的角色,此时 OPB_AHB桥接器主要工作是由图 2中OPB2AHB bridge完成。当 AHB主设备要向 OPB从设备读写数据时, OPB_AHB桥接器可以作为AHB总线这一侧的从设备( Slave),同时在 OPB总线这一侧充当主设备 (Master)的角色,此时 OPB_AHB桥接器主要工作是由图 2中AHB2OPB bridge完成。  

4.OPB_AHB桥接器的实现  

实现两种总线的互联,关键是完成控制信号之间的转换以及数据和地址的传输,本设计采用的方法包括。  

(1)流水线方式, (2)将所有输入的控制信号和数据地址总线都寄存一拍。  

(3)控制信号都采用同 (4)步设计方法, (5)在OPB_Clk的上升沿触发。  

(6)数据的读写操作为同 (7)步读写。  

4.1OPB2AHB_Brg的实现  

(1) 所有控制信号采用同步设计思想,在 SOPB_Clk的上升沿触发。 SOPB_Rst高电平有效,为同步复位,当其有效时,所有信号输出 0状态。  

(2) 当桥接器检测到 SOPB_Sel信号有效时,即表明桥接器被选中,成为 OPB总线上的从设备,或者检测到 AHB_Resp信号状态为RETRY,此时 OPB2AHB_Brg作为AHB总线上的主设备向 AHB仲裁器发出请求总线信号 AHB_BusReq。  

(3) 当OPB2AHB_Brg检测到 AHB总线侧的允许信号 AHB_Grants时,说明桥接器的请求得 到允许,此时当 AHB_Ready有效时,可以根据 SOPB_BE判断传输数据的大小,决定 AHB_Size的状态,当 SOPB_BE为1111时,AHB_Size为010(32bit),SOPB_BE为1100或0011时,AHB_Size为001(16bit),SOPB_BE为0001、0010、0100、1000时,AHB_Size为000(8bit)。  

(4) 当SOPB_RNW为高电平时,为读取数据,数据流向是从 AHB_Rdata到Sl_Dbus,当 SOPB_RNW为低电平时,为写数据,数据流向从 SOPB_Dbus到AHB_Wdata。地址总线相连,即SOPB_Abus连接AHB_Addr。  

(5)当一次数据传输完成后, (6)置位Sl_xferAck信号, (7) 让其输出一个时钟周期的高脉冲。  

4.2 AHB_OPB_Brg的实现  

(1) 当桥接器检测到 AHB_Sel信号有效时,即表明桥接器被选中,成为AHB总线上的从设备,此时AHB2OPB_Brg作为OPB总线上的主设备向 OPB仲裁器发出请求总线信号 M_req。  

(2)当桥接器接收到 OPB仲裁器发出的允许信号 OPB_Mgrant信号时, (3)表明桥接器可以  

开始工作,(4)这个信号会激励 M_Sel信号有效, (5)根据 IP核 BK3721的功能特性, (6) M_BE总是输出 1111,(7) M_SeqAddr和M_busLock输出为0。  

(3) 当AHB_Write为高电平时,为写数据有效,此时 AHB主设备向从设备桥接器写数据,同时桥接器作为 OPB总线上的主设备向选中的 OPB从设备写数据,数据流向为 AHB_Wdata到 M_Dbus。当AHB_Write为低电平时,为读数据有效,此时 AHB主设备从桥接器(作为 AHB总线上的从设备)读取数据,同时桥接器作为 OPB总线的主设备从选中的 OPB从设备读取数据,数据流向为OPB_DBus到AHB_RData。  

(8)当数据传输指 (9)示信号OPB_xferAck被检测有效时, (10) AHB_Ready信号输出高电平有效信号, (11)表示数据传输结束。  

5.OPB_AHB桥接器的验证  

5.1 OPB2AHB_Brg的验证  

用verilog编写testbench,在testbench中虚拟设备一个 AHB从设备存储器 AHB_mem,存储器的数据位宽和地址位宽都是 32位,通过测试平台可以对虚拟存储器进行数据的读写,并将数据的读写结果保存到 Wdata.txt文件中。  

利用ModelSim工具对测试平台进行仿真。在主设备向虚拟从设备写数据时, SOPB_RNW为低电平,桥接器作为AHB上的主设备将 SOPB_DBus数据线上的数据通过 AHB_Wdata写到 AHB_mem存储器中,并在 WData.txt文件中显示出来,仿真结果如图 3 (a)所示。  



  


图3 (a) OPB2AHB_Brg写数据仿真波形  

在主设备从虚拟从设备读取数据时, SOPB_RNW为高电平,桥接器作为 AHB上的主设备将AHB_mem存储器的数据通过 AHB_Rdata读取到Sl_Dbus数据总线上,并在 WData.txt文件中显示出来,仿真结果如图 3 (b)所示。  



  



图3 (b) OPB2AHB_Brg读数据仿真波形  


5.2 AHB2OPB_Brg的验证  

AHB2OPB_Brg验证平台主要分为测试激励,被测对象以及响应输出三部分。测试过程为:首先对测试激励进行初始化,产生时钟信号和复位信号及控制信号,然后向虚拟 OPB从设备(mem存储器)写数据,写完数据后等待一段时间在进行读取数据操作。在ModelSim中仿真结果如图 4所示。  



  


通过观察,当写信号时, AHB_WData数据总线上的数据能够正确的写入到虚拟从设备 OPB_mem中,当读信号有效时,虚拟从诶设备 OPB_mem中的数据能够正确通过 OPB_Dbus传输到AHB_RData总线上。  

6.结束语  

本文在分析了 AMBA总线协议和 OPB总线协议的基础上,给出了OPB_AHB桥接器的设计和验证方案。本文作者创新点是采用同步设计和流水线设计方法,能够正确的转换 OPB总线与 AHB总线之间的数据、地址、控制信号,提高了系统的运行速度和稳定性。最后通过 Xilinx的ISE综合和时序仿真,最高频率达到 100MHZ,并导入到 EDK环境中,选择MicroBlaze软核处理器构建 SoC系统,实现 OPB与AHB总线协议的互连。
本文地址:https://www.eechina.com/thread-20690-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表