购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 QMEM的Wishbone总线接口

文件or1200_top.v是OR1200的顶层文件,其中定义了各个模块之间的连接关系,本书光盘中的or1200_top.vsd就是参照该文件绘制的,读者借助or1200_top.vsd可以清楚地了解到QMEM模块是如何连接到其余模块的。QMEM对外连接主要体现在如下4个方面。

(1)QMEM与CPU、IMMU的连接。

(2)QMEM与ICache的连接。

(3)QMEM与CPU、DMMU的连接。

(4)QMEM与DCache的连接。

3.3.1 QMEM与CPU、IMMU的连接

指令存放在存储器(对最小系统而言就是QMEM)中,OR1200的CPU模块是通过指令Wishbone总线与存储器相连的,从本书光盘的or1200_cpu.vsd、or1200_top.vsd中可以更直观地了解到CPU模块的指令Wishbone总线接口分别位于GENPC、IF两个模块。CPU、IMMU和QMEM的连接关系如图3.7所示。图中没有Wishbone规范中的WE_O信号,因为指令存储器是只读的,不可写,所以没有WE_O信号接口。

图3.7 OR1200中CPU、IMMU和QMEM模块的连接关系

在我们的最小系统中没有配置IMMU(IMMU模块实际存在,但没有发挥作用,在IMMU中直接将部分CPU的信号与QMEM的信号相连),所以可以简单地认为QMEM的信号直接连接到CPU模块,IMMU模块对应的顶层文件or1200_immu_top.v中有如下代码。

所以在最小系统中QMEM与CPU的连接关系可以认为如图3.8所示,QMEM与CPU内部的GENPC、IF模块是直接相连的。

图3.8 在最小系统中IMMU的作用很小

3.3.2 QMEM与ICache的连接

如果要读取指令的地址不在QMEM地址范围内,那么QMEM会将该地址转发给Icache。ICache如果未命中,则会通过WB_BIU访问外部存储器。此处QMEM与ICache、ICache与WB_BIU、WB_BIU与外部存储器之间均是采用Wishbone总线连接,如图3.9所示。

图3.9 QMEM、ICache、WB_BIU、外部存储器之间都是使用Wishbone总线规范互联

在QMEM中有如下赋值语句,其中qmem_iack为1表示要读取的指令地址在QMEM地址范围内,且已取得,反之表示指令地址不在QMEM地址范围内。iaddr_qmem_hit的含义之前已解释过,为0表示指令地址不在QMEM地址范围内。

如果iaddr_qmem_hit、qmem_iack为0,上述代码相当于如下内容。

结合图3.8、图3.9可以明白,上述代码表明当指令地址不在QMEM地址范围内时.QMEM只是将CPU、IMMU的Wishbone总线接口与ICache的Wishbone总线接口直接连接起来。

3.3.3 QMEM与CPU、DMMU的连接

OR1200的CPU模块是通过数据Wishbone总线与存储器相连的,借助于本书光盘的or1200_cpu.vsd、or1200_top.vsd可以直观地了解到CPU模块的数据Wishbone总线接口全部位于LSU模块。CPU、DMMU和QMEM的连接关系如图3.10所示。此处提供了WE_O、DAT_O信号接口,因为数据存储器是可读可写的。

在我们的最小系统中也没有配置DMMU,所以可以简单地认为QMEM的信号直接连接到CPU模块,DMMU模块对应的顶层文件or1200_dmmu_top.v中有如下代码。

图3.10 OR1200中CPU、DMMU、QMEM的连接关系

所以在最小系统中QMEM与CPU的连接关系可以认为如图3.11所示,QMEM与CPU内部的LSU模块是直接相连的。

图3.11 在最小系统中DMMU的作用很小

3.3.4 QMEM与DCache的连接

如果要访问数据的地址不在QMEM地址范围内,QMEM会将该地址转发给Dcache。DCache如果未命中,则会通过SB、WB_BIU访问外部存储器。此处QMEM与DCache、DCache与SB、SB与WB_BIU、WB_BIU与外部存储器之间均是采用Wishbone总线连接,如图3.12所示。

图3.12 QMEM、DCache、SB、WB_BIU、外部存储器之间都通过Wishbne总线规范连接

在QMEM中有如下赋值语句,daddr_qmem_hit的含义之前已解释过,为0表示要访问的数据地址不在QMEM地址范围内,反之表示要访问的数据地址在QMEM地址范围内。

如果daddr_qmem_hit为0,上述代码相当于如下内容。

参考图3.11、3.12可以明白,上述代码表示当要访问的数据地址不在QMEM地址范围内时QMEM只是将CPU、DMMU的Wishbone总线接口与DCache的Wishbone总线接口直接连接起来。 wiDlSp9Irmpl9zDu/uKiKqaAvCQPi33kVnnQbCKzYc8BpxQNmzaiuJFLwfxdrqkZ

点击中间区域
呼出菜单
上一章
目录
下一章
×