《自己动手写CPU》4.ori指令的实现+generate语法

1.立即数与扩展83ad9c0305bf440c88fbb806a4bebced.jpg

 2.流水线构造

模块图如下:

5dc157a625814b7eaf0ae01652234927.png

 各阶段工作及代码:

①取指:

08a9c83fc1d944f6a96ab08c00d493be.jpg

 ②译码:

6566e97066114b91bd294a79191eaacb.jpg

 5b5bd0db88444a5695477faac5b571e3.jpg

09e83eb71200423dbfcc6111ec8705fb.jpg 

 ③执行:

5050de1fc982459981382b053e1a8743.jpg

d182f710bf7c4d88b576945367fac131.jpg 

 ④访存:

7e69d2b7f7fb4ceeba5b7012dfc134d2.jpg

 ⑤回写:

在regfile模块中实现,只需将接口连接

⑥顶层模块

利用以上模块,进行例化,端口连接

b8ba418ed9ad40528e29371a1c3f5815.png

 3.指令存储器ROM的实现

ROM只读,大小为128KB

32a45806f6f446a78f68ab60584e5784.jpg

 4.最小SOPC

由openmips和ROM组成

a1f20ea4633c47d98cb5893dcec14748.png

 5.generate

for循环里不能直接调用module,这时可用generate。

3b3861b7e2b04648a8c60593dd638c47.jpg

 附:hdlbits题

648d1c79965b4f1a968ff1e9a2c38894.jpg

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值