当前位置:首页 > EDA > 电子设计自动化
[导读] 摘要:本文首先介绍了 AHB和OPB总线协议特点,并在此基础上详细阐述了 OPB_AHB总线桥接器的功能和设计思路,最后给出了 OPB_AHB的验证方法和仿真结果。并在 Xilinx的EDK环境下利用MicroBlaze软核构建了 SoC系统并通

 摘要:本文首先介绍了 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总线协议的互连。

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

本文根据完整的基准测试,将Achronix Semiconductor公司推出的Speedster7t FPGA与GPU解决方案进行比较,在运行同一个Llama2 70B参数模型时,该项基于FPGA的解决方案实现了超越性...

关键字: 大模型 FPGA LLM

在这篇文章中,小编将为大家带来FPGA三段式状态机设计的相关内容。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: FPGA 状态机

本文中,小编将对FPGA不复位的代码实现予以介绍

关键字: FPGA 复位

本文中,小编将对OV7670 驱动设计予以详细介绍,如果你想对它的详细情况有所认识,或者想要增进对设计方案的了解程度,不妨请看以下内容哦。

关键字: OV7670 驱动设计 FPGA 开发板

一直以来,AD转换都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来FPGA Verilog HDL实现AD转换的实例设计的相关介绍,详细内容请看下文。

关键字: FPGA AD Verilog

在这篇文章中,小编将对FPGA中的定点数处理方法的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: FPGA 定点数

在这篇文章中,小编将为大家带来FPGA电源排序方案的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: FPGA 电源 电源排序

以下内容中,小编将对FPGA跨时钟域处理技术方法进行着重介绍和阐述

关键字: FPGA 跨时钟域

在下述的内容中,小编将会基于FPGA开发板去点亮LED灯

关键字: FPGA LED 开发板

FPGA奇偶校验设计和代码实现将是下述内容的主要介绍内容,通过这篇文章,小编希望大家可以对FPGA奇偶校验的相关情况以及信息有所认识和了解,详细内容如下。

关键字: FPGA 奇偶校验
关闭
关闭