除了Intel和ARM CPU的演进,GPU、量子计算机等新架构的计算机也陆续诞生。此外,诞生了一个名为RISC-V的开源CPU(指令集),也诞生了许多具有良好性价比和高功能性的独特SoC。首先什么是“计算机”?它是如何工作的?它是如何制作的?
日本CQ 出版社 晶体管技术 2020 年 5 月特刊《大解剖!CPU是这样工作的》和附录DVD-ROM演示在学习研讨会的同时,从头开始设计CPU,通过实验如何制作电路板和晶体管/逻辑门电路/CPU来了解CPU的内容。可以被深化。CPU组装套件是一组零件,供您自行组装安装零件以制作4位CPU。
淘宝购买链接:

下面显示了一个全分立的 4 位计算机“CPU1738”,它有一个称为 CPU 的完全开放的黑盒子。1738 个 MOSFET、1070 个 LED和1804 个芯片电阻揭示了现代计算器的原理。CPU1738 的完整原理图见下文。


下面是CPU1738运行的视频


当我们将 CPU 视为一个系统时,会使用“架构”一词来描述其结构。图 1显示了该套件“CPU1738”的架构。
此 CPU 套件中使用的唯一半导体组件是 MOSFET 和二极管(包括 LED)。该 IC 可作为计算机运行,根本不使用它。表 1显示了所用部件的类型和数量。

MOSFET的数量为“总计1738个”,数字电路块(逻辑门电路)的数量为“总计336个”(表2)。

该 CPU 套件由照片 2 中所示的“数字电路块”组成。将 MOSFET 焊接到该模块的电路板上完成了晶体管级的 CMOS 数字电路。由于信号线有一个LED,您可以一目了然地检查所有信号线的状态

图 2 全分立式 CPU 由微型模块“数字电路块”组合而成


数字电路块共有10种,各块作为“与门”、“或门”、“非门”等基本逻辑门电路进行动作。CPU1738 是由这些块组合而成。



立即购买套件:





【基础知识】CPU架构
CPU1738 具有许多现代 CPU 的所有基本元素。下面简要说明每个部分的名称和作用。
当我们将 CPU 视为一个系统时,术语“架构”用于描述其结构。通常,当我们谈论架构时,我们经常提到系统的“组件”及其“连接关系”,而没有深入电路的细节。
● ROM
存储CPU 读取的程序的电路。通常它是在 CPU 之外,但这次它会与 CPU 一起制作。实体是逻辑电路和开关的组合。● A REG、B REG
临时存储数据的“寄存器”。这一次,我们将准备两个,“A寄存器”(A REG)和“B寄存器”(B REG)。两者都是 4 位宽。该实体是一个与触发器结合的逻辑电路。● 是计算ALU
数据的“算术逻辑单元”(ALU)。除了加减法等“算术运算”外,一般的ALU还有NOT、AND、OR等“逻辑运算”、数据的“位移”等功能。这一次,我们将创建一个只能进行加减运算而不执行逻辑运算的ALU。该实体是一个组合逻辑电路。此外,存储根据计算结果变化的“标志”的部分是用触发器创建的。
● 向PC ROM 输出地址信号的“程序计数器”(PC)。CPU通过从ROM中逐步读取指令进行操作,程序计数器的作用是管理读取指令的ROM的地址。
通常,它作为将“+1”添加到输出值的“计数器”操作,但您可以强制覆盖输出值。该实体是一个与触发器结合的逻辑电路。
● ID 这是
对从ROM 读取的指令进行解码的“指令解码器”(ID)。确定每个块的操作,并根据该电路的输出切换数据路径。该实体是一个组合逻辑电路。● 状态机
通常,CPU 执行一条指令的操作分为几个步骤。管理CPU的操作步骤,控制整个行为,“状态机”(state machine)或“状态机”的作用就是。这一次,我们将创建一个具有两个状态的简单状态机。该实体是一个与触发器结合的逻辑电路。
● I/O
“I/O”是CPU 与外部电路之间的接口。这一次,准备了一个 4 位寄存器作为“输出端口”。此外,准备一个 4 位施密特触发器输入作为“输入端口”。
这种I/O配置与一般微机的“通用输入/输出(GPIO)”相同。
● 总线 在
这种架构中,有两条“总线”,其中多个块共享相同的接线。“总线 1”是连接到 ALU 一个输入端的路径,而“总线 2”是连接到 ALU 输出端的路径。术语“数据总线”和“地址总线”也用于描述通过总线传输的数据内容。如果多个块的输出在总线上碰撞(短路),则可能会发生故障,并可能损坏电路。因此,通常使用多路复用器(MUX)切换连接的方法。这次我想减少逻辑门的数量,所以我把它设计成使用三态缓冲器将不必要的输出从总线上分离出来。
● 堆栈指针(本次未实现)
CPU1738 没有提供,但需要一个称为“堆栈指针”的电路来实现“中断功能”。如果在操作过程中发生中断,CPU 会停止到该点的处理,并跳转到预先准备好的称为“中断处理程序”的程序。这相当于用中断处理程序的首地址覆盖程序计数器的内容。
当中断处理程序处理完成后,CPU 返回到原来的处理。为了恢复,需要记住最初执行的程序的地址。用于此目的的“存储地址的电路”是“堆栈指针”。堆栈指针有一种机制(这称为堆栈),首先读取最后保存的值,以支持在中断处理过程中发生另一个中断的“多个中断”。该实体是一个与触发器结合的逻辑电路。
由 1738 个 MOSFET 驱动的 4 位计算机“CPU1738”的诞生
● 做你电脑的心脏
使用“组合逻辑电路”和“时序电路”,我们创建了一个“中央处理器”(CPU),它是计算机的心脏。这个CPU很简单,但本质部分和一般的CPU或微机是一样的。
● 全部用MOSFET制作 制作
的CPU不使用IC。附录 搭建一个只有电路板包含的逻辑门的 CPU。因此,唯一使用的半导体元件是 MOSFET 和二极管(包括 LED)。下表显示了实际使用的逻辑门的类型和数量。使用的逻辑门数量为 336 个,此处包含的 MOSFET 总数为 1738 个。● CPU 设计策略
要创建
的CPU 设计策略定义如下。
(1) 只使用附录板的逻辑门
(2) 优先考虑电路的清晰度而不是处理的效率
(3) 尽可能减少晶体管的数量
我在制作这款 CPU 的原型时,所有部件都是手工焊接的. 这是一项艰巨的任务,因此我在设计时制定了上述策略(3)。不过为了电路的清晰性,有些地方特意增加了晶体管的数量。

「CPU组装套件」 CPU1738
生产程序手册
本手册应与《晶体管技术》(CQ出版社)2020年5月号的专题 “剖析CPU:它是如何工作的 “一起阅读。
目次1. 要使用的工具2. 如何用测试仪检查二极管的极性3. 电源4. 制作一个操作检查器5. 制作逻辑门电路(数字电路块)6. 制作一个时钟和状态机板 (Clock & State Machine) 7. ROM板8. I/O板9. 程序计数板 (Program Counter) 10. ALU板11. 制作A登记板 (Register A)12. 制作B登记板 (Register B)13. 指令解码器底层 (Instruction Decoder) 14. 电路图15. 每块板的布局16. 连接整个电路17. 程序实例18. 制作电机驱动板19. 制作机器人20. 机器人的程序例子CPU1738的制作方法
1. 准备工具
・ 烙铁(带温度控制功能,如图 1 所示)
・ 焊锡

助焊剂(例如,如图 2 所示)
・ 镊子(建议使用细尖头,如图 3 所示)


・ 放大镜或双目立体显微镜(约 10 至 40 倍。例如,如图 4 所示)
・ 锉刀(用于准备小基板的端面。不是必需的)
・ 助焊剂(例如,图 4)。 4)像5. 它不一定是


・ Kimwipe(用于擦掉助焊剂。不需要)
・ 十字螺丝刀
・钳子・钳子
・
剪刀
・测试器(带电阻范围。用于检查二极管极性)
・使用临时停止的遮蔽胶带(零件)。例如,图 6 的东西就好了)
■ 2. 如何用测试仪检查二极管的极性
● 二极管为对称形状,
本套件中使用的
带极性芯片元件包括电阻、二极管和晶体管(MOSFET)。其中,电阻没有极性,因此未指定安装方向。另外,由于晶体管的焊盘形状是不对称的,所以晶体管不太可能以错误的极性安装。 另一方面,尽管二极管的形状是对称的,但它具有极性,因此可能会错误地将其安装在相反的方向上。基本上,阴极标记是通过目视检查和附着的,但在这里我们将介绍一种使用测试仪电气检查极性的方法。● 数字式测试仪
数字式测试仪的“测试仪正极接正极,负极接负极”时,电阻值变小,如图图 7。这是因为电压施加在二极管的正向方向上。
● 模拟测试仪的情况模拟测试仪的情况下,当“测试仪的负极接正极,测试仪的正极接负极”时,电阻值变小,如图。 8.这是因为在模拟测试仪的电阻测量模式下(在电阻量程和其他量程(电压、电流)中,表针相对于量值),负端的电位高于正端的电位的测量值。因为运动是反向的)。

■ 3. 电源
● 使用电池
时 本套件的标准电源电压为 3V。将用于两节 AA 电池的电池盒连接到“时钟和状态机”板上,并将其用作电源。● 使用
AC-DC 适配器时 AC-DC 适配器的插孔可以连接到“I/O”板上。使用 AC-DC 适配器时,我们建议使用 3.3V 产品。也可使用5(V)产品(电源电压升高时第一个故障是振荡电路部分)。● 电源开关
“CLOCK & STATE MACHINE” 该板有一个电池通路的电源开关。此外,“I/O”板还有一个用于AC-DC 适配器路径的电源开关。注意不要同时打开两个开关。● 用于操作检查的 电源端子
通过连接板的扁平电缆中包含的电源线为每个板供电。除此之外,每块板都有一个电源端子,用于独立检查操作。如图9所示,将镀锡线(或零件引线的剩余部分等)焊接到丝上写有“VDD”和“GND”的地方。它不是必需的,因为它用于检查操作。
■ 4. 制作操作检查器
● 零件清单
首先,创建一个“操作检查器”。表1显示了板上丝和零件之间的对应关系。
完成图 图10显示
完成的操作检查器。使用 3 (V) 的电源电压。
当连接到此检查器的逻辑门(数字电路块)输出“1”时,“Y”LED(绿色)亮起。此外,当逻辑门输出“0”时,“Y ??” LED(蓝色)亮起。

■ 5.制作逻辑门板(数字电路块)
● 检查
电路
板数量“数字电路块”上有多个电路板拼版。用手将其弯曲并分开。如果您将端面锉平,它将完成精美。表 2显示了每块板的数量。CPU实际使用的是“使用次数”列中写的数字。由于拼版,遗留了一些板。把多余的板子当作备用板。
要安装在每块板上的部件
MOSFET(NMOS 和PMOS)、LED、电阻器和排针安装在“数字电路块”的板上。安装部件的类型对所有板都是通用的。这显示在表 3 中。

步骤1:将焊盘焊接在表面上
组装“数字电路块”的步骤说明如下。所有电路板的程序都相同。在这里,我们将以“2 NAND”板为例进行说明。
首先,如图11所示,将每个部分的焊盘一个一个焊接。

● 步骤 2:焊接 MOSFET
将MIMO“BSS84”贴在丝绸上写有“P”的地方。将MOSFET“BSS138”贴在丝上写有“N”的地方(图12)。
安装MOSFET时,建议先只焊接一个端子并临时固定,再焊接其余两个端子。
如果要在焊接后调整位置,请在所有端子上涂抹助焊剂并焊接更多,以便掩埋整个 MOSFET 端子。如果焊料在这种状态下熔化,则 MOSFET 会因表面张力而移动,每个端子都会移动到焊盘的中心。
● 步骤3:焊接LED如图13 所示焊接LED。输入端(X1、X2)使用红色LED,输出端(Y)使用绿色LED。焊接使阴极位于“电路板的底部”。LED 的极性如图14 所示。LED 类型可能会发生变化。请注意。


● 步骤4:焊接背面焊盘如图15 所示,每部分在电路板背面焊接一个位置。 在背面作业时,如图 16 所示,将“动作检测器”作为夹具使用是很方便的。在图16中,插入排针以固定电路板,但此时排针尚未焊接。


第五步:
焊接电阻 丝上写有“1k”的地方贴一个1kΩ的贴片电阻,写“100k”的地方贴一个100kΩ的贴片电阻(图17)。
● 第6 步:焊接排针
前后元件都安装好后,如图18 所示焊接排针以完成该过程。此时,“运动检查器”也用作夹具。

● 取下误焊的部件时 在被取下部件的
所有端子上涂抹助焊剂,注入大量焊锡。整个部件可以用焊料填充。在这种状态下,应用烙铁并按原样缓慢提起。然后,由于焊料的表面张力,零件和熔化的焊料将一起附着在烙铁的尖端。用镊子从尖端收集零件。● 大量焊接时
该套件包含大量“数字电路块”板。如果您想高效工作,我们建议您一次性执行相同的过程(例如,一起进行表面的预焊工作,一起进行 MOSFET 的安装工作等)。● 动作检查 当
“数字电路块”的基板完成后,使用“动作检查器”检查动作。每个逻辑门的真值表如下所示(表 4)。如果根据真值表不工作,可能是端子接触不良或零件安装方向错误。
■ 6. 制作时钟&状态机板
● BOM 表5为丝绸与零件的对应表。

● 安装电阻、电容、LED 和排针 请按照表 5先安装电阻、电容、LED 和排针等短元件。
● 安装针座 接下来,安装
针座。您可以一个接一个焊接引脚和插座,但我们建议您按照以下步骤将它们安装在一起。1. 将针座插入所有位置
2.如图 19 所示用遮蔽胶带临时
固定。仅焊接每个针座的中心针
4. 去除遮蔽胶带
5.1 调整每个针座的角度(同时熔化焊接) 6.焊接
所有端子在引脚和插座焊盘中,连接到GND的焊盘具有较大的热容量,使得焊料难以粘附。务必小心地倒入焊料。

● 安装交换机
安装拨动开关和推动开关。请注意,按钮开关有一个方向。将电路板放置在可以读取丝绸字母的位置时,将其安装,使按钮开关的“按下时导通的两个端子”位于电路板的上侧(图 20)。以防万一,请与测试人员核对。

● 安装
电池盒 用螺丝将电池盒固定在板上。有三个螺丝孔。随意选择要使用的孔的位置。
固定电池盒后,将电池卡扣焊接到板上。● 将“数字电路块”按照“数字电路块”所附着的丝线插入插针座
。● 操作检查
▲ 复位
时钟和状态机 单独打开板的电源。接下来,将排针“J1”的“N_HALT”端子设置为“1”(VDD 电位)。如果在此状态下按下“RESET”按钮开关,请检查绿色“RESET”LED 亮起,黄色“HALT”LED 熄灭。
▲
开启(上侧)时钟的所有“AUTO”模式“SW1”、“SW2”和“SW3”。此时,检查振荡电路部分是否工作在 2Hz 左右。现在,当“CLOCK SELECT”开关设置到“AUTO”侧时,检查红色“CLOCK”LED 是否闪烁。此外,请确保蓝色“STATE”LED 的闪烁频率是时钟的两倍。
▲ 将
时钟的“MAN”模式“CLOCK SELECT”开关拨到“MAN”一侧,按下“CLOCK”按钮,检查红色“CLOCK”LED是否相应亮起。
▲“HALT”操作的确认
将排针“J1”的“N_HALT”端子设置为“0”(GND电位)。如果在此状态下打开时钟,请检查黄色“HALT”LED 是否亮起。●
时钟频率的切换时钟频率的变更如下。
・ SW1、SW2、SW3 全部关闭:大约 200kHz
・ 仅 SW1 开启:大约 200Hz
・ 仅 SW2 开启:大约 20Hz
・ 仅 SW3 开启:大约 2Hz如果开关设置与上述不同,循环将被加在一起。
■ 7.制作ROM板● BOM 表6是丝和板上零件的对应关系。

● 预焊表面贴装元件的焊盘 以与制作“数字电路块”相同的方式焊接表面贴装元件(R1-R136、D1-D256)的焊盘
。每个零件只应施加一次焊料。● 安装肖特基势垒二极管(D129~D256
) 在丝号D129~D256 的位置安装肖特基势垒二极管(BAT43XV2)。如图21所示,该二极管在阴极侧具有白线。将丝绸放在板上以便读取时,将其贴上以使阴极标记位于板的右侧。

安装 BAT43XV2 时,建议将一(8)个二极管的极性对齐并将它们焊接在一起,如图 22 所示。如图 23 所示,使用放大镜(或显微镜)目视检查二极管的极性,或使用测试仪。
即使在焊接后,也请使用测试仪检查极性以防万一。焊接后,助焊剂附着在二极管表面,难以目视确认。如果要去除助焊剂,请使用助焊剂去除剂。


● 安装红色 LED(D1 至 D128)
焊接 LED。当放置电路板以便可以读取丝绸字母时,电路板的“上”垫成为阴极。
● 安装1kΩ 电阻(R1 至R128)
安装1kΩ 贴片电阻。● 安装10kΩ 电阻(R129 至R136)
安装10kΩ 贴片电阻。● 安装 DIP 开关将
DIP 开关安装在可以读取字符的方向(当开关向上时它变成“ON”的方向)。DIP 开关最右边的位是 LSB(最低有效位)。● 安装排针、排针座和数字电路块
焊接剩余的排针座和排针座。最后,将“数字电路块”与丝绸相匹配,就大功告成了。
■ 8.制作I/O板● BOM 表7是丝和板上零件的对应关系。

● 安装电阻、电容、LED、排针和DC 插孔根据表7安装电阻、电容、LED、排针和DC 插孔。
●
安装插针座和“数字电路块”焊接插针座并按丝安装“数字电路块”。
最后,附上高大的拨动开关,你就完成了。
■ 9. 制作程序计数器板●
安装排针、排针座和“数字电路块”安装排针座和排针座。装好插针插座后,按丝装上“数字电路块”。
■ 10.制作ALU板安装排针和排针插座。装好插针插座后,按丝装上“数字电路块”。
■ 11.制作A寄存器板安装排针和排针插座。装好插针插座后,按丝装上“数字电路块”。
■ 12.制作B寄存器板
安装排针和排针插座。装好插针插座后,按丝装上“数字电路块”。
■ 13. 制作指令解码板
安装排针和排针插座。装好插针插座后,按丝装上“数字电路块”。
■ 14. 电路图
请参考以下内容。https://www.marutsu.co.jp/contents/shop/marutsu/datasheet/CPU1738_sch_ver1_0.pdf■ 15. 每块板的布局
图 24显示了每块板的布局概要。请与电路图一起参考操作检查。
■ 16. 连接整体
● 在平面上部署时,
根据每块板的排针附近的丝线连接每块板。图 25显示了整体连接关系。
● 垂直堆叠时 使用垫片堆叠
电路板时,请使用图26 所示的顺序。

■ 17. 程序示例
● 指令列表表 8显示了 CPU 指令列表。

● 加法程序(无循环)列表1显示了计算“1 + 2 + 3 + 4 + 5 = 15”并将其输出到OUT 寄存器的程序。

● 加法程序(带循环)列表2显示了计算“1 + 2 + 3 + 4 + 5 = 15”并将其输出到OUT 寄存器的程序。执行此程序时,用6 芯“带连接器的电缆”连接IN 端口和OUT 端口。

运行该程序时,用电缆连接IN 和OUT 端口。
● 乘法程序列表 3显示了计算“4 × 3 = 12”并将其输出到 OUT 寄存器的程序。执行此程序时,用电缆连接 IN 端口和 OUT 端口。

运行该程序时,用电缆连接 IN 和 OUT 端口。
● 除法程序清单 4显示了一个计算“9/2 = 4 太多 1”的程序。商“4”存储在 OUT 寄存器中,余数“1”存储在 A 寄存器中。 执行此程序时,用电缆连接 IN 端口和 OUT 端口。

运行该程序时,用电缆连接 IN 和 OUT 端口。
■ 18.制作电机/驱动板
● BOM 表9是丝和板上零件的对应表。

● 完成图 图27显示了
所有部件的焊接状态。该电路的电源为3V。请通过连接带有两节 AA 电池的电池盒使用。

● 控制端子
・ M1 ON/OFF、M2 ON/OFF:控制电机ON/OFF的端子。
・ M1 F/B、M2 F/B:控制电机正反转的端子。■ 19.制作机器人部分
● 组装齿轮箱 组装两个
“蜗轮箱HE”。这里,假设传动比为“336:1”。选择带挡块的输出轴,如图 28 所示,稍后连接到轮胎。
● 组装轮胎
组装“运动轮胎组”(图 29)。轴承请选择与“蜗轮齿轮箱HE”的挡块啮合的轴承。

● 组装滚珠脚轮 组装
“滚珠脚轮”(图 30)。这次我将使用它们。

● 将各部件安装到机箱上如图31 所示,将各部件安装到机箱(通用板L)上。 -垫片(25 毫米):表面。将其连接到机箱四个角的孔中。 ・ 球脚轮:背面。安装时不要干扰垫片。 -齿轮箱:背面。安装时不要干扰垫片。 -电机/驱动板:表面。安装时不要干扰变速箱。 -电池盒:表面。安装时不要干扰变速箱。 -通用板(小):表面。安装时不要干扰电机/驱动板和滚珠脚轮。

● 安装
微动开关 将微动开关安装到通用板(较小的)的尖端(图 32)。用于安装的金属配件与 L 型金属配件在同一袋中。

● 垂直安装微动开关时(可选) 如果
使用L形支架,可以将微动开关竖直安装,如图33所示。请随意选择。

● 连接电机到电机驱动板 将
左右电机分别连接到电机驱动板的“M1_A”、“M1_B”和“M2_A”、“M2_B”端子。
电机的极性应使“1”(VDD 电位)施加到“M1 ON/OFF”和“M2 ON/OFF”时车身向前移动。● 将微动开关连接到电机驱动板上 使用 电缆将微动开关连接到电机驱动板上
的“SW”端子。对于微动开关的端子,请使用按下时打开的两个端子。电机/驱动板侧的“SW”端子没有极性。● 连接CPU和电机/驱动板的
机器人底盘部分完成后,将底盘部分和CPU主体结合起来(图34)。
将I/O板上的孔对准机箱侧垫片的螺丝部分,插入,用垫片螺母固定。接下来,将电机驱动器和 CPU I/O 端口用 6 芯“带连接器的电缆”连接起来。将电机驱动板的电机控制端连接到CPU的“OUT端口”,将电机驱动板的开关端连接到CPU的“IN端口”。
■ 20. 机器人程序示例
● 创建自动换向
机器人 可以通过向OUT 端口输出数据来控制机器人。在这里,作为例子,我们将介绍一个“自动转弯机器人”的程序,其操作如图35(清单5)所示。










免责声明:文章内容来自互联网,本站仅作为分享,不对其真实性负责,如有侵权等情况,请与本站联系删除。
转载请注明出处:纯晶体管搭建的计算机-用1738个晶体管做个计算机(CPU1738) https://www.zentong.com/zt/9019.html