数电
数电
请观看pdf
==注:此笔记结合课本、配套PPT看==
第一章
1. 二进制数的补码:
- 最高位为符号位(0为正,1为负)
- 正数的补码和它的原码相同
- 负数的补码=数值位迟位求反+1
2. 为什么有这种原则?
- 还是为了\(5+(-5)=0\)可以实现
编码的目的:区分信息和事物,为数字电路处理信息打基础
- 0、1编码是为了信息处理,最后还要解码
- 在进入数字电路世界之前,要进行编码,编码的目的是把一个现实世界转换成二进制
第二章 逻辑代数基础
学习重点
- 基本逻辑运算
- 公式表示方法
- 逻辑函数的化简
知识点
- 香农提出了电子电路和0 1的关联
- 基本公式和常见公式
- 代入定理
- 反演定理(在逻辑代数中有一定意义,但在数字电路实现中,意义不大)
逻辑代数描述方法
真值表——抽象度不高,但描述是确定的
逻辑式——表达最简洁
逻辑图——跟电路对应关系最好
波形图——实验室最容易得到
卡诺图
硬件描述语言
同一中逻辑关系在不同形式下的编码方式
表示方法可以不同,但是对同一个逻辑关系来讲,是可以相互转化的
根据搭建电路所需要的器件类型,对逻辑函数进行一定化简(德摩根+常用公式)
- 真值表\(\Leftrightarrow\)逻辑式 $ $
- 逻辑式\(\Leftrightarrow\)逻辑图 \(\checkmark\)
- 逻辑式\(\rightarrow\)逻辑图,需要根据所有的门类型,对逻辑式进行转化
- 逻辑图\(\rightarrow\)逻辑式,在分析中常用,拿到别人设计的电路图,想知道功能时
- 实验室
- 写出逻辑式
- 波形图\(\rightarrow\)真值表 \(\checkmark\)
- 要看波形图是否完整,要遍历所有值,波形图一列对应真值表一行
- 波形图\(\rightarrow\)逻辑式 \(\checkmark\)
逻辑函数两种标准形式
最小项\(m\)之和
- 最小项是乘积项,值为\(1\),来源于真值表。与得\(0\)容易,得\(1\)难,得\(1\)只对应一种情况,写\(1\)的式子
- 有\(n\)个变量,均以原变量与反变量的形式出现一次
- 最小项一定取了真值表的某一行
- 最小项编号的时候,以令最小项为\(1\)的取值为编号,因为只有唯一一种情况,使最小项为\(1\)
最小项性质:
- 在任意输入变量取值下,有且仅有一个最小项为\(1\)
- 全体最小项之和为\(1\)
- ==任意两个最小项之积为\(0\)。因为任何取值,无法使两个最小项同时为\(1\)==
- ==两个相邻的最小项之和可以合并==。相邻:仅有一个变量不同的最小项
最大项\(M\)之积
- 最大项是或项、相加项。或得\(1\)容易,得\(0\)难,得\(0\)只对应一种情况,写\(0\)的式子
- 一个最大项也对应真值表某一行
- 最大项编号的时候,以令最大项为\(0\)的取值为编号,因为只有唯一一种情况,使最小项为\(0\)
卡诺图化简(用对称展开的方式理解,对称的方块都是相邻的)
实质:将逻辑函数的最小项之和以图形方式表示
最小项用方块表示,逻辑相邻用几何相邻表示,运用了相邻最小项可以合并的原理
卡诺图和真值表一样,逻辑式不写成最小项的形式,一样可以填卡诺图
画卡诺图不必把逻辑式化成最小项的形式,可以直接画
\(example:Y(A,B,C,D)=A'B'C'D+A'BD'+AB'\)
- \(AB'\)对应\(4\)个最小项:
\[ \begin{align} AB'& = AB'(C+C')=AB'C+AB'C'\\ & =AB'C(D+D')+AB'C'(D+D')\\ & =AB'CD+AB'CD'+AB'C'D+AB'C'D'\\ & = \sum(m_{11},m_{10},m_9,m_8) \end{align} \]
- \(A'BD'\)对应\(2\)个最小项
- \(A'B'C'D\)对应\(1\)个最小项
- 合并最小项的原则:
- 两个相邻最小项可合并为一项,消去一对因子
- 四个排成矩形的相邻最小项可合并为一项,消去两对因子
- 八个相邻最小项可合并为一项,消去三对因子
- 化简原则
- 圈尽可能地大('或'少)
- 一个圈包围的方块尽可能的多(‘与’少)
- 两变量卡诺图最多可以含有\(2\)个最小项,且不能化简
- 三变量卡诺图最多可以含有\(4\)个最小项,且不能化简
- 四变量卡诺图最多可以含有\(8\)个最小项,且不能化简(对折展开原理)
- ==一个逻辑函数如果可以表示成最小项之和,也一定能表达成最大项之积,而最小项和最大项的标号是互补的==
具有无关项的逻辑函数及其化简
约束项:逻辑函数中对输入变量的取值有限制,与这些被限制的取值对应的最小项称为约束项
任意项:在输入变量某些取值下,函数值为1或0不影响逻辑电路的功能,与这些取值对应的最小项称为任意项
无关项:约束项和任意项统称为无关项,它们可以写入逻辑式,也可以不写入逻辑式。
无关项是设计人员基于一定物理背景下的应用
第三章 门电路
1. 简单介绍
选择离散的电压信号(离散的电压序列)表示信息
电压容易产生、测量
低功耗,有电压可以没电流
易受环境的影响
需要直流
电压遇到\(RC\)网络慢
Voltage pros:
- easy generation, detection
- lots of engineering knowledge
- potentially low power in steady state zero
Voltage cons:
easily affected by environment
DC connectivity required?
R & C effects slow things down
Noise and inaccuracy are inevitable: we can't reliably reproduce infinite information--we must design our system to tolerate some amount of error if it is to process information reliably.
在模拟系统中,\(0.37和0.369\)是不一样的,最后造成误差
Why digital?
- because it keeps the contracts simple. 可靠,具有tolerate some amount of error的能力
- But the price we pay for this robustness: All the information that we transfer between modules is only 1 crummy bit!
\(example:\)要传\(0.37\mathrm{volt}\)的信号,模拟系统中一根线就可以,而在数字系统中,要\(0.37\rightarrow\)二进制(\(010100....\))
- 要么多根线传输,牺牲空间
- 要么一根线,\(1bit、1bit\)的传输,牺牲时间
表面上\(0、1\),实际上传的还是电压信号,那为什么还能有tolerate some amount of error的能力?
- 所有的数字器件必须签合同。
- \(Contract\) : I will only output $1's $ and \(0's\). and they will be \(GOOD\) \(1's\) and \(0's\), Yet. I will tolerate inputs that are not quite up to my high standards.
Using Voltages "Digitally"
- Key idea: don't allow \(“0”\) to be mistaken for a \(“1”\) or vice versa
- Use the same "uniform representation convention" for every component and wire in our digital system to implement devices with high reliability, we outlaw "close calls" via a representation convention which forbids a range of voltages between "0" and "1"
数字电路中,也丢失了一些东西
- 当逻辑函数的真值表从一行变到另一行的时候,每一行都是确定的值,但变化的时候每一个值都在经过\(Forbidden \ Zone\)这个区。即只知道真值表(稳定时候的值),并不是每时每刻输出都有意义,逻辑代数没有描述非静态下的表达
\(CMOS\)制造工艺中,\(sio_2\)层很薄,薄到要去数原子个数,所以很容易被击穿,因此要加保护电路
==输出低电平时,希望\(MOS\)管工作在哪个区?==
-
- 输出电平,导通的\(MOS\)管起开关作用,目的是把"地"拉出来,起下拉的作用,希望在这个器件上的压降小,即\(v_{ds}\)小,故\(MOS\)管工作在线性区
所有的信号,只有流经电路,就一定会在时间上留下痕迹——==延迟==
\(CMOS\)反相器由于上下两个管子的互补特性,在给出了理想的高低电平的同时,也带来了一个问题:==在过渡区时,两个管子同时导通==,不是工作在我们所期望的截止区和线性电阻区,而是工作在恒流区,有一个==尖峰电流(是动态功耗的来源),导致动态功耗一定不为0==。\(CMOS\)反相器静态功耗近乎为0,动态功耗一定不为0。动态,即在\(0 \rightarrow1 \ and\ 1\rightarrow0\)之间跳变的时候,尖峰电流是动态功耗的来源。
数字电路的电源电压\(V_{DD}\)一直在下降,动态功耗会降低很多,因为动态功耗是数字电路主要的功耗。但降低电源电压,数字化的'0'和'1'会很接近
\(CMOS\)电路原则
- 由上拉(\(PMOS\))和下拉(\(NMOS\))两部分组成,上拉负责输出1,下拉负责输出0,上拉和下拉要覆盖真值表的所有行。
- 上拉和下拉不能同时导通
- 上拉由\(PMOS\)构成,下拉由\(NMOS\)构成,就注定了,上拉全由反变量控制(\(PMOS\)由反变量控制),下拉全由原变量控制
\(CMOS\)器件在构成逻辑运算的时候,都是...非,不能直接得到与门,或门。因为\(NMOS\)通过控制原变量,下拉出地,输出反变量。而与、或运算是逻辑原变量的运算,输出还是原变量。
串联拓扑结构天生代表逻辑'与'运算,并联拓扑结构天生代表逻辑'或'运算
==反相器是\(CMOS\)电路中最小的逻辑单元==
第四章、组合逻辑电路
1. 看书和笔记
- 编码器
- 普通编码器
- 优先编码器
- 译码器
- 数据选择器
- 加法器
- 竞争—冒险
- 第一个图,当A,B=1时,出现了固定的竞争冒险,不是同时向相反变化偶然出现的。
- 当卡诺图中出现相切时,就会出现固定的竞争冒险现象。与Y=A+A'的方法一样。因为当出现相切的时候,就是一个变量在变的时候,就会有A和A接反相器的电路,出现时间差
2. EDA工具
希望把所有的硬件连线等都放在芯片中,需要EDA工作来做
用EDA工具来设计,跟EDA配合使用的是可编程逻辑器件
器件
- 门电路,通用性好
- 中规模器件,译码器、编码器等。都有自己的编号,功能表,不能改
用一种语言来描述我们所要设计和实现的电路
将通用型和专用型结合起来
- 厂家在生产的时候是通用的,成本低,时间短
- 芯片内部是自己定制的。在芯片内部放大量的门、运算器,如何连线,由用户定义
在用通用型器件时,最烦的就是器件之间的连线
可编程逻辑器件就像一个电子面包板,在器件的内部,准备好了大量的数字电路的基本模块,而基本模块的连接由EDA工具连接--------逻辑综合,把一个电路的描述和电路的实现挂钩
逻辑综合类似于:高级语言到机器码,由编译器完成。硬件描述语言描述的电路到电路连接实现,由EDA工具完成。我的描述告诉电路------>电路进行综合------->电路告诉芯片
- 硬件描述语言,写的程序看似有前有后,一逻辑综合完,就没有顺序,所有输入都被拉到前面,并行
- 微电子行业的人喜欢用verilog
- 可编程逻辑器件的人喜欢用VHDL,因为侧重从上往下,并不关心电路是如何实现的
- Verilog偏底层,VHDL系统级
第五章 时序逻辑电路
时序逻辑电路中,不是所有信号都是有效信号,当认为是有效信号时,才开启load存入记忆系统
上图这个电路没有输入,不能把0、1放进去。要把输入引出来,但反相器没发引
- 通过两条反馈线,与S=1, R=1的情况相与,变成S=0, R=1或S=1,R=0的信号,避免了SR同时为1
- ==\(Q:\)但这两条反馈线对\(SR\ flip-flop\)的置1、置0、保持功能有影响吗?==