找回密码
 注册
关于网站域名变更的通知
查看: 261|回复: 1
打印 上一主题 下一主题

OPENRISC 代码组织结构

[复制链接]
  • TA的每日心情
    开心
    2019-11-19 15:19
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2019-4-10 11:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    OPENRISC 代码组织结构
    9 T" X% Y6 w1 u1 g/ R; r; r

    # k, h% G: k  x" V( x7 h
    OR1200内部各模块连接关系如下图所示
    % O) D4 K9 J0 G2 H
    8 x9 i( Q9 K4 L7 u: c' o# U$ ?
    模块名
    全称
    作用
    对应的主要verilog文件
    CPU
    处理器单元(Central Process Uint)
    执行运算、控制
    or1200_cpu.v
    IMMU
    指令MMU(Instruction MMU)
    对指令地址进行翻译
    or1200_immu_top.vor1200_immu_tlb.v
    DMMU
    数据MMU(Data MMU)
    对加载/存储指令中要读写的数据地址进行翻译
    or1200_dmmu_top.vor1200_dmmu_tlb.v
    QMEM
    快速存储器(Quick Memory)
    类似SRAM,可以快速访问,适合放一些经常使用的代码
    or1200_qmem_top.v
    ICache
    指令缓存(Instruction Cache)
    缓存处理器取到的指令,以便下一次可以快速访问
    or1200_ic_top.vor1200_ic_fsm.vor1200_ic_ram.vor1200_ic_tag.v
    DCache
    数据缓存(Data Cache)
    缓存处理器取到的数据,以便下一次可以快速访问
    or1200_dc_top.vor1200_dc_fsm.vor1200_dc_ram.vor1200_dc_tag.v
    SB
    存储缓冲区(Store Buffer)
    CPU与外部存储器之间的速率不一致时,SB起缓冲的作用
    or1200_sb.vor1200_sb_fifo.v
    WB_BIU
    Wishbone 总线接口单元(Wishbone_Bus InteRFace Unit)
    OR1200可以挂接在Wishbone总线上,其符合Wishbone B3版标准
    or1200_wb_biu.v
    PIC
    可编程中断控制器(Programmable Interrupt Controller)
    OR1200最多支持32个外部中断
    or1200_pic.v
    PM
    电源管理(Power Management)
    OR1200支持多种节电模式
    or1200_pm.v
    TT
    计时器单元(Tick Timer)
    用于对时钟计数,当达到某一个预设值时会引发中断
    or1200_tt.v
    DU
    调试单元(Debug Unit)
    辅助调试系统
    or1200_du.v

    # f9 W: X9 @# L
    1 Z8 Z: E: ^- n6 [
    IMMU、DMMU、ICache、DCache、QMEM、SB、PIC、PM、DU、TT都是可选项,CPU和QMEM组成最小系统。OR1200中CPU模块的内部功能模块如下图所示。, ^# V& F) l& C1 }/ J; V9 t' b

    ; m. T- ]8 m- j# c  R+ L
    CPU模块内部各功能模块说明
    模块名
    全称
    作用
    对应的主要verilog文件
    CTRL
    控制单元
    指令译码,生成其余模块的控制信号
    or1200_ctrl.v
    ALU
    算术逻辑单元
    完成整数运算、移位、比较、逻辑、数据传送等运算
    or1200_alu.v
    RF
    寄存器文件
    通用寄存器r0-r31对应该模块,实现对r0-r31的读写
    or1200_rf.v
    MULTI_MAC
    乘累加单元
    完成乘法、除法、乘累加运算
    or1200_mult_mac.v
    SPRS
    特殊寄存器集
    控制对特殊寄存器的读写,其中也实现部分特殊寄存器,如SR
    or1200_sprs.v
    EXCEPTION
    异常控制单元
    对异常情况进行处理,引导CPU跳转到异常处理例程入口地址
    or1200_except.v
    CFGR
    配置寄存器集
    该模块实现了第0组特殊寄存器中的一些只读寄存器
    or1200_cfgr.v
    FREEZE
    CPU暂停单元
    控制CPU的运行与暂停
    or1200_freeze.v
    GENPC
    PC计算单元
    依据指令执行或者异常情况计算PC值
    or1200_genpc.v
    IF
    取指预取单元
    取到的指令首先送到IF模块,在其中判断是否需要暂存指令,还是直接送往CTRL模块,从而进入流水线
    or1200_if.v
    LSU
    加载存储单元
    加载存储类指令使用本模块读写外部存储器
    or1200_lsu.v
    OPERAND_MUX
    操作数复用单元
    依据指令从多个输入中选择其中两个,作为操作数a、b,送到各个计算模块
    or1200_operandmuxes.v
    WB_MUX
    回写控制单元
    用于从多个计算模块中选择一个计算结果作为要写入的目的寄存器的数据
    or1200_wbmux.v
    0 S' X% y) `$ n) j6 |! i
    0 l1 V1 H" X4 ^( X

    该用户从未签到

    2#
    发表于 2019-4-10 17:35 | 只看该作者
    最近正在找这方面的资料 谢谢楼主分享
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-30 06:56 , Processed in 0.109375 second(s), 24 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表