3666|13

1891

帖子

2

TA的资源

纯净的硅(中级)

楼主
 

【FPGA代码学习】学习取指令 [复制链接]

     最近几天一直在学习《自己动手写CPU》。。。    书中作者设计了一个OpenMIPS 教学版本的处理器。虽然是教学版本,但是感觉对我这个菜鸟来说也是相当的复杂了。看了许久也是没有看太明白。


   

图2:OpenMIPS教学版结构图

取指、译码、执行、访存、回写。



书中第二章实现了一个指令的运行,代码如下,今天就暂时学习点这些东东吧。。。

inst_fetch.v


  1. module inst_fetch(

  2.         input        wire                                                                                clk,
  3.         input wire                                                                                rst,

  4.         output wire[31:0]           inst_o
  5.        
  6. );

  7.         wire[5:0] pc;
  8.         wire rom_ce;
  9.        

  10.   //pc_reg例化
  11.         pc_reg pc_reg0(
  12.                 .clk(clk),
  13.                 .rst(rst),
  14.                 .pc(pc),
  15.                 .ce(rom_ce)       
  16.                        
  17.         );
  18.        
  19.   rom rom0(
  20.     .ce(rom_ce),
  21.     .addr(pc),
  22.     .inst(inst_o)
  23.   );
  24.        


  25. endmodule
复制代码
inst_fetch_tb.v


  1. module inst_fetch_tb;

  2.   reg     CLOCK_50;
  3.   reg     rst;
  4.   wire[31:0]    inst;
  5.   
  6.       
  7.   initial begin
  8.     CLOCK_50 = 1'b0;
  9.     forever #10 CLOCK_50 = ~CLOCK_50;
  10.   end
  11.       
  12.   initial begin
  13.     rst = 1'b1;
  14.     #195 rst= 1'b0;
  15.     #1000 $stop;
  16.   end
  17.       
  18.   inst_fetch inst_fetch0(
  19.                 .clk(CLOCK_50),
  20.                 .rst(rst),
  21.                 .inst_o(inst)       
  22.         );

  23. endmodule
复制代码
  1. module pc_reg(

  2.         input        wire                                                                                clk,
  3.         input wire                                                                                rst,
  4.        
  5.         output reg[5:0]                        pc,
  6.         output reg                    ce
  7.        
  8. );

  9.         always [url=home.php?mod=space&uid=496176]@[/url] (posedge clk) begin
  10.                 if (ce == 1'b0) begin
  11.                         pc <= 6'h00;
  12.                 end else begin
  13.                          pc <= pc + 1'b1;
  14.                 end
  15.         end
  16.        
  17.         always @ (posedge clk) begin
  18.                 if (rst == 1'b1) begin
  19.                         ce <= 1'b0;
  20.                 end else begin
  21.                         ce <= 1'b1;
  22.                 end
  23.         end

  24. endmodule
复制代码

  1. module rom(

  2.         input wire                    ce,
  3.         input wire[5:0]                        addr,
  4.         output reg[31:0]                                        inst
  5.        
  6. );

  7.         reg[31:0]  rom[63:0];

  8.         initial $readmemh ( "rom.data", rom );

  9.         always @ (*) begin
  10.                 if (ce == 1'b0) begin
  11.                         inst <= 32'h0;
  12.           end else begin
  13.                   inst <= rom[addr];
  14.                 end
  15.         end

  16. endmodule
复制代码


此帖出自FPGA/CPLD论坛

最新回复

不懂技术,来凑热闹。  详情 回复 发表于 2015-8-29 23:02
点赞 关注
个人签名
分享铸就美好未来。。。




 

回复
举报

2700

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
已水,勿谢!
此帖出自FPGA/CPLD论坛

点评

前排,,挤挤。。。。  详情 回复 发表于 2015-8-29 21:44
个人签名作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
 
 

回复

5979

帖子

8

TA的资源

版主

板凳
 
牛逼
此帖出自FPGA/CPLD论坛

点评

挤挤,,,我也坐板凳。。。  详情 回复 发表于 2015-8-29 21:44
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 
 
 

回复

1万

帖子

2853

TA的资源

管理员

4
 
已阅
此帖出自FPGA/CPLD论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

小娜说她喜欢你,,小冰说她也喜欢你。。。。你自己选一个吧。。  详情 回复 发表于 2015-8-29 21:45
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 
 

回复

1891

帖子

2

TA的资源

纯净的硅(中级)

5
 

前排,,挤挤。。。。
此帖出自FPGA/CPLD论坛
个人签名
分享铸就美好未来。。。




 
 
 

回复

1891

帖子

2

TA的资源

纯净的硅(中级)

6
 

挤挤,,,我也坐板凳。。。
此帖出自FPGA/CPLD论坛
个人签名
分享铸就美好未来。。。




 
 
 

回复

1891

帖子

2

TA的资源

纯净的硅(中级)

7
 

  小娜说她喜欢你,,小冰说她也喜欢你。。。。你自己选一个吧。。
此帖出自FPGA/CPLD论坛
个人签名
分享铸就美好未来。。。




 
 
 

回复

6423

帖子

17

TA的资源

版主

8
 
没想到兵哥哥还搞过OPENMISC,我看这个图有点熟悉的风格呢
此帖出自FPGA/CPLD论坛

点评

自己动手写CPU 这本书里的。。。  详情 回复 发表于 2015-8-29 22:11
个人签名training
 
 
 

回复

1891

帖子

2

TA的资源

纯净的硅(中级)

9
 
白丁 发表于 2015-8-29 20:10
没想到兵哥哥还搞过OPENMISC,我看这个图有点熟悉的风格呢

自己动手写CPU   这本书里的。。。
此帖出自FPGA/CPLD论坛

点评

哦,看过作者关于openrisc的书,这个作者是个军人  详情 回复 发表于 2015-8-29 22:14
个人签名
分享铸就美好未来。。。




 
 
 

回复

6423

帖子

17

TA的资源

版主

10
 
574433742 发表于 2015-8-29 22:11
自己动手写CPU   这本书里的。。。

哦,看过作者关于openrisc的书,这个作者是个军人
此帖出自FPGA/CPLD论坛

点评

感觉他简介,有点好玩。。。我不知道是不是这个本来就很难,还是书叙述的不好。。,感觉读了一遍没能太读懂。。 首先,我是个刚入门FPGA的人。感觉FPGA好神奇,  详情 回复 发表于 2015-8-29 22:16
个人签名training
 
 
 

回复

1891

帖子

2

TA的资源

纯净的硅(中级)

11
 
白丁 发表于 2015-8-29 20:14
哦,看过作者关于openrisc的书,这个作者是个军人

感觉他简介,有点好玩。。。我不知道是不是这个本来就很难,还是书叙述的不好。。,感觉读了一遍没能太读懂。。

首先,我是个刚入门FPGA的人。感觉FPGA好神奇,
此帖出自FPGA/CPLD论坛
个人签名
分享铸就美好未来。。。




 
 
 

回复

1万

帖子

2853

TA的资源

管理员

12
 
574433742 发表于 2015-8-29 21:45
小娜说她喜欢你,,小冰说她也喜欢你。。。。你自己选一个吧。。

哎呀不用选不用选,我要小娜小冰姐妹通吃~哈哈哈哈哈,仰天长笑
此帖出自FPGA/CPLD论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 
 

回复

6040

帖子

203

TA的资源

版主

13
 
不懂技术,来凑热闹。
此帖出自FPGA/CPLD论坛
 
 
 

回复

1891

帖子

2

TA的资源

纯净的硅(中级)

14
 
lcofjp 发表于 2015-8-29 21:02
不懂技术,来凑热闹。

此帖出自FPGA/CPLD论坛
个人签名
分享铸就美好未来。。。




 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表