转载请注明出处:https://blog.csdn.net/Leytton/article/details/90761305

一、导言

在这篇文章里,我将给大家介绍一些门电路基础知识,并利用门电路,搭建一个能保存一位数据的锁存器和D触发器

这是一个系列文章,也是作者的一个分阶段计划。

  1. 已完成 从最简单的门电路介绍,从基础的锁存器、触发器、编码器、译码器等一系列数字逻辑电路(对应大学课程《数字逻辑电路》);
  2. 已完成 用这些逻辑电路构造寄存器、存储器、运算器等计算机结构(对应大学课程《计算机组成原理》);
  3. 进行中 将上述结构设计组成一个简易版的8位CPU;
  4. 未开始 如果顺利的话,作者将选用一些实际的门电路电子元器件,绘制PCB电路板并造出简易版CPU实物;
  5. 进行中 开发配套的编译软件把汇编语言转换成这个CPU能够运行的二进制数据(对应大学课程《汇编语言》)
  6. 未开始 我们的CPU应该具备USB烧写程序功能,把二进制数据烧写到里面运行;
  7. 开发CPU对应的高级语言暂无打算(对应大学课程《编译原理》);
  8. 进行中 把这个过程写下来分享给大家。

二、名词约定

1、缩写约定

复位输入:R (Reset)
数据输入:D (Data)
时钟输入:C CLK(Clock)
数据输出:Q (至于为什么不用"O",Out,下面给出了一段有意思的解释)

为什么要用Q呢?这是因为输出的英语是用OUT表示的,简单表示是用O表示的,如果用O表示很容易看错为0。为了不容易看错,德国人就想出了用Q来表示输出的含义了

2、术语约定

(1)高电平和低电平

CPU或MCU芯片有不同的正常工作电压,有5V、3.3V等。一般而言接近工作电压的称为高电平,接近0V(接地)的是低电平;

当然实际情况并不是完全等于工作电压或者完全是0V,会划分一个范围的电压是高电平、另一个范围的是低电平
我的另一篇篇文章有Arduino和STM32芯片的电压划分图:
《Arduino与STM32等单片机读取高电压信号输入》https://leytton.blog.csdn.net/article/details/78398143

在这里演示,我们用1表示高电平,用0表示低电平。

三、基础门电路

与、或、非是三种最基础的门电路,不是很懂的同学可以阅读这篇文章,有形象的介绍:
《继电器是如何成为CPU的(1)》https://blog.csdn.net/Leytton/article/details/90522635

在这里再简单地描述下:

1、与门

全部输入都是高电平,输出才是高电平。

真值表如下:

输入D1 输入D2 输出Q
0 0 0
0 1 0
1 0 0
1 1 1

2、或门

只要其中一个输入是高电平,输出就是高电平。

真值表如下:

输入D1 输入D2 输出Q
0 0 0
0 1 1
1 0 1
1 1 1

2、非门

输入高电平,输出低电平;输入低电平,输出高电平。

真值表如下:

输入D 输出Q
0 1
1 0

四、D锁存器

锁存器是靠时钟信号电平触发。下图是D锁存器

  • 复位R=1时,数据输出Q=0;复位R=0时,数据输出Q由数据输入D和时钟输入C决定
  • R=0时,若C=0,则Q=0;若C=1,则Q=D
    总而言之就是不是复位的情况下,时钟输入为高电平,则数据输入才能有效输出

    真值表如下:
复位R 时钟输入C 数据输入D 数据输出Q
1 X X 0
0 0 X 0
0 1 0 0
0 1 1 1

我们把锁存器封装一下,只留输入输出,方便后面复用

五、D触发器

触发器是靠时钟信号的边沿触发。下图为上升沿触发有效的D触发器:
当时钟信号由低电平变成高电平的瞬间,把数据输入保存起来。

下图有个网上找的静态图(出处):

CLK=0时,主锁存器工作,接收输入信号Qm = D;从锁存器不工作,输出 Q 保持不变。
CLK=1时,主锁存器不工作,Qm保持不变;从锁存器工作,将Qm传送到输出端。

在设计时我用的是下降沿触发的D寄存器:
当时钟信号由高电平变成低电平的瞬间,把数据输入保存起来。

六、相关软件

感谢下列作者提供优秀的软件帮助我们方便研究以及更好地展示作品 ?

1、电路仿真:Logisim
逻辑电路仿真软件,能帮助你对数字逻辑电路和计算机组成原理有更深刻的理解。万丈高楼平地起,你可以使用它出神入化地设计出简易的CPU来。
下载地址:https://download.csdn.net/download/leytton/11225068

2、GIF动图录制:LICEcap
1M不到的GIF动画录制软件,亲测不掉色不失真,生成动图体积小,现在博客文章里可以配上动图啦
下载地址:https://download.csdn.net/download/leytton/11225078

8位CPU设计(1) 门电路和锁存器、触发器相关推荐

  1. 16位计算机cpu电路图,简单16位CPU设计.doc

    简单16位CPU设计 简单16位CPU设计 一.实验内容 完成从指令系统到CPU的设计,编写测试程序,通过运行测试程序对CPU设计进行正确性评定.具体内容包括:典型指令系统(包括运算类.转移类.访存类 ...

  2. 硬件设计与实践:16位CPU设计

    课程设计报告 名 称: 硬件设计与实践 题 目: 16位CPU设计 硬件设计与实践 任 务 书 一. 目的与要求 1.目的 1.1 培养学生在计算机硬件方面的动手实践能力: 1.2 熟悉VHDL硬件描 ...

  3. 【数字逻辑设计】Logisim构建锁存器/触发器

    继续造轮子,嘿嘿. 1.SR锁存器 情况 S R Q Q' Ⅳ 0 0 Qprev Q'prev Ⅰ 0 1 0 1 Ⅱ 1 0 1 0 Ⅲ 1 1 0 0

  4. 32位CPU和64位CPU 区别

    操作系统只是硬件和应用软件中间的一个平台. 32位操作系统针对的32位的CPU设计.  64位操作系统针对的64位的CPU设计. 操作系统只是硬件和应用软件中间的一个平台. 我们的CPU从原来的8位, ...

  5. 16位流水线CPU设计(部分)

    一.16位流水线CPU结构 概括:本文介绍一个16位的流水线CPU设计与模拟过程,该流水线CPU由IF.ID.EXE.MEM和WB五个功能段组成,结构如下图所示.在各功能段之间分别设计了四个锁存段,即 ...

  6. 32位MIPS流水线CPU设计

    32位MIPS流水线CPU设计 一. 实验信息 二. 实验内容 (一) 设计原理及实验方案 1.总体设计思路: 2.基础指令部分原理图: 3.扩展指令后controls赋值的真值表:(与单周期几乎相同 ...

  7. 8位12指令硬布线CPU设计

    实验f4a 8位12指令硬布线CPU设计 模型机是计算机的缩细模型,通过它可以理解计算机整机的结构及功能,理解CPU.存储器.中断控制器.接口的结构及实现逻辑和各部件之间的接口关系.本次课程设计的主要 ...

  8. 单周期十条指令CPU设计与verilog实现(Modelsim)

    目录 一.实验目的 二.实验内容 三.实验原理 1. 规定 2. 原理图 四.实验步骤 1. CPU各部件实现 pc insMem acc alu cu dataMem 2. CPU例化实现 3. 编 ...

  9. 32位mips运算器logisim_大神教你制作一个简单的16位CPU

    如何制作一个简单的16位CPU,首先我们要明确CPU是做什么的,想必各位都比我清楚,百度的资料也很全..... 如果想要制作一个CPU,首先得明白下计算机的组成结构(或者计算机的替代品,因为并不是只有 ...

最新文章

  1. Scrapy框架的学习(3.pipeline介绍以及多个爬虫的pipeline的使用)
  2. 高仿真的类-页面交互
  3. 给大家分享一个简单的例子 给SWF加一个壳
  4. Zend Framework 多模块配置 (二)
  5. asp.net下载文件几种方式
  6. mysql数据库横向转纵向_MariaDB Spider:实现MySQL横纵向扩展的小能手
  7. 滴滴悬赏100万“捉拿”司机;手机QQ又宕机;中兴手机或将出售 | CSDN 极客头条...
  8. 国外工程师这样分析女人
  9. 单片机C语言,从小白到菜鸟进阶教程(超详细代码解读)
  10. 2N点实数序列为 N=64。用一个复数FFT程序,一次算出,并绘出。
  11. 回溯算法高效解标准数独(MarkDown)
  12. 条件查询(where)——MySQL
  13. php读取写入,php操作文件(读取写入文件)
  14. ADS1115 STM32 HAL库驱动 CubeMX
  15. 拯救阿拉德大陆--竞码编程H-20‘
  16. 三菱485BD板学习和认识
  17. 【考试记录】阿里云大学Apsara Clouder云安全专项技能认证:云平台使用安全
  18. Mac突然连接不上WiFi的问题
  19. AI深度、机器学习数据集资源汇总
  20. ffmpeg-nvenc

热门文章

  1. 计算机毕业设计SSM毕业设计管理系统【附源码数据库】
  2. 强大的editplus 5.7
  3. 国外Assignment写作怎么考虑相关要点?
  4. 浏览器 cookie 无法设置的原因
  5. Java程序员市场饱和了?未来5年前景如何?如何保证核心竞争力?
  6. 10、JSP快速入门
  7. Android 手机制造商
  8. POI之PPT文本框生成及样式设置实例
  9. postgresql 客户端导入csv文件命令格式
  10. element-ui 布局拆分组件,布局出现问题