原创 【博客大赛】OpenRisc-1200设计分析2

2014-3-28 11:03 1276 13 14 分类: FPGA/CPLD 文集: OpenRisc-1200

二:CPU/DSP模块

20140328110058151001.png

CPU/DSP核心由指令单元(instruction unit)、通用寄存器(GPRs)、异常单元(exceptions)、系统单元(system unit)、整数执行流水线(integer ex pipeline)、MAC单元(MAC unit)、load/store unitlsu),及它们对应的接口。

 

20140328110106484002.png

 

Cpu/dsp单元代码包括如下单元:

20140328110114385003.png

alu模块接收来自ctrl的运算加减及逻辑运算,移位及比较指令,结果反馈到result线上,由wbmux模块选择输出到rf寄存器文件或者输出到operandmuxes,再由lsu模块装入存储器。

20140328110122371004.png

Cfgror1200vrupr和配置寄存器读出配置值,由spr_addr地址总线上来的地址读出配置寄存器的值,这些值被传送到sprs模块中;

20140328110128992005.png

Ctrl模块完成指令解码的大部分工作,它将来自if模块的指令进行分析解码后,分解成rf模块的ramaramb读地址和读使能信号。

20140328110136767006.png

Except模块在一个异常发生后,设置异常类型,将sr寄存器数据拷贝到esr寄存器,将程序计数器地址拷贝到epcr寄存器,将指令出错地址拷贝到eear寄存器。各种异常信号、pc地址及lsu的地址等传入到except模块,该模块触发各种异常,刷流水线,并将异常的各种寄存器值传给sprs模块存储。

20140328110142566007.png

Freeze产生暂停逻辑(停cpu流水线及指令支取等),它根据异常信息、模块停止信息及高速缓存出错信息等产生genpc_freezeif_freezeid_freezeex_freezewb_freeze暂停信号控制流水线中的各个模块。

20140328110149147008.png

 

Genpc模块根据分支指令集异常寄存器信息等计算程序计数器pc的地址,并将地址传给指令高速缓存。

20140328110154704009.png

If模块从指令高速缓存中输入指令数据及地址,并将指令分发给ctrl模块解码,将指令地址分发给except模块存储。输出停止信号到freezeexcept模块,输出重支取信号到genpc模块,将引起的异常送到cpu内部总线上。

20140328110201951010.png

Lsu模块是load/store单元,是cpudc之间的接口。

20140328110209508011.png

Mult_mac模块是32*32位乘法累加器模块。

20140328110215146012.png

Operandmuxes模块是个操作数多选2的选择器,它从rf模块的数据输出、wbmux模块的数据输出及ctrl模块的simm引脚输出中选择两个数据输出,数据输出alsu模块作为基地址,数据输出b作为其他模块的数据输入。

20140328110223713013.png

Rf模块是cpu内部的寄存器文件ram,它实例化两个双端口ram或通用寄存器文件ram,将来自wbmux模块的输出的数据和sprs模块输出的数据写入通用寄存器,或将通用寄存器的数据输出到operandmuxes模块或sprs模块。

20140328110228513014.png

Sprs模块提供了到spr特殊寄存器的即可,它解码spr地址并访问sprSpr特殊寄存器的数据被输出到各个模块,对各个模块进行控制。

20140328110233729015.png

 

Wbmux模块是or1200的回写复用器,它使用一个41的选择器,从4路输入中选择1路进行输出,在流水线回写暂停时,使用rfwb_op[0]设置muxreg_valid输出,这个回写复用器是cpu的流水线的回写阶段。、

20140328110241190016.png

文章评论1条评论)

登录后参与讨论

用户430155 2014-4-7 09:16

必须赞一个。。。。。。
相关推荐阅读
sunyzz 2017-08-19 10:38
【博客大赛】AVALON总线介绍
1、AVALON总线简介Avalon总线是一种协议较为简单的片内总线,是ALTERA公司定义的片上互联总线,该总线可以将诸如NIOS II的CPU与其他外设连接起来,进而进行数据交换。AVALON总线...
sunyzz 2017-08-17 21:36
【博客大赛】不要轻易做职场滥好人
小A毕业于国内普通高校,但是他聪明,勤奋,能干,动手能力强,可是即便有这些优点也不能让小A轻轻松松找到一份好工作。这不,去年9月份小A好不容易找到一份工作,然后立马就入职了C公司,生怕C公司过两天不要...
sunyzz 2017-08-16 21:15
【博客大赛】IC设计低功耗技术四
五:工艺层面的降低功耗前面几节都是在讨论设计人员如何在前期阶段,中期阶段降低功耗,涉及到软件层面的,硬件层面的,这些技巧基本都是前辈总结出来的,或者根据理论推论出来的。但是到了后期,想降低功耗基本就要...
sunyzz 2017-08-14 22:35
【博客大赛】IC设计之低功耗技术三
四:RTL(寄存器传输)级的低功耗设计4.1 状态机的设计状态机编码中一般有两种方式,普通的二进制编码,特殊的格雷码,格雷码的特点是两个数据之间的跳变时只会有一个bit在toggle,显然比起多bit...
sunyzz 2017-08-12 16:51
【博客大赛】IC设计之低功耗技术二
三、架构层面的降低功耗系统的实现有很多的方式,每种方式对功耗的影响都不相同,本节主要介绍架构对功耗的影响。3.1 高级门口电路 在同步电路系统中,时钟占据了大部分的动态功耗,因而在一些情况下,如果有些...
sunyzz 2017-08-12 10:37
【博客大赛】IC 设计之低功耗技术一
一、前言随着计算机技术和微电子技术的迅速发展,嵌入式系统应用领域越来越广泛。节能是全球化的热潮,如计算机里的许多芯片过去用5V供电,现在用3.3V,1.8V,甚至更低的电压。目前的低功耗设计主要从芯片...
我要评论
1
13
关闭 站长推荐上一条 /2 下一条