造个计算机

【主要目标】


曾几何时,在我父辈的那个年代,大家的条件只够捣鼓点晶体管和半导体的时候,玩点炫酷的电路制作的理工男叫“无线电发烧友”。在我年轻的时候,各种攒机文化兴盛的时候,对于新技术炽热爱好的技术男叫“电脑爱好者”。在今天这个计算设备无所不在,除了台式机,还有更多的笔记本,平板、手机这样的计算时代,我们新一代的极客宅男,捣鼓点什么有趣的玩意呢?

来, 造个计算机吧!

造一台计算机,听起来似乎是一件平常我们不太去想的事情,因为在大学里学计算机的时候,没有人告诉我们的专业是要造一台计算机。在学习计算机的过程中,很多的人识木而不知林,埋头于程序设计中,未曾停下来欣赏一个漂亮的计算机系统的美景。其实,学习计算机最好的方法就是亲自动手,从零开始构建属于我们自己的计算机系统,尽管由于现实的条件因素,我们没有办法造一台功能强大的计算机。然而,就像虽然没有条件造一台真正的汽车,但这并不影响我们造个车模。

在本次的实验中,我们将尝试如何从基本的逻辑门开始一步步构建一个模型级的计算机系统。

希望能够在大一或者大二的学生,通过自已来动手实现,主要涉及的计算机相关课程包括:

计算机简介、编程语言(高级语言)、数据结构、计算机组成原理、数字电路、VHDL、汇编语言、单片机、编译原理、操作系统等

动手实践有利于为上述课程学习打下基础,未来有利于培养整体计算机系统架构的视野。

主要分成两个大的阶段:


一、硬件实现阶段

我个人觉得学习要想真正掌握,必须自已亲自动手实践。因此对于硬件部分,目前的想法是通过对硬件电路的设计和学习,亲自设计一个简单的计算机系统,即上图中蓝色的部分。 想得是最原始的类似牛郎星那种计算机,就是只完成核心的CPU和简单的外围电路设计,然后能够进行机器语言级的运算。

这部分的主要工作包括:

1)设计CPU和内存

计算机的CPU和内存作为计算的核心是主要的工作量, 其中最核心的是牵涉到时钟问题,需要考虑同步

2) 设计整体计算机结构

在这个整体结构里面,CPU和内存解决以后,主要的问题在于通过FPGA板子与外设进行连接的驱动程序的编写,主要包括,与显示屏的接口,与键盘的接口,外存的读写等等。

1-2个月

设计ALU和内存单元

购买FPGA开发板

学习组合电器和时序电路的设计

学习Verilog设计

进行组合逻辑和时序逻辑元器件的设计

2-3月

计算机系统结构设计和实现,主要包括

(1) 设计CPU

(2) 设计输入/输出

(3) 总体系统结构(包括外围电路)设计

(4) 工具和元器件的购买

(5) 实际调试和实现。

二、软件实现阶段

软件部分对应是红色部分,主要通过一种高级语言实现下面的各个编译器,然后在硬件上是通过直接用机器语言写一个对该高级语言的编译器?还是只需要实现汇编语言的,其它的想办法再采用上层的语言交叉编译上机器上。

1)实现汇编编译器,把asm转换成0101

这是软件最底层的问题,是上面链式反应最后的一环,实现相对简单

2) 实现vm编译器,把vm转换成asm

把书上提到的虚拟机的vm语言实现一下

3) 实现高级语言编译器,把Jack语言转换成vm

这部分由于牵涉到高级语言的实现,所以代码会相对复杂一些,需要花得时间较长,

4) 实现基于Jack语言的操作系统

这个操作系统完全是基于虚拟机的,不需要考虑实模式、保护模式等。

在操作系统里面需要实现基本的数学操作、图形操作,可以在上面编制一些经典的经白机游戏。

1周

实现汇编编译器

2周

实现vm编译器

1~2个月

实现Jack编译器

1~2个月

实现JackOS系统


【费用预算】

软件部分只需要自已有计算机即可,不需要费用,主要费用在于硬件,总费用约在500块左右。

1 开发板购买 (400)

考虑到学习的目的,购买专门的学习板,考虑采用相对便宜的Altera公司的,带sd的最好,省得自已还需要再外接,焊接都比较麻烦

2 工具购买 (100~150)

一些常用的工具和耗材,

(1) 万用表(30)

(3) 电烙铁 (由于需要自已焊接外围电路,需要稍发的电烙铁,加烙铁架子30)

(4) 日常手工工具(各种螺丝刀,小钳子,镊子50)

3 耗材和元器件购买 (50)

(焊锡、助焊剂、烙铁头、杜邦线、排线、电工胶带、电阻、LED指示灯、开关、面包板等)




造个计算机--1、设计运算器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容

  • 话接上文: 造个计算机--2、设计CPU 关于造个计算机,现在已经说到了第三回了,前面提到了怎么设计运算器和内存...
    老鱼阅读 2,458评论 6 16
  • 话接上文: 造个计算机 废话少说,先聊聊我们要造的这个计算机的硬件结构,本项目(整体计划的实现,对于个人来说算个小...
    老鱼阅读 6,519评论 11 59
  • 前面已经基本上把关于造一台简单计算机的整体结构说完了。so,问题来了,原理明白了,怎么实现呢?从理论上来说,任何能...
    老鱼阅读 1,032评论 3 4
  • 计算机组成原理课程在计算机系统中的位置 图1描述了计算机系统抽象层的转换。从图1可以看出,计算机系统由不同的抽象层...
    开点工作室阅读 3,325评论 16 55
  • 那片笑声让我想起我的那些花儿,在我生命每个角落静静为我开着,今天我们已经离去在人海茫茫,幸运的是我曾陪她们...
    仓鱼阅读 504评论 0 1