网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月21日
漏签
0
天
红石电路吧
关注:
32,252
贴子:
153,455
看贴
图片
吧主推荐
玩乐
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
尾页
433
回复贴,共
11
页
,跳到
页
确定
<返回红石电路吧
>0< 加载中...
回复:计算机组成原理及ProjecRed技术实用教程——从零开始构建计算
只看楼主
收藏
回复
liamtuan
压力板
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这里是主要的控制字(其中标志位和跳转后面会讲)
IP属地:广东
71楼
2014-10-24 20:50
回复
收起回复
liamtuan
压力板
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
在上图中,可以对W/CI/RM/WM/SF/JP/JW进行编码,编码成000,001,010,011,100,这样只需要三个信号就能确定六个控制信号了,也就是这样:
加上其他的信号,比如运算选择信号、寄存器选择信号、立即数,就是一个完整的指令格式了!
至于怎么编码,需要用到组合逻辑分析的知识,如果实在觉得麻烦,也可以借助Logisim等工具自动生成
这里是我设计的译码器:
IP属地:广东
73楼
2014-10-24 21:05
回复
收起回复
2025-08-21 06:13:07
广告
不感兴趣
开通SVIP免广告
liamtuan
压力板
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
从上图可以看出,选择功能需要3bit,选择运算需要5bit,选择目标寄存器2bit,源寄存器A2bit,源寄存器B2bit,已经有14bit了,即使是16bit的指令,剩下的立即数和跳转方式几乎没有容身之地了,而加大指令长度又会造成浪费,这时可以采用复用技术,某些位在不同的情况下行使不同的功能。例如这里当寄存器与立即数运算时,B寄存器占用的资源复用作立即数,当跳转时,运算选择信号其中的S2、S1、S0复用作跳转方式,所有的寄存器选择信号复用为立即数。
IP属地:广东
74楼
2014-10-24 21:10
回复
收起回复
liamtuan
压力板
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
此外还有状态寄存器还没弄,状态寄存器本应放在寄存器里,这里为了方便,放入控制器。
由于状态寄存器只用来做跳转依据,所以只有在JP为1时才能查看状态位确定是否进行跳转,这里需要一个与门和数据选择器,与门用来实现JP的总控制功能,数据选择器用来选择跳转方式。
综合以上的程序计数器、状态寄存器、指令寄存器、指令译码器
一个【完整的控制器】就构建完成了!
IP属地:广东
75楼
2014-10-24 21:16
回复
收起回复
克里斯汀rol
粘性活塞
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
关于mod之类的我还是喜欢原版红石,延迟可以使用无延迟电路,除去这个红石还是很强大的说
IP属地:四川
来自
Android客户端
76楼
2014-10-25 09:32
回复
收起回复
克里斯汀rol
粘性活塞
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
等等,后面为什么全是数电!
IP属地:四川
来自
Android客户端
77楼
2014-10-25 09:35
回复(17)
收起回复
eπLS6
绊线
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
路过。。。
IP属地:重庆
来自
Android客户端
78楼
2014-10-25 12:10
回复
收起回复
liamtuan
压力板
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
有了【寄存器】、【运算器】、【控制器】,设计好了数据通路和指令集,就可以构建【CPU】了!
但是如果一大堆电路全部弄到一起的话,很容易弄乱的,所以需要把几个模块封装一下。
Logisim里封装还是很容易的。
运算器:
寄存器组:
控制器:
IP属地:广东
79楼
2014-10-25 16:57
回复
收起回复
2025-08-21 06:07:07
广告
不感兴趣
开通SVIP免广告
liamtuan
压力板
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
综合以上,就可以连接CPU的模块间线路了!
首先连接三个模块的通路(依照体系结构和数据通路):
IP属地:广东
81楼
2014-10-25 17:12
回复
收起回复
liamtuan
压力板
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
然后添加时钟信号(需要注意时钟的顺序):
IP属地:广东
82楼
2014-10-25 17:14
回复
收起回复
liamtuan
压力板
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
好啦,一个完整的【CPU】就构建完成了!
IP属地:广东
83楼
2014-10-25 17:15
回复
收起回复
liamtuan
压力板
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
但是有了CPU还是不够的,还要有存储器才行,ROM和RAM的连接方式前面已经讲过,这里就不再赘述。
最终连出的就是这样子:
重启启动时钟,机器就能够根据ROM中的指令(初始地址为0)运行了!
IP属地:广东
84楼
2014-10-25 17:21
回复
收起回复
liamtuan
压力板
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
【编译器开发】
虽然我们设计的CPU能够跑起来了,但是要让它运行指定的程序还是很困难的,因为程序都是二进制的机器码,这样编程效率太低了,也容易出错,所以我们需要一个能够直观、高效编程方法,那就是汇编。
编译器的开发需要有编译原理的知识,由于编译原理较为复杂,这里不再阐述。
这里我用Java写了个简单的汇编编译器,能够将汇编源代码转化成机器码。
这是一个求斐波那契数列并存入RAM的程序:
用编译器编译成的机器码(十六进制表示):
IP属地:广东
85楼
2014-10-25 17:34
回复(1)
收起回复
liamtuan
压力板
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
把编译出来的机器码导入ROM中,运行计算机,在RAM中成功得到了斐波那契数列!
IP属地:广东
86楼
2014-10-25 17:38
回复
收起回复
2025-08-21 06:01:07
广告
不感兴趣
开通SVIP免广告
814089338
红石火把
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
好贴,已收藏,希望楼主能把计算机讲的更全面些,各种外围都讲一下。
IP属地:甘肃
87楼
2014-10-25 19:54
回复
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
吧友猜中了!黑神话新作真是钟馗
1657530
2
诬到离谱!魔怔女诬告8岁小男孩儿
1559475
3
放弃DLC开新坑,这步棋走的怎么样?
1301832
4
硬核!93阅兵新装备超乎想象
1214892
5
国运流网文:开局十倍洪水,内地吃上海鲜
974766
6
《热血江湖:归来》公测定档
825025
7
什么都蹭的韩国人,盯上捉鬼的钟馗
794376
8
实力碾压,AL零封FPX轻松取胜
597080
9
著名歌手千百惠因病去世享年62岁
497860
10
足协杯“惨案”国安进7球淘汰昆明
357630
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示