龙少精简炮灰测试版8位机(原创、纯硬件、开源)
神之觉醒2012/11/11计算机电子学 IP:广东
这个做来当炮灰测试的,只做了些CPU基本的功能,很简单的,主要是验证本人YY的CPU控制器架构的实际表现,结果还可以;
架构、电路原理、制作过程后面再边整理边发上来,现在先写了段小程序驱动SD、TF卡和小液晶来展示这个CPU的简单应用,程序是汇编(指令集)写的,对ROM手工2进制编程,现在没有做RAM/IO板,只是用了一片8KB 100ns的SRAM加电容(电容用来保持SRAM数据不丢失)当做ROM,这个简单的程序用ALU寄存器就够了,不用RAM

这个CPU可在3.3V工作,供电是7805稳压,接上了有压降,现在实测电压4V  电流在400~500mA之间跳动,
最高主频未知~~~

后面我再考虑下是否做个C编译器;

龙少CPU简单编程应用展示 屏分辩率128x160   RGB为16位色模式:
点击此处查看视频
XXXXXXXXXXXXXXXXXXXX/programs/view/Y3x2o4d_snY/


下面是CPU现在周边的配置:

CPU时钟发生和复位板  正面:
CPU时钟发生和复位.jpg
CPU时钟发生和复位板  背面:
CPU时钟发生和复位(背面).jpg

ALU寄存器数据指示LED和拨码开关(拨码开关起初是用来调试指令的)  正面:
数据指示LED和拨码开关.jpg
ALU寄存器数据指示LED和拨码开关  背面:
数据指示LED和拨码开关(背面).jpg

SRAM加电容当ROM用(用3V的电池充电了电压会变低的,后面我改成电容了)  正面:
SRAM.jpg
SRAM加电容当ROM用  背面:
SRAM(背面).jpg

硬件SPI板 正面:
硬件SPI.jpg
硬件SPI板 背面:
硬件SPI(背面).jpg

CPU板正面:
CPU板.jpg
CPU板背面:
CPU板背面.jpg    左面.jpg
后面.jpg
右面.jpg
+30  科创币    yanli12321    2012/11/11 牛人啊,今天分都给你了
+24  科创币    delete    2012/11/11 高质量发帖
+50  科创币    hefanghua    2012/11/11 大赞。LZ高超的水平续写了8位机的传奇。期待后续详解。
+40  科创币    celeron533    2012/11/11 高质量发帖
+25  科创币    cccyl    2012/11/11 厉害啊
+50  科创币    小哈_abc    2012/11/11 楼主拨了多长时间才把这个程序烧上去的啊。。。
+15  科创币    daxus    2012/11/11 碉堡了。。。
+50  科创币    10班陈大葱22号    2012/11/11 给跪了...
+25  科创币    vile_hand    2012/11/11 高质量发帖
+50  科创币    量子隧道    2012/11/12 哇靠,牛B大发了
+100  科创币    山猫    2012/11/12 龙少威武
+200  科创币    虎哥    2012/11/12 太强大了,可以上报纸了。
+1  科创币    虎哥    2012/11/12 通知其他版主:本帖已于第50830号主题合并加学术分,请勿重复加分。
+1  科创币    hx    2012/11/12 高质量发帖
+25  科创币    wenrui    2012/11/12 厉害啊
+25  科创币    delete    2012/11/12 高质量发帖
+25  科创币    BA7MEL    2012/11/12 这是要逆天了。。。。。
+200  科创币    ehco    2012/11/12 这也忒强大了
+24  科创币    wuncle    2012/11/12 膜拜
+50  科创币    孤独的酒精灯    2012/11/12
+200  科创币    任某人    2012/11/12 我去!!!!这个不加没道理啊。。去吧STC干爆吧!!
+50  科创币    小特斯拉圈圈    2012/11/12 NB
+50  科创币    乖乖乖    2012/11/12 我今天就这么多了。。。
+100  科创币    jrcsh    2012/11/12 高质量发帖
+40  科创币    科学人    2012/11/12
+10  科创币    罗布    2012/11/12 这个真心强大。。。。
+25  科创币    wjwj1234xx    2012/11/12 我了个去这个太威武了
+25  科创币    冲压发动机    2012/11/13 亲!你可以移民了.恭喜.
+25  科创币    hsldlee    2012/11/13 全力顶,就这点权限,笑纳
+25  科创币    TubeChip404    2012/11/13 加,不加没道理呀      ^_^
+50  科创币    逆天    2012/11/15 看到3DMARK立马跪了。。。。
+50  科创币    jxs    2012/11/15 啥时用全模拟元件做一个。。。
+25  科创币    luo    2012/11/16
+30  科创币    kknd    2012/11/16 不会是实时3D吧。。。那可太强大了。。。
+50  科创币    极度深寒    2012/11/17 。。这焊工太彪悍了
+25  科创币    金星凌日    2012/11/22
+30  科创币    带火星的木条    2012/11/23 顶礼膜拜.我只剩这么多分了今天
+25  科创币    wwt3100    2012/12/12 膜拜...
+25  科创币    xusixteen    2013/07/03 必须膜拜
+10  科创币    ldfa    2014/04/25 高质量发帖
加载全文
来自:计算机科学 / 计算机电子学
211
 
2
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
小龙
11年6个月前 IP:未同步
470229
制电路板我还是更倾向热转印。。方便些。。

请问楼主这在大学里是什么专业啊。。高三僧求大学选专业指导撒。。呵呵。。
+1
科创币
神之觉醒
2012-11-13
表示只是初中毕业
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
标准手业
11年6个月前 IP:未同步
470236
额滴个神啊![s:271]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
11年6个月前 IP:未同步
470247
我会以图的方式说明  CPU控制器对所有指令执行过程[的每一个时钟 门电路工作状态[s:222]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
TubeChip404
11年6个月前 IP:未同步
470258
嗯,上百兆是得注意布线。
这让我有一种D一个i4004的冲动,不过话说4004,4003,4003这三个集成电路就可以做一台微型计算机了............[s:275]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
416369123
11年6个月前 IP:未同步
470266
回 49楼(神之觉醒) 的帖子
唉,初中生学到这种地步都我有点自卑了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
相对论万岁
11年6个月前 IP:未同步
470273
膜拜!话说以后有时间也D一个玩玩,
16位的cpu比这个复杂多少?
话说16位的cpu再加上一个硬盘,主板,显卡,ram,就可以装一个电脑,然后装上dos了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
老船家
11年6个月前 IP:未同步
470357
虎哥 给楼主整点经费 吧
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
老船家
11年6个月前 IP:未同步
470359
楼主  拜你为师 收多少学费
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
wenrui
11年6个月前 IP:未同步
470360
初中毕业?!!!lz什么时候开始搞这些?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
q451993547
11年6个月前 IP:未同步
470369
卧槽
楼主太强大了。
27MHz主频刷图速度都那么快  
看来架构设计的很好啊。比STC强多了
顶楼主

中国的芯片产业就靠你了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
sxper
11年6个月前 IP:未同步
470436
双面板子我做过。双面焊盘你那么处理的啊。
底座都是ic座子拆掉塑料

打孔就是一大工程啊
+1
科创币
神之觉醒
2012-11-16
两边都焊就OK的
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
kc地毯清洁员
11年6个月前 IP:未同步
470548
其实完全可以批量生产这种巨型cpu   散热又好   都不懂为什么台式cpu也要这么小   这样就有200元i7买了    楼主加油啊
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
daxus
11年6个月前 IP:未同步
470687
引用第62楼kc地毯清洁员于2012-11-15 13:32发表的  :
其实完全可以批量生产这种巨型cpu   散热又好   都不懂为什么台式cpu也要这么小   这样就有200元i7买了    楼主加油啊


200元的I7,体积是一个房间,上海非常郊区的房价一个平米算1万,如果是这样,那我还是买小点的I7好
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
daxus
11年6个月前 IP:未同步
470688
回 49楼(神之觉醒) 的帖子
LZ是不是有自己写汇编器?比较感兴趣,能开源让俺瞅瞅不?
+1
科创币
神之觉醒
2012-11-28
在108楼
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
11年6个月前 IP:未同步
470702
回 64楼(daxus) 的帖子
没做汇编器,ROM程序是用机器码写的2进制文件,用C32Asm 或 WinHex打开就能看见了 (我是用C32Asm写的)

ROM二进制文件:

attachment icon 8位机测试程序.rar 0.40KB RAR 86次下载

程序结构后面我再说,不然现在SPI板和硬件连接还没说清楚; 码字很累。。。[s:221]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
11年6个月前 IP:未同步
470704
立即数传送指令执行原理  这样弄不知道大家能看得懂不~~~[s:108]  
(ROM里的机器码请参照49楼)      这个是GIF文件  是动的

立即数传送指令执行原理.gif



估计放不了GIF[s:263]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
inspirit
11年6个月前 IP:未同步
470731
楼主太强大了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
kc2038
11年6个月前 IP:未同步
470770
[s:271]牛A  ~  牛C

楼主多费点精力,弄个从零开始DIYCPU的教程吧。
从基础原理 到元器件选择、搭建、编程、运行、调试。
让一般人也能依样画葫芦的鼓捣出一个真正意义的CPU,说不定,中国未来的某一个CPU设计者就这样被勾引上路了[s:274]
+16
科创币
神之觉醒
2012-11-16
好主意,那后面我就按你的流程说了。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥
11年6个月前 IP:未同步
470785
回 68楼(kc2038) 的帖子
科新社先预定出版权。。[s:178]
+1
科创币
神之觉醒
2012-11-16
。。。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
kknd
11年6个月前 IP:未同步
470792
不会是实时3D吧。。。那可太强大了。。。
+1
科创币
神之觉醒
2012-11-16
不会。。。3D算法还没学, 现在只是刁虫小技的刷图片
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
11年6个月前 IP:未同步
470794
上面的都抛掉了 这里我全部重新开始讲:


大概是在09年的时候,我朋友发了个链接过来,他说是国外DIY CPU的,就是那个Magic-1,我把全文拜读完后,佩服得5体头地,心里面的疑惑也油燃而生,老外的这个CPU怎么装上主板去用的呢,又没有显示器,就是一堆集成电路,还是什么门电路,我那时对门电路是什么东西还不知道,但就是那一刻起,DIY CPU就像一颗种子一样种在了我的心里,其实也不是天天想着弄这玩意睡不着; (09年我还在玩音响,我朋友也是)  


2010年中,开始对木马感兴趣,主要就是玩灰鸽子木马,但是木马一放到别人电脑就被杀毒软件秒掉了,怎么办呢,就要做免杀,免杀就是让杀软认不出来,我就到网上搜啊搜,看到了一篇介绍特征码免杀的文章,大概操作方法就是把木马分成很多个文件之后用杀软杀,杀软会把某一个文件杀掉,这样就再把那个被杀掉的文件再分,再用杀软来杀,再分,再杀,再分,再杀。。。。。。。。。最后就锁定了精确的位置,只要修改那个位置,杀软就不会杀了,那个位置的长度仅为两个字节,这就是特征码,文章的作者说,修改要涉及到汇编,当时我也不知道汇编是什么东西,大概就是什么加法减法移动跳转~~~  后面反正就是看了一堆教程,就知道操作了,结果就不多说了。。。。玩木马就玩了个把月,之后就开学了;就是这次经历汇编也在我心里种下了一颗种子。


2010年10月还是11月了~  的某天, 不太记得时间了- -, 看了一偏说人类DNA的什么代码,有个老外研究发现,可能是外星人写的,说是还加了注释,没全部跑起来,全跑起来就很叼杠了 什么什么之类的,这篇文章很搞。。。同时也激发了我下决心要学编程;


2010年底到2011年之间,看教程学了易语言编程,全中文的,很好搞,也明白了程序是怎么个回事,还写了几个无聊脑残型的程序。


2011年初,我在上高二,就是这段时间开始对计算机感兴趣,YY着用继电器做个计算器(是计算器不是计算机,因为这个时候还没了解计算机的原理),不知道怎么无意间想起门电路,上课的时候用手机查,不查不知道,一查还蹦出了一大堆,什么与门 或门 非门 与非门 或非门  异或门  同或门 三态门,有点眼晕,细细看完才明白原来是高低电平输入和输出的不同对应关系,YY的用继电器做个计算器后来也没有搞, 反倒是我同桌,整天跟我费话,烦得要死,跟我说什么单片机,他想做个串口的下载器,后来他也没有搞,还没到2011年中他就走了,我闷得无聊,因为班里面的那群B整天赌钱,没人跟我有相同爱好的,后面放假了,我也打算不再读下去; 2011年6月初,想起单片机,就下了教程来看,边教C语言的,讲得很不错,有些心动,跑到了收破烂那里捡了几片回来,后面有点懒还有兴趣问题就没开工。


2011年7月~8月,这个时间发现了科创论坛, 玩高压电,玩高压电是因为我对流传的特斯拉线圈输出大于输入报有幻想,后来破灭了,就玩玩了也不玩了;


2011年9月底第一个单片机作品,那个兴奋劲~~  诶 ~不说了  现在想想那时像个傻X一样;


2011年10月初开始认真搞计算机原理,由于初步玩了单片机差不多心里就有个底了,后面当然就是下教程来看拉,同时还去图书馆借了几本书,对我帮助最大的就是<<新编微机原理及接口技术>> 和 <<数字逻辑>> 这两本,  教程就断续看了半个月,看了有10多集这样,名字叫<<微机原理>>,是个女老师讲课; 之后就明白了汇编和机器码的原理; 后面又搜到<<简单cpu的逻辑设计>>,我点进去看,进去时不懂CPU的架构和指令集,出来时就都懂了~~~


2011年底到2012年2月底就开始用Multisim 11.0画电路,是16位机,很蛋疼的电路和架构,操作系统的内存加载方案和进程切换机制都有了,后来也没完成,技术原因(硬件CPU控制器还没YY出来 想用单片机来控制)和本人太懒。


2012年3月就全部放下了,帮同学亲戚装了几台机;4月底就有计划的用单片机对鼠标试验驱动,因为我还YY着用单片机作为DIY计算机的PS/2接口转换处理,打算用键盘鼠标作为输入设备, 后面就顺便玩玩单片机; 7月还出去打了半个月工,做电脑销售员  擦的。。。后面被辞了,没工资+ +!。 8月底我抛弃了16位机,转向更简单的8位设计,就是9月底发上来的那个,可以写个简单的单任务操作系统来跑跑,因为那个架构可以靠操作系统软件在外部(内存卡和硬盘之类的)加载程序数据进ROM,之后操作系统再修改程序指针把程序入口地址转向刚加载进ROM的程序, 电路只是仿真粗略画一下,还没进行优化的。


再后面花了一个星期不到的时间来设计现在的这个炮灰小机机,想验证一下这个纯硬件CPU控制器,10月初就完成设计了,这个炮灰小机机有两个版本,第一版本是双指令控制器,也就是二级流水线版的(过后我发上来),二级流水线的最高速度为4个时钟一条指令,比现在的8个时钟一条指令的第二版本最大提升速度为两倍,不过我太懒了,又不想搞这么复杂;之后第二版本就改好后,想拿去打样,是15CM X 20CM的板子,麻弊的。。。一问打样价格两狗多(两百多),都能买好几套IC了。。。后面我问其他几家10CM X 10CM的10片能拼板不,说是能,我就把电路分割开为4个部份,分别画完了4块10CM X 10CM内的板子,一发过去,我擦,他说拼板只能在10CM X 10CM内拼,我勒个去~! 搞来搞去都10月中旬了,算了想想干脆自己做得了,后面就这样了~~~


下面是我对CPU原理的理解,好吧,我尽量通俗~   本人文笔不是很好
+25
科创币
cnacd
2012-11-19
上进少年!!励志贴!!加油!!这让大学里打DOTA的人们情何以堪啊
+15
科创币
mobius
2012-12-22
挺励志的
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
kknd
11年6个月前 IP:未同步
470796
回 71楼(神之觉醒) 的帖子
原理不难,电路不难,仿真不难,程序不难,难的是真的有人肯做!!!!
顶你!!!
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
11年6个月前 IP:未同步
470845
[s:261] 好厉害,不顶不行了,钻眼儿可是个力气活啊,佩服
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
daxus
11年6个月前 IP:未同步
470854
回 65楼(神之觉醒) 的帖子
如果有进一步的编程需求,我觉得可以搞一个汇编器,反正指令集也少。
如果有可能,还可以移植gcc,那样就有的玩了。
+7
科创币
神之觉醒
2012-11-16
对!大规模编程跑起来才爽
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
11年6个月前 IP:未同步
470877
这楼讲我对计算机原理的理解(建意最好有单片机和C语言的基础):


学过C语言的人对 “x = y + z - k;” 这段语句肯定很熟悉,那么CPU是怎么实现的呢,用中文来描述,就是变量y和变量z相加 得出的结果再减变量k,最后把运算结果放到变量x ,对,CPU就是按照这个步奏来实现的,


下面我们就来虚拟一个计算机系统,详细说明CPU是怎么处理 “x = y + z - k;” 的。



现在这里的计算机系统包含有CPU、ROM、RAM;
    

1. ROM是一个存储器,用来顺序存放运算“x = y + z - k;”的步奏(程序代码).

2. RAM也是一个存储器, 和ROM不同的是,RAM是用来存放数据变量x、y、z、k的.

3. CPU是包含控制和运算功能的一个器件,现在假定CPU里面有两个数据寄存器,分别为累加器A和R1,   --------数据寄存器是什么东西有什么用,怎么用,先不用管.


首先要说明一点,变量x为RAM里的3单元,变量y为RAM里的0单元,变量z为RAM里的1单元,变量k为RAM里的2单元;



要执行“x = y + z - k;”这条C语言语句就要进行底层编程,底层编程就是像上面中文描述的过程一样,用CPU的指令来代替中文描述, 一步一步的进行运算处理, 也就是用CPU提供的指令来编程.  (这一步应该叫做C编译了)


下面是用CPU指令编好的程序(其实就是“x = y + z - k;”的编译结果):

MOV A,[0];  

MOV R1,[1];

ADD A,R1;

MOV R1,[2];

SUB A,R1;

MOV [3],A;

上面的程序一共有6行,然后,装入ROM,就像这个样子:

1.jpg


装好程序后,下面CPU开始上电~~~
CPU复位上电后程序指针是指向ROM的0地址.  (当然不也能排除某些变态脑残无敌型CPU是指向XXX%$#的)


1.执行 MOV A,[0];  此时CPU的程序指针是指向ROM的0地址, CPU把0地址里的 “MOV A,[0];” 通过ROM数据线读入CPU,这一阶段称作取指令或发射指令,取完指令了,CPU分解指令,知道这条指令名为“MOV” ,MOV也就是传送操作的意思,并且知道要把RAM “[0]”地址里的数据送往“累加器A”, CPU解读完这条指令就开始操作,这时CPU先把地址[0]送往数据指针,数据指针也就是RAM的地址,之后再把RAM里的y通过RAM数据线送往累加器A,这时累加器A的内容就为y,    最后CPU还要做一个关键的动作,就是把程序指针加1,以指向下一条指令,结果如下图所示。

2.jpg


2.执行 MOV R1,[1];  此时CPU的程序指针是指向ROM的1地址, CPU把1地址里的 “MOV R1,[1];” 通过ROM数据线读入CPU,这一阶段称作取指令或发射指令,取完指令了,CPU分解指令,知道这条指令名为“MOV” ,MOV也就是传送操作的意思,并且知道要把RAM “[1]”地址里的数据送往“R1”, CPU解读完这条指令就开始操作,这时CPU先把地址[1]送往数据指针,数据指针也就是RAM的地址,之后再把RAM里的z通过RAM数据线送往R1,这时R1的内容就为z,    最后CPU还要做一个关键的动作,就是把程序指针加1,以指向下一条指令,结果如下图所示。

3.jpg

3.执行 ADD A,R1;  此时CPU的程序指针是指向ROM的2地址, CPU把2地址里的 “ADD A,R1;” 通过ROM数据线读入CPU,这一阶段称作取指令或发射指令,取完指令了,CPU分解指令,知道这条指令名为“ADD” ,ADD也就是加法操作的意思,并且知道要把累加器A和R1相加, CPU解读完这条指令就开始操作,累加器A作为被加数,R1作为加数,相加,运算结果送回累加器A,覆盖累加器A的内容,最后CPU还要做一个关键的动作,就是把程序指针加1,以指向下一条指令,结果如下图所示。

4.jpg

4.执行 MOV R1,[2];  此时CPU的程序指针是指向ROM的3地址, CPU把3地址里的 “MOV R1,[2];” 通过ROM数据线读入CPU,这一阶段称作取指令或发射指令,取完指令了,CPU分解指令,知道这条指令名为“MOV” ,MOV也就是传送操作的意思,并且知道要把RAM “[2]”地址里的数据送往“R1”, CPU解读完这条指令就开始操作,这时CPU先把地址[2]送往数据指针,数据指针也就是RAM的地址,之后再把RAM里的k通过RAM数据线送往R1,这时R1的内容就为k,    最后CPU还要做一个关键的动作,就是把程序指针加1,以指向下一条指令,结果如下图所示。

5.jpg

5.执行 SUB A,R1;  此时CPU的程序指针是指向ROM的4地址, CPU把4地址里的 “SUB A,R1;” 通过ROM数据线读入CPU,这一阶段称作取指令或发射指令,取完指令了,CPU分解指令,知道这条指令名为“SUB” ,SUB也就是减法操作的意思,并且知道要把累加器A和R1相减, CPU解读完这条指令就开始操作,累加器A作为被减数,R1作为减数,相减,运算结果送回累加器A,覆盖累加器A的内容,最后CPU还要做一个关键的动作,就是把程序指针加1,以指向下一条指令,结果如下图所示。

6.jpg


6.执行 MOV [3],A;  此时CPU的程序指针是指向ROM的5地址, CPU把5地址里的 “MOV [3],A;” 通过ROM数据线读入CPU,这一阶段称作取指令或发射指令,取完指令了,CPU分解指令,知道这条指令名为“MOV” ,MOV也就是传送操作的意思,并且知道要把累加器A的数据送往RAM的“[3]”地址, CPU解读完这条指令就开始操作,这时CPU先把地址[3]送往数据指针,数据指针也就是RAM的地址,之后再把累加器A里的数据通过RAM数据线写入RAM, 最后CPU还要做一个关键的动作,就是把程序指针加1,以指向下一条指令,结果如下图所示。

7.jpg



总之MOV、ADD神马之类的指令和机器码是等同的,机器码就是用2进制来定义表示,CPU可以读取。


这U的电路和指令集都发了,下楼将解密视频上的“播放”效果~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
kknd
11年6个月前 IP:未同步
470880
再做块板搭个硬件乘法器,你这个U就有得玩了。。。
虽然简单,但中规中矩。
而且还可以针对某些应用做些特别的优化。。。

如果真的可以搞出来,
从库文件开始用汇编实现一个C不是不可能的。。。
然后。。。。
YYing。。。
+7
科创币
神之觉醒
2012-11-16
硬件乘法器~~~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
11年6个月前 IP:未同步
470906
回 76楼(kknd) 的帖子
硬件乘法器是个好东西,下次有机会也一起搞上去,这东西要是有现成的IC就好[s:274]    话说我现在这U也可以实现乘法,不过要RAM做为铺助,乘法可以用移位和加法来实现,  移位可以用加法来实现,  就是做8位乘8位的乘法会很烦琐,  后面我再把此机的乘除法程序试着写出来
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
dx毁灭者
11年6个月前 IP:未同步
470916
这CPU能玩超频不?
话说LZ你还没说时钟是干什么用的呢
+7
科创币
神之觉醒
2012-11-17
可以啊~~~加电压!超频,估计能上40MHZ以上!时钟就是主频,主频就是时钟
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
11年6个月前 IP:未同步
470926
回 78楼(dx毁灭者) 的帖子
反正时钟就是¥¥……¥#·#%……#¥。。。。。=  =[s:275]  表达的意思多了去了   在本帖你就把时钟看成HZ得了[s:221]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥
11年6个月前 IP:未同步
470939
记得一位老工程师的回忆录:

国产计算机稳定性不好,当时都用国产小规模集成电路,非常脆弱,每次开机都会烧坏一两块芯片,必须找出来换上新的……

我一直比较纳闷:换芯片就得关机啊,关机换好了再开,不又要烧吗?
+1
科创币
神之觉醒
2012-11-17
这么搞笑。~&nbsp;&nbsp; 现在的IC感觉都比较难烧,短路都没事
+1
科创币
kknd
2012-11-17
亮点是“国产”
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
wenrui
11年6个月前 IP:未同步
470967
回 80楼(虎哥) 的帖子
应该不会每次开机都烧吧,不然还怎么用 [s:225]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
我说要有光
11年6个月前 IP:未同步
470979
回 80楼(虎哥) 的帖子
说不定是可以热插拔的。。。

开机烧片显然是电源设计有问题啊
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
enigmae
11年6个月前 IP:未同步
470994
回 楼主(神之觉醒) 的帖子
看了你的帖子,使我想起了magic1
心潮澎湃啊!!!我也想做一台!
+1
科创币
神之觉醒
2012-11-17
好!现在玩这东西的人比较少,期待你的加入~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
11年6个月前 IP:未同步
471042
这楼讲解视频上的“播放”效果,其实就是刷图片,后来感觉没声音很无聊,就把声音配上去了。

刷图片速度快最主要的就是靠硬件SPI,CPU只是充当控制角色。

下面是硬件SPI电路图。

硬件SPI板.jpg

控制指令和连接定义(下面以16进制代表2进制的机器码指令):

0x6A  位0控制输出置1  选液晶数据寄存器           //TFT液晶RS线,连接CPU板的BIT0_OUT(请参看电路图,此控制位有插针输出)  
0x72  位0控制输出置0  选液晶命令寄存器           //TFT的复位线接VCC,RD线接VCC,CS线接GND。

TFT我是在这里买的XXXXXXXXXXXXXXXXXXXXXX/XXXXXXXm?spm=XXXXXXXXXXXGa6k&id=13985339513 (我和他不是一伙的~)

0x6B  位1控制输出置1  SPI寄存器为置数模式        //SPI板左移/置数选择线,连接CPU板的BIT1_OUT(请参看电路图,此控制位有插针输出)
0x73  位1控制输出置0  SPI寄存器为左移模式        

0x6C  位2控制输出置1  TF卡的MOSI为SPI寄存器输出    //连接SPI板的TF卡MOSI置1控制,连接CPU板的BIT2_OUT(请参看电路图,此控制位有插针出)      
0x74  位2控制输出置0  TF卡的MOSI置1                    

0x6D  位3控制输出置1  无
0x75  位3控制输出置0  无

0x6E  位4控制输出置1  液晶写时钟                    // TFT的WR线,连接CPU板的U53B的第10脚(请参看电路图有IC号)
0x76  位4控制输出置0  无

0x6F  位5控制输出置1  SPI寄存器置数锁存时钟          // 连接CPU板的U53A的第4脚(请参看电路图有IC号)
0x77  位5控制输出置0  SPI寄存器和TF卡左移一位时钟    // 连接CPU板的U53A的第1脚(请参看电路图有IC号)



上面的控制和单片机IO口模拟差不多。
玩过TFT的人知道用单片机IO口控制液晶的写(WR)线 完成一次液晶写操作 在C语言中要这样操作:

WR = 0;
WR = 1;

上面这样的操作在一般51核的内部大约需要几十个时钟的时间,用IO口模拟控制效率比较低; 而在本人的这个CPU中设置有特别的控制,只要执行一条机器码指令0x6E就能完成一次液晶写操作,只须8个时钟~~~ 有木有效率~

而且用SPI板只要8个时钟就能和TF卡传输一个字节的数据,1条CPU指令产生1个时钟。


程序的控制流程(TF卡和TFT的操作方法网上一大堆,这里就不细讲了):
程序流程.jpg

ROM的2进制文件在65楼发了。。。我不可能一个字节一个字节的注释,那样会挂掉的[s:221]  有兴趣的话可以参看指令集或49楼的说明来对照

下面大概讲一下ROM 2进制文件的结构:

ROM文件里的地执和ROM地址是对应的;

地址0H~2CFH为TFT的初始化部份,下图。
TFT初始化部份.jpg

地址2D0H~34FH为TF卡复位为SPI模式程序,下图。
TF卡复位为SPI模式程序.jpg

地址350H~3CFH为TF卡初始化程序,下图。
TF卡初始化程序.jpg

地址3D0H~44FH为发送CMD18读多块命令到TF卡,其中地址3E1H、3F1H、401H、411H分别为00、04、E2、00,也就是TF卡的扇区地址0004E200,为存放BIN图片文件的起始扇区地址,文件的起始扇区地址我是用WinHex查看的,下图。
发送CMD18读多块命令到TF卡.jpg

地址450H~166FH为读TF卡512字节和刷掉两个CRC(太长就不截图了。。。)。


地址1670H~1677H为SPI再接收一个字节,下图。
SPI再接收一个字节.jpg

地址1678H~1685H为判断SPI收到0xFE?,下图。
判断SPI收到0xFE?.jpg

这些16进制程序都是手工码上去的[s:221]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
sunfulong321
11年6个月前 IP:未同步
471044
佩服,厉害,给力,学习
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
神之觉醒作者
11年6个月前 IP:未同步
471107
其实这个也没什么的玩玩而已。。。搞东西去~~~后面的太多,有时间再说了  先闪

最后发个71楼说的第一版的电路没优化的2级流水线CPU,纯属乱搞

attachment icon 哈佛结构2级流水线.rar 1.82MB RAR 89次下载
+7
科创币
kknd
2012-11-17
感谢分享!
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
kknd
11年6个月前 IP:未同步
471127
回 86楼(神之觉醒) 的帖子
这个模型用FPGA实现吧,不要再焊数字IC了。。。
这样更有助于你快速开发不同字长不同架构的CPU。。。
+1
科创币
神之觉醒
2012-11-28
好!
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
k.i.d.
11年6个月前 IP:未同步
471190
神人神人啊!
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
k.i.d.
11年6个月前 IP:未同步
471191
真不知道你耗了多少时间..............
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
sxper
11年6个月前 IP:未同步
471503
象你这样的进步青年 要当心。他们会迫害你的
+1
科创币
神之觉醒
2012-11-28
???!!!!!!!!o_0!
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
q451993547
11年6个月前 IP:未同步
471750
ALU单元是怎么设计的?
+1
科创币
神之觉醒
2012-11-28
74LS181&nbsp;&nbsp;搜一下&nbsp;&nbsp; ALU也可以用门来搭
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
飘飘飘
11年6个月前 IP:未同步
471791
楼主!开个课程好了!
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
sxper
11年6个月前 IP:未同步
471804
学校教过 门电路可以用 VHDL  做.体积可以小100倍
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
kc2038
11年6个月前 IP:未同步
471819
回 69楼(虎哥) 的帖子
《神之国度CPU发展大事记》

著者:神之觉醒
出版:科创论坛
主编:虎哥

  要是能在著作里提这么一句:
序言 神之历OO年,在某某提议下,神之觉醒开始了某某CPU的启蒙教程,………………[s:178]
让俺也史上留个名 [s:178]
+1
科创币
神之觉醒
2012-11-28
=&nbsp;&nbsp;=! 这么垮张
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
cdyqj
11年6个月前 IP:未同步
471888
太强大了,小人佩服啊!!
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
nihao_x
11年6个月前 IP:未同步
471892
怎么能跑 3D ?
+1
科创币
神之觉醒
2012-11-28
是图片
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
hx
11年6个月前 IP:未同步
471920
   申请~~~转贴到太平洋

    稿费~~~~另行支付KCB



   作者~~~~1秒钟内不提出反对表示,接受本人的转贴申请,稿费为1KCB.[s:219]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
20!Dopaminor
11年6个月前 IP:未同步
471925
回 87楼(kknd) 的帖子
为什么cpu都要做的怎么小...  省电?省位子?  对台式机来说都是木有用的啊,   如果山寨的这种巨型cpu性能又高又便宜是不是一样能用?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
hx
11年6个月前 IP:未同步
471928
回 98楼(20!不曾存在) 的帖子
太多了~~~比如晶元面积,
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
wenrui
11年6个月前 IP:未同步
471973
表示俺也想弄一个,虽然目前在玩高压。。。不过我只知道一丁点C语言,汇编完全不懂。。要学的东西还有好多。。。。。
+1
科创币
神之觉醒
2012-11-28
先从单片机入手吧&nbsp;&nbsp;之后研究下计算机原理就OK的
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
神之觉醒
学者 机友 笔友
文章
71
回复
1163
学术分
4
2011/08/12注册,1年3个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}