数字电路逻辑设计笔记:基础知识

Posted 临风而眠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字电路逻辑设计笔记:基础知识相关的知识,希望对你有一定的参考价值。

数字电路逻辑设计笔记(1):基础知识

参考教材:《数字电路逻辑设计》欧阳星明 人民邮电出版社

参考教程: 中国大学MOOC 西安工业大学《数字电子技术基础》

一.引入

计算机层次架构

层级
第6层user
第5层高级语言
第4层汇编语言
第3层系统软件
第2层机器
第1层控制
第0层数字逻辑

二.数字逻辑电路基本概念

1.模拟信号和数字信号

电信号根据信号特征的不同,分为模拟信号(模拟量)和数字信号(数字量)

电信号有啥作用呢?

  • 传导电能,驱动用电设备
  • 传导信号,表达某种信息
  • 模拟信号:在时间、数值上连续变化的信号

    • 时间上连续、幅值上连续
      • 如:温度、正弦电压

  • 数字信号:在时间、数值上变化是离散的信号

    • 时间上离散,幅值上整数化
      • 例如:人数、物件的个数

​ 不会出现1.5,2.5这种小数

​ 高低电平的转换瞬时完成,呈现方形,所以数字信号也称为方波信号

模拟信号可以表达能量,也可以表达信息,但是数字信号只能表达信息,在此门课中,处理数字信号,是为了处理数字信号所表达的某种有用信息

​ 电能的传输要求稳定连续无干扰

2.模拟电路和数字电路

  • 模拟电路: 工作在模拟信号下的电子电路, 用于传输7处理、加工模拟信号,易实现数值运算的电路
  • 数字电路: 工作在数字信号下的电子电路。具体讲,数字电路就是对数字信号进行产生、存储、传输、变换、运算及处理的电子电路

3.“0”,“1”表示

①电平

  • 电压或电流的水平
  • 对应一定的电压(或电流)的范围

​ 比如 2.4V~5V 电压水平较高,可称之为高电平

​ 0V~0.8V 电压水平较低,可称之为低电平

②正负逻辑

正逻辑:高电平为逻辑"1",低电平为逻辑"0"
负逻辑:低电平为逻辑"1",高电平为逻辑"0"

​ 0,1只是表示状态,并没有量的概念

​ 所以也称为逻辑”1“,逻辑”0“

4.数字电路特点

  • 有较强的稳定性、可靠性和抗干扰能力

    ​ 要能够区分0和1,而0和1所表示的状态都处在一个范围内,有时候会有干扰,会偏离标准值,一定的抗干扰能力能使得电平不超过范围

  • 具有算术运算能力和逻辑运算能力,可进行逻辑推理和逻辑判断

  • 电路结构简单,便于制造和集成

    ​ 集成度越高,工艺越好

  • 使用方便灵活

5.再从宏观上去了解下什么是数字电路

数字电路另定义

​ 数字电路还可以有这样的定义:

​ 用来对数字信号进行逻辑运算,以实现逻辑命题的电路,也称为逻辑电路

  • 逻辑:事物的因果关系,也叫逻辑关系
  • 逻辑运算:逻辑思维和逻辑推理的数学描述
  • 逻辑命题:一组成立或不成立的输入条件通过某些逻辑运算决定了输出结论是否成立

​ x为逻辑变量

​ 先对现实中的逻辑问题进行建模得到一个待设计的数字逻辑系统,然后拿各种逻辑运算单元去实现之

逻辑电路分类

组合逻辑电路
  • 电路的输出只与该时刻的输入有关
    • 只考虑本时刻!
时许逻辑电路
  • 电路的输出不仅与该时刻的输入有关,还与电路的原状态有关
    • 状态量也作为输入部分

6.此门课脉络

三.数制与码制

1.数制

进位计数制:以进位方式实现计数的方法

  • 多位数码中每一位的构成以及低位向高位的进位原则,称为数制

①一般性结论

  • R进制有R个数码,基数是R

  • 运算规律:逢R进1

  • 一个R进制数

    • a i a_i ai为系数

    • R i R_i Ri表示权(位权),就是每一位表示的大小

      • 其实个位、十位、百位就是权
    • 如10禁止的111.11
      111.11 = 1 × 1 0 2 + 1 × 1 0 1 + 1 × 1 0 0 + 1 × 1 0 − 1 + 1 × 1 0 − 2 111.11=1 \\times 10^2+1 \\times 10^1+1 \\times 10^0+1 \\times 10^{-1}+1 \\times 10^{-2} 111.11=1×102+1×101+1×100+1×101+1×102

②常用数制

​ 注意下标方式可以有两种

二进制数的四则运算

③数制间的转换

概览:

任意进制数转换为十进制数
  • 按权展开,相加即可

    • 如:
      $$
      (1011.011)2=1\\times 2^3+0\\times 2^2+1\\times 2^1+1\\times 20+0\\times2{-1}+1\\times 2^{-2}+1\\times 2^{-3}\\(3AB.11){16}=3\\times 16^2+10\\times 16^1+11\\times 16^0+1\\times 16^{-1}+1\\times 16^{-2}\\

      $$

十进制数转换为任意进制数
  • 整数部分:除基数R取余

  • 小数部分: 乘基数R取整

  • ( 25.638 ) 10 (25.638)_{10} (25.638)10转换为二进制数

    ​ 关于整数部分高低位:一直往下除,肯定是高位,比如说第一个除了2,是除了2的一次方,除了4个2,那就是除了2的四次方

    ​ 关于小数部分乘基取整的解释:

    👉参考教程链接

二进制、八进制、十六进制数之间的转换
  • ​ 八进制数和十六进制数的基数分别为 8 = 2 3 , 16 = 2 4 8=2^3,16=2^4 8=2316=24, 所以三位二进制数恰好相当一位八进制数,四位二进制数相当一位十六进制数
2进制数转换为8进制、16进制数

8进制、16进制数转换为2进制数

例子

​ 注:16进制:A~F表示10~15

  • ( 1101111010.1011 ) 2 (1101111010.1011)_2 (1101111010.1011)2转化为8进制、16进制
  • ( 375.46 ) 8 (375.46)_8 (375.46)8转换为2进制 ; ( 678. A 5 ) 16 (678.A5)_{16} (678.A5)16转换为2进制

④数制的实质和关系

​ 引入:

在八进制和十六进制的转化中,我们一般会选取2进制作为桥梁,这是为啥呢?

数制的由来

​ 人类描述数值的时候用的是十进制,当人类发明了数字系统,就希望将数字交给机器处理,那么首先就要给机器输入数据

​ 而机器只认识0和1组成的二进制数,那就要把十进制数据转换为二进制数据

​ 一个十进制数大一点的话,那那个二进制数就好多位了

​ 如果要修改一个由大量的0和1组成的二进制数,那是非常麻烦的

​ 所以将这种形式的数据输入给机器,可读性不是很好

​ 那么,有什么解决办法呢?数位压缩

把三位压缩为一位,就出现了八进制

把四位压缩为一位,就出现了十六进制,这样的方式书写数据,可读性比二进制好很多

​ 所以可以把八进制、十六进制看成数位压缩形式表达的二进制数类型

​ 所以二进制和十进制的转换是真正的数制转换,而二进制与八进制、十六进制其实可以看成只是形式上的变化(八、十六进制没有脱离二进制类型)

​ 所以二与十进制之间的转换比二与八、十六之间的转换更难一些

数制关系图

⑤原码、反码、补码

​ 简介

2.码制

​ 概述

  • 用数码代表不同事物或对象,称为代码,编制代码的原则,称为码制

​ 编学号也有规则

①二进制编码的基本原则

n n n位二进制数给 N N N个对象进行编码时,应满足 2 n ⩾ N 2^n\\geqslant N 2nN

​ 比如140名同学编码

​ 用十进制编码 0~139,要三位数

​ 有 i i i位十进制数,就有 1 0 i 10^i 10i个数码,所以要求 1 0 i ⩾ 140 10^i \\geqslant 140 10i140

​ 用二进制就要求 2 i ⩾ N 2^i\\geqslant N 2iN

②几种常用的二进制编码

(1)二-十进制编码(BCD)
  • 用二进制码元来表示十进制数的代码,也称为十进制代、BCD码
    • 二进制码元是表象
    • 十进制数是本质
  • 用4位二进制数 b 3 b 2 b 1 b 0 b_3b_2b_1b_0 b3b2b1b0来表示十进制数中的0 ~ 9 十个数码,简称BCD码

​ binary -coding -decimal

​ 用四位二进制数对十进制数进行编码 BCD码

基本形态
  • 每一位十进制数必须用4位二进制码元来表示

至少满足能对0~9这十个对象进行编码, 则至少需要4位二进制数

BCD码的多样性

​ 这4位二进制数一共有16种组合,从16种组合中任意拿出10种给那十个对象编码即可,那么这样的编码方案自然不是唯一的

​ 所以BCD码是多种多样的

BCD码的本质

可以有这样一种表述:

  • BCD码是用二进制码元形式表示的十进制数

    • 提取主谓宾: BCD码是十进制数
    • 也就是:BCD码不能看作二进制数!
  • 举个例子来理解:

    先将19用BCD码表示,如果把00011001当成二进制数,就不是19了,如图

几种常见的BCD码

  • 8421码全称8421BCD码 (最常用的是8421)

    • 8421码是一种明码
      • 很明确的规定了用前十个组合
    • 8421码是一种有权码
      • 4位数每一位的权值分别是8,4,2,1
      • 把四位数的权值给其命名,就称为有权值码
  • 余3码

    • 每一位码组都是对应8421码加3就是余3码
    • 余3码是明码
      • 8421码是选了前十个,余3码就是下移三位,选了中间的十个
    • 余3码不是有权值码
      • 一般规定若是有权码,会把每一位的权值体现在名称中,如8421码
      • 若是有权值码,必定用0000来表示十进制数0
  • 2421码

    • 是有权码
      • 每一位的权值分别为2、4、2、1
    • 不具备单值性
      • 比如1000和0010都能表示2 1100和0110都对应6
      • 为了与十进制字符一 一对应,2421码不允许出现0101~1010的6种状态
  • 5421码

    • 是有权码
      • 每一位的权值分别为5、4、2、1
    • 5421码种不允许出现0101、0110、0111和1101、1110、1111这6种组合

​ 关于余3循环码:

十进制数如何转化为余3循环码? - 大橘猫的回答 - 知乎 https://www.zhihu.com/question/372870994/answer/1641707594

用BCD码表示十进制数

  • ( 001101001000.01010111 ) 8421 = ( 348.57 ) 10 (001101001000.01010111)_{8421}=(348.57)_{10} (001101001000.01010111)8421=(348.57)10

    ( 692.41 ) 10 = ( 011010010010.01000001 ) 8421 (692.41)_{10}=(011010010010.01000001)_{8421} (692.41)10=(011010010010.01000001)8421

总结

(2)简单可靠性编码

格雷码

​ 格雷码的编码思想是尽量避免在工作过程中出现错误

  • 格雷码不是有权值码
  • 任何相邻码元组合之间,包括首、尾两个码组之间,仅有一位码元不同
    • 格雷码是一种典型的循环码
      • 循环码:两个相邻代码之间仅有一位的状态不同,包括首尾
  • 格雷码编码方案不唯一
奇偶校验码
  • 奇偶校验的奇偶指的是 信息位+检验位 的1的个数

  • 奇偶校验码只能检一位错,且不能纠错
    • but
      • 实际发送过程中,一位错的概率远远大于多位错
      • 生成和检测电路结构简单,成本低廉,工作可靠
      • 所以奇偶校验码应用还是非常广泛的
(3)ASCII码

​ ((American Standard Code for Information Interchange): 美国信息交换标准代码)

采用7位二进制编码,用来表示 2 7 2^7 27个字符

以上是关于数字电路逻辑设计笔记:基础知识的主要内容,如果未能解决你的问题,请参考以下文章

电子电路基础 (13)——数字电路基础 - 逻辑电路

FPGA笔试必会知识点1--数字电路基本知识

FPGA笔试必会知识点1--数字电路基本知识

数字电路基础知识 ——Vivado使用Chipscope在线逻辑分析仪Debug

数字逻辑电路(二逻辑代数基础)

论数字电路 与逻辑的重要性