14614|22

12

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

用Verilog实现51单片机内核 [复制链接]

 
本帖最后由 yaphetszyj 于 2016-8-1 10:19 编辑

请教大家,用Verilog实现51单片机内核的具体步骤呢,老师给的方向,不太会,希望大家帮帮我~

目前我已将51单片机的111条指令都学完了,并将这些指令按照机器周期数、字节数分类了,但在具体实现的时候,不知道从哪里下手,比如我想做一个2级流水的内核,从哪里下手比较好?再就是一些模块,我该怎样分呢?大神们,快来吧,我需要你们!!
此帖出自FPGA/CPLD论坛

最新回复

111条指令学完只是开始【Doge保命】  详情 回复 发表于 2024-2-22 19:03
点赞 关注
 

回复
举报

1274

帖子

2

TA的资源

版主

沙发
 
一个不切实际的毕业设计!
此帖出自FPGA/CPLD论坛
 
 

回复

1950

帖子

4

TA的资源

版主

板凳
 
楼主,真心感兴趣做这个,肯定会有好东西出来
ARM公司开始也就7个人。
你可以放开,谈谈你的想法,这样大家好跟进,助、祝你成功!
此帖出自FPGA/CPLD论坛
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

4
 
通宵敲代码 发表于 2016-7-29 20:09
一个不切实际的毕业设计!

咬着牙 做吧~
此帖出自FPGA/CPLD论坛
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

5
 
5525 发表于 2016-7-29 20:31
楼主,真心感兴趣做这个,肯定会有好东西出来
ARM公司开始也就7个人。
你可以放开,谈谈你的想 ...

多谢你的鼓励,我现在在理论方面,像51的111条指令我都基本上学习完了,流水也只懂一点。。。
此帖出自FPGA/CPLD论坛
 
 
 

回复

1950

帖子

4

TA的资源

版主

6
 
51 的流水线,还比较好弄,一个指令周期占10还是12个clk的

自己做的话,选几个代表的指令,先把架构写出来,在添加,丰满
此帖出自FPGA/CPLD论坛
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

7
 
5525 发表于 2016-8-1 21:05
51 的流水线,还比较好弄,一个指令周期占10还是12个clk的

自己做的话,选几个代表的指令,先把架构写出 ...

多谢大大指点~
此帖出自FPGA/CPLD论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 
看这本书吧:兼容ARM9的软核处理器设计:基于FPGA。虽然说的是ARM9的内核用Verilog实现,但是原理是一样的。
此帖出自FPGA/CPLD论坛

点评

上来就搞ARM不是不可以。 只要尝试和喜欢就行。 ARM的部分核,网上有开源的代码的。  详情 回复 发表于 2016-8-5 21:36

赞赏

1

查看全部赞赏

 
 
 

回复

1950

帖子

4

TA的资源

版主

9
 
youxiliu39 发表于 2016-8-5 17:15
看这本书吧:兼容ARM9的软核处理器设计:基于FPGA。虽然说的是ARM9的内核用Verilog实现,但是原理是一样的 ...

上来就搞ARM不是不可以。
只要尝试和喜欢就行。
ARM的部分核,网上有开源的代码的。
此帖出自FPGA/CPLD论坛
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

10
 
youxiliu39 发表于 2016-8-5 17:15
看这本书吧:兼容ARM9的软核处理器设计:基于FPGA。虽然说的是ARM9的内核用Verilog实现,但是原理是一样的 ...

朋友,你有这本书的电子版吗?
此帖出自FPGA/CPLD论坛
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

11
 
5525 发表于 2016-8-5 21:36
上来就搞ARM不是不可以。
只要尝试和喜欢就行。
ARM的部分核,网上有开源的代码的。

感觉ARM的要难很多啊
此帖出自FPGA/CPLD论坛
 
 
 

回复

1950

帖子

4

TA的资源

版主

12
 
东西不是一下子,搞完的。
也不是说向书上说的 设计 -- 开发 -- 测试 -- 结束

的 先弄个小的 走下上面的流程
在弄后面的。
此帖出自FPGA/CPLD论坛
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

13
 
5525 发表于 2016-8-6 13:29
东西不是一下子,搞完的。
也不是说向书上说的 设计 -- 开发 -- 测试 -- 结束

的 先弄个小的 走下上面 ...

我还是先做51的,慢慢来吧~
此帖出自FPGA/CPLD论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

14
 
没有创意
此帖出自FPGA/CPLD论坛
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

15
 
5525 发表于 2016-8-1 21:05
51 的流水线,还比较好弄,一个指令周期占10还是12个clk的

自己做的话,选几个代表的指令,先把架构写出 ...

问你个问题,MCS-51指令集里乘除法是4个机器周期,如果我想用2级的流水线实现,乘除法指令是不是也变成了2个机器周期?
此帖出自FPGA/CPLD论坛

点评

为了避免增加复杂度,前期项目收缩。 初期不要做这种改进吧 因为如果要考虑, a x b x c 的情况,这个就算你改进了还是要等 如果要考虑, a x b x c x d 的情况,a x b, c x d, 最后结合在x 可以 这个你需要  详情 回复 发表于 2016-8-20 21:01
 
 
 

回复

1950

帖子

4

TA的资源

版主

16
 
yaphetszyj 发表于 2016-8-20 20:43
问你个问题,MCS-51指令集里乘除法是4个机器周期,如果我想用2级的流水线实现,乘除法指令是不是也变成了 ...

为了避免增加复杂度,前期项目收缩。
初期不要做这种改进吧

因为如果要考虑, a x b x c 的情况,这个就算你改进了还是要等

如果要考虑, a x b x c x d 的情况,a x b, c x d, 最后结合在x 可以
这个你需要用两路 乘法器 并行,先分后和,而且要改进编译器软件。
此帖出自FPGA/CPLD论坛

点评

也就是说,不管用几级流水线,51的乘除法都用4个机器周期来实现,是吧  详情 回复 发表于 2016-8-20 21:06
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

17
 
本帖最后由 yaphetszyj 于 2016-8-20 21:15 编辑
5525 发表于 2016-8-20 21:01
为了避免增加复杂度,前期项目收缩。
初期不要做这种改进吧

因为如果要考虑, a x b x c 的情况,这 ...

也就是说,不管用几级流水线,51的乘除法都用4个机器周期来实现,是吧
其实我是想问,怎么用两级流水线来实现一个4机器周期的指令,你有没有什么建议?
此帖出自FPGA/CPLD论坛

点评

这个不需要复杂的流水线啊,生成一个乘法器,一般2个CLK3个CLK即可出结果, 你直接给a b, 等2 到 3 个周期,出结果,计算下一个即可。 如果,你可以简单的画个图,这样更便于沟通。 说不定哪天你就收货好点子了  详情 回复 发表于 2016-8-20 21:22
 
 
 

回复

1950

帖子

4

TA的资源

版主

18
 
yaphetszyj 发表于 2016-8-20 21:06
也就是说,不管用几级流水线,51的乘除法都用4个机器周期来实现,是吧
其实我是想问,怎么用两级流水线 ...

这个不需要复杂的流水线啊,生成一个乘法器,一般2个CLK3个CLK即可出结果,
你直接给a b, 等2 到 3 个周期,出结果,计算下一个即可。

如果,你可以简单的画个图,这样更便于沟通。
说不定哪天你就收货好点子了。

此帖出自FPGA/CPLD论坛

点评

我现在的想法就是,做一个两级流水线,取指令和指令两部分,执行包括译码、准备操作数、alu和写回。但是我现在遇到的问题 是怎么设计流水线的时钟 才能让所有的指令能够合理的运行,表达的很凌乱~~  详情 回复 发表于 2016-8-20 21:30
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

19
 
5525 发表于 2016-8-20 21:22
这个不需要复杂的流水线啊,生成一个乘法器,一般2个CLK3个CLK即可出结果,
你直接给a b, 等2 到 3 个周 ...

我现在的想法就是,做一个两级流水线,取指令和指令两部分,执行包括译码、准备操作数、alu和写回。但是我现在遇到的问题 是怎么设计流水线的时钟 才能让所有的指令能够合理的运行,表达的很凌乱~~
此帖出自FPGA/CPLD论坛
 
 
 

回复

1950

帖子

4

TA的资源

版主

20
 
楼主,

这里的时钟只有1个,都是同期设计

时序的话,做个计数器,0到处理时间-1,
然后生成的pulse,延时几级,
这样你的取指令,执行,写回就都有了
此帖出自FPGA/CPLD论坛
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表