【自制CPU之学习篇00】开篇

  从今天开始决定用面包板制作一个8位的CPU,实现几个简单的指令。我给自己分两大部分计划,第一部分是学习制作CPU的理论知识,第二部分是实践。并打算实施计划的同时用博客的方式记录下来。理论知识的部分重点不在于CPU的逻辑结构,而在于如何用具体材料搭建。

启蒙书籍《编码——隐匿在计算机软硬件背后的语言上》

理论基础:《计算机组成原理》

参考视频用面包板制作8-bit计算机

物料清单CPU物料清单.xml

物料清单参考https://eater.net/category/8-bit-computer/

辅助软件:Logisim,Virtual Breadboard

原文地址:https://www.cnblogs.com/flashsun/p/9507089.html

时间: 2024-10-09 13:04:35

【自制CPU之学习篇00】开篇的相关文章

【从零开始自制CPU之学习篇06】寄存器

上一篇文章学习了总线的相关知识,途中ABC当时假设为一个个的8位寄存器.这一篇要学习怎么构建这个寄存器. 这分为两个三个部分,数据输入,寄存器,数据输出.首先不管输出,来看数据输入和寄存器这两个部分.[03触发器与锁存器]中讲了D型触发器,那么我们的寄存器(D寄存器)就由D锁存器(74LS74)构成,结构如下: 图中画了2位的寄存器,每一个部分就是一个1位的寄存器,如果一共8位的话就需要8个这样的1位寄存器.load端为0,那么数据端不论是多少,输出端Q都不会改变.如果load端为1,当时钟上沿

【从零开始自制CPU之学习篇03】锁存器与触发器

本篇学习了两种锁存器:SR Latch和D Latch,一种触发器:D flip flop SR Latch:SR—锁存器 初始状态下,S和R都为0,Q和Q‘随机有一个为1另一个 为0(取决于电流速度).当把S弄成1后,Q为1,此后无论S怎么变化Q都为1.对R也是如此. 一句话总结就是:输出端可以记住S和R最后一次为1的是哪个.这个记住就是存了. D Latch:D—锁存器 此为对SR锁存器的优化,D相当于原来的S和R,这不但方便操作,还屏蔽了S和R均为1这种不规范操作. EN是enable的意

【自制CPU之学习篇01】识别四色环电阻

制作CPU的好多部分都用到了各种阻值的电阻,由于我选购的是色环电阻,即电阻表面涂上一定颜色的色环,来代表这个电阻的阻值.因此通过色环来快速识别电阻阻值需要作为储备知识,不然一堆电阻插在面包板上很快就乱了.下图为我选购电阻的实拍图. 四色环电阻计算: 色环电阻有四色.五色.六色三种,我选购的为四色环电阻,因此下面介绍一下四色换电阻的计算方式. 四色环电阻的前三环的颜色范围都是:黑0 棕1 红2 橙3 黄4 绿5 蓝6 紫7 灰8 白9:第四环的颜色范围是:金5%, 银10%,无20%,代表误差.各

【从零开始自制CPU之学习篇04】电容

电解电容: 多数在1μF以上,直接用数字表示.如:4.7μF.100μF.220μF等等.这种电容的两极有正负之分,长脚是正极. 独石电容: 独石电容器是多层陶瓷电容器的别称, 简称MLCC 读数方法:把"色环表示法"用到电容上来:这又是一种巧妙的演绎!我们在一些瓷片电容上往往看到这样的标记:"103","104","473"等,这里,第三个数字(个位数字)并非通常理解的个位数,它和四色环电阻的第三环一样,告诉人们前两位数字后

鸟哥的Linux私房菜——基础学习篇 —— 笔记2

at 语法 == 注意,输入at之后便进入命令行模式 ------- 不管怎么样,只会执行一次. [test @test test]# at [-m] TIME (输入工作指令)[test @test test]# atq (查看当前工作流程)[test @test test]# atrm [jobnumber] (删除流程) -m :执行at规范的工作流程时,将屏幕输出结果mail给输入指令的用户TIME :时间格式,有如下几个: ================== 格式有多种,但没有可以间

Android多线程编程之线程池学习篇(一)

Android多线程编程之线程池学习篇(一) 一.前言 Android应用开发中多线程编程应用比较广泛,而应用比较多的是ThreadPoolExecutor,AsyncTask,IntentService,HandlerThread,AsyncTaskLoader等,为了更详细的分析每一种实现方式,将单独成篇分析.后续篇章中可能涉及到线程池的知识,特此本篇分析为何使用线程池,如何使用线程池以及线程池的使用原理. 二.Thread Pool基础 进程代表一个运行中的程序,一个运行中的Android

J2EE学习篇之--JDBC详解

今天我们来说一下关于JDBC的相关知识,关于JDBC我想大家都不陌生了,而且我记得早就开始使用它了,记得那是大二的时候做课程设计,但是那时候是为了完成任务,所以遇到问题就google,那时候也没有时间去整理,所以这次就来详细说一下关于JDBC的知识 摘要: JDBC(Java Data Base Connectivity,java数据库连接),由一些接口和类构成的API. J2SE的一部分,由java.sql,javax.sql包组成. 应用程序.JDBC API.数据库驱动及数据库之间的关系

【Linux】鸟哥的Linux私房菜基础学习篇整理(十二)

1. depmod [-Ane]:更新内核模块依赖.参数:无参数:depmod会主动分析目前内核的模块,并重新写入/lib/modules/$(uname -r)/modules.dep中:-A:depmod会查找比modules.dep内还要新的模块,如果找到符合模块才更新:-n:不写modules.dep,而将结果输出到屏幕:-e:显示目前已加载的不可执行的模块名称. 2. lsmod:查看内核目前加载的模块. 3. modinfo [-adln] [module_name|filename

【Linux】鸟哥的Linux私房菜基础学习篇整理(五)

1. type [-tpa] name:查看name命令是否为bash内置命令.参数:type:不加任何参数,type会显示出那么是外部命令还是bash的内置命令:-t:当加入-t参数时,type会通过如下关键字显示其意义: file:表示为外部命令 alias:表示为命名别名 builtin:表示为bash的内置命令-p:如果后面接的name为外置命令时,才会显示完整文件名:-a:会由PATH变量定义的路径中,将含有name的命令都列出来,包含别名. 2. unset name:取消变量名na