Skip to content

Repository files navigation

ArmpipleCPU

For course design bands 现在还是没有具体的思路按模块? 还是按流程步骤? 还是.......

NextStep

写完ID后要先仿真一下,看看写的对不对(虽然有尽量细致地在写了)。 6.12

  1. 之后研究下习题答案上的寄存器上清零/使能的操作是怎样连接的 奇怪的是答案还有一个reset(估计要改寄存器了)。
  2. 修改了控制逻辑不过现在的问题是STR还是只能对立即数的偏移量有效,所以我感觉RF要变成4进4出,倒是可以将instr[15:12]Rd单独开一个,instr[3:0]Rm单独开一个(疑似有点笨,但也不是不可行),现在不能满足STR Rd Rn Rm这条指令
  3. 然后就是有很多其他问题
  • 没有乘法指令
  • 没有非整形指令
  • 没有移位指令
  1. 冲突处理单元的两个地址RA1E和RA2E还没通过RA1D和RA2D通过IERegister引出来
  2. 最后一级目前看来要在整体里面搓(确实在整体里面搓了)
  3. 冲突比较单元是放在整体里面写还是怎么加在哪里(执行级),感觉直接放在整体里面简单一些(检测放在整体里搓的)
  4. 要将两个mem独立出来,难绷,好像不用直接coe导入就行
  5. 怎么检查,怎么debug
  6. 加油
  7. 基本检查完毕,现在来试试仿真。

第一次检测没过

  1. ip核的地址加1就足够了
  2. ifstage已测试
  3. IERegister也没问题
  4. writedatae直接连到r2de被弃用,因为这样的话还要再加一个forword的选择器,现在是按照书上的格式。(这一点记住改动)
  5. 内存指令扩展数位数取成24位,改回12位了。

下一阶段

  1. 明确和测试哪些指令可以使用
  2. 测试是否存在不合理的地方
  3. 明确现在的结构
  4. 改了四处,tb的接口定义、Extent中mem指令的立即数长度、IEstage中关于rd2e与writedatae的逻辑(改成书上的了)、还有arm的IO接口从内部拉出来的逻辑(当前状态)

About

For course design bands

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages