基于OR1200的一个简单SOPC

以下内容摘自《步步惊芯——软核处理器内部设计分析》一书

 

      在本书第2章建立了最小系统,最小系统只由CPUQMEM模块组成,借助于最小系统,我们分析了OR1200各类指令的执行过程、熟悉了流水线的工作原理以及CPU内部各个模块的代码实现,第10章在最小系统上增添了IMMUDMMU模块,借此分析了OR1200中内存管理单元的实现原理。本章将建立一个基于OR1200的简单SOPC,后面的示例程序将运行在这个简单SOPC之上,借助于该SOPC分析OR1200ICacheDCacheWishbone总线接口单元等模块。

      简单SOPCOR1200、互联矩阵WB_CONMAXRAM组成,11.1节给出了简单SOPC的结构,11.211.3节分别介绍了互联矩阵WB_CONMAXRAM11.4节介绍了SOPC的顶层文件。有了前面的准备, 11.5节新建ModelSim工程min_or1200_sopc用来仿真简单SOPC。本章最后编写了一个示例程序,并使用ModelSim仿真观察其在简单SOPC上的执行效果。

 

11.1 简单SOPC的结构

      第3章介绍Wishbone总线的时候提及Wishbone总线有四种互联方式:点对点、数据流、共享总线、交叉互联。

      点对点方式在OR1200内部广泛使用,一般有一个主设备、一个从设备,比如CPUIMMUQMEM之间,CPUDMMUQMEM之间,QMEMICache之间,QMEMStore BufferSB)之间,SBDCache之间等,在分析QMEM模块时都已介绍,读者可以参考图3.7-3.12

      但是对于一个片上系统,存在多个模块,并且某一模块能够访问其余多个模块,比如存在CPUDMA控制器、FlashRAMGPIO等,其中CPUDMA控制器作为主设备,FlashRAMGPIO作为从设备,主设备CPU可以访问FlashRAMGPIO,主设备DMA控制器也可以访问FlashRAMGPIO,当两者对同一设备发出访问请求时,需要一个仲裁机制判断哪个主设备占用总线,所以片上系统一般使用共享总线或者交叉互联方式。

      1、共享总线

      共享总线互联方式适合于系统中有两个或者多个主设备需要与一个或者多个从设备通信的情况,它们通过共享的总线进行通信。主设备在需要与一个从设备通信时,需要先向仲裁器申请总线占有权,获得允许后开始占用总线并与目标从设备开始通信,通信结束后释放总线。当多个主设备同时希望占有总线时,仲裁器通过一定的优先级逻辑分配总线使用机会。其典型框图如图11.1所示。共享总线的缺点是同一时刻只能有一对主、从设备建立通信。

      2、交叉互联

      交叉互联主要使用在多个主设备同时访问多个从设备的情况,其典型框图如图11.2所示。在这种连接方式下,主设备发出地址总线请求对某个从设备进行访问,仲裁器查看总线和从设备是否空闲,从而决定是否给主设备总线访问权。交叉互联方式允许多对主设备和从设备同时进行通信,而共享总线互联方式在同一时刻只允许一对主、从设备进行通信。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
开源处理器源代码,学习优秀的代码编写 ////////////////////////////////////////////////////////////////////// //// //// //// OR1200's ALU //// //// //// //// This file is part of the OpenRISC 1200 project //// //// http://www.opencores.org/cores/or1k/ //// //// //// //// Description //// //// ALU //// //// //// //// To Do: //// //// - make it smaller and faster //// //// //// //// Author(s): //// //// - Damjan Lampret, lampret@opencores.org //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2000 Authors and OPENCORES.ORG //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// //////////////////////////////////////////////////////////////////////

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值