跳转至

数字硬件实现

  • 数字电路用==集成电路==构建而成

  • 集成电路:Integrated Circuit,IC

  • IC是一种硅半导体晶体,俗称==芯片==,包含实现==逻辑门和存储单元==的电子元件

  • 芯片采用陶瓷或塑料封装,由内部电路引出与外 部电路相连的==接线(引脚)==

  • 引脚构成了芯片的==接口==

一、CMOS电路工艺

CMOS

  • 集成电路可根据==工艺==划分,CMOS占据统治地位

  • ==C==MOS:基于硅的==互补==氧化物半导体工艺

  • 特点:高密度、高性能、低功耗

  • 基础是MOS晶体管

  • MOS: 金属氧化物半导体

  • 包含==两种类型==的晶体管

  • n沟道MOS

  • P沟道MOS

  • n 沟道MOS晶体管原理:可以模型化成开关

  • 通常漏极电压高于源级

  • ON: 当栅极比源级电压==高出阈值==

  • OFF:当栅极比源级电压差==低于阈值==

image-20230610181027362

给n沟道的栅极施加一个电压(高电平),那么就相当于是导通的:

  • X=1时,电路是导通的;
  • X=0时,电路相当于时关闭的;
  • 常开的意思就是没有施加电压就认为X=0

开关模型

电路状态跟X一致的就叫n沟道(或者说电路状态跟电压信号一致的就叫n沟道)

而且可以从下面的具体例子中看到n沟道和p沟道的的不同,自己画图的时候也要注意

  • n沟道中间为\(X:X\),两者一致
  • p沟道中间为\(X:\overline{X}\),两者不一致
类型 例子
==n沟道==:栅极(G)、源极(S)、漏级(D) ==常开== image-20230610181226090
==p沟道==:源级和漏级互换,行为和n沟道相反==常闭== image-20230610181235164

开关电路

类型 例子
串行:\(XY\)\(\overline{X}~\overline{Y}\) image-20230610181812347
并行:\(X+Y\) image-20230610181821171
问题 我的答案
image-20230610182633072 image-20230610182749547

完全互补的CMOS门结构

C就是互补的意思

我们要把两部分一样功能的互补电路连接起来

  • 对偶结构

  • n 沟道 vs. p沟道

  • 串联 vs. 并联

  • p沟道传输1能力强:原函数
  • n沟道传输0能力强:反函数
  • 设计时

  • ==先设计n沟道==:不带反变量 (但我们需要先得到目标函数的反函数再设计n沟道)

  • 再通过对偶原则p沟道

  • CMOS门结构设计
0. 目标函数 1. 得到反函数
\(F = \overline{X}Z+\overline{Y}Z=(\overline{X}+\overline{Y})Z\) $\overline{F} = X Y + \overline{Z} $
2. n沟道常开开关实现 3. 通过==对偶原则==p沟道常闭开关实现 4. 综合 5. 替换
image-20230610205537836 image-20230610210339573 image-20230610210048309 image-20230610210115719
  • CMOS电路一般是==取反==的形式 (比如下面实现的都是啥非门)
  • 因其结构简单

  • 复合门:比与非门、或非门、非门复杂的电路

通用设计结构 或非 与非 非门
image-20230610210736720 image-20230610210815500 image-20230610210942400 image-20230610211029165
对于上面的图a,我们的上面的p沟道用来实现逻辑1,下面的n沟道用来实现逻辑的0。 观察下面的n沟道,我们可以看到\(G_2=X+Y\),观察上面的p沟道,我们同样可以得到\(G_1=\overline{X}~\overline{Y}=\overline{X+Y}\),两者互补 观察下面的n沟道,我们可以看到\(G_2=XY\),观察上面的p沟道,我们同样可以得到\(G_1=\overline{XY}\),两者互补 观察下面的n沟道,我们可以看到\(G_2=X\),观察上面的p沟道,我们同样可以得到\(G_1=\overline{X}\),两者互补

重新理解这种电路,实质上就是这相当于一个选择器将上面的"逻辑1",和接地的"逻辑0"选择输出,而具体的选择功能是由逻辑电路来实现的,也就是说从输入端X到F是不导通的,X只是起负责控制CMOS的作用,而真正导通的是逻辑0或逻辑1于输出端F的电路,也就是说只要

古早PPT

👇 👇
image-20230610212454331 image-20230610212508081
image-20230610212552085 image-20230610212603051
👆可以看到是在与非门后面又加了一个反相器 👆可以看到是在或非门后面又加了一个反相器
image-20230610212656349 在CMOS实现与或门这些电路上,实现与非、或非和非这些电路要比实现与门、或门、甚至是自己本身还要简单得多,这也就不难理解了之前为什么做工艺映射是这样操作了。

image-20230610214705738

工艺参数

  • ==工艺参数==:表征实现工艺的参数

  • ==扇入==:一个门可能的输入数

  • 通常不超过4~5个

  • 大扇入门==使用低扇入门连接==而成

  • ==扇出==:一个门输出驱动的标准负载数

  • ==成本==:晶体管大小、数目等因素

image-20230610215342942

  • 传统的实现是==固定==的

  • ==一次性成本高==

    • 适用于==大规模生产==

    • 不适用于==小规模生产==

  • 可编程逻辑器件(PLD)

  • ==包含==:实现逻辑功能的结构

  • ==可编程==:以实现功能,是==硬件过程==

二、可编程实现技术

编程技术

  • 可编程实现技术

  • 固化编程

    • 熔丝

    • 反熔丝

    • 掩膜编程

  • 可重复编程

    • 编程点的存储单元:易失性

    • 晶体管开关:不易失性

  • 晶体管开关

  • 光可擦除:采用紫外线照射进行擦除

  • 电可擦除:采用高于正常值电压擦除

  • 闪存技术:电可擦除技术,支持多擦除选项

    • 单个浮动栅极

    • 所有浮动栅极

    • 浮动栅极特定子集

可编程器件

  • 在组合电路中,经过卡诺图优化后,一般可以将输出表达成积之和,如:

image-20230610220022066

  • 因此,要实现组合电路,需要:

  • 与门阵列

  • 或门阵列

常规符号 阵列逻辑符号
image-20230610220104474 image-20230610220116783

:fish:上面两者等价

可编程器件 detail
只读存储器(ROM) image-20230610220554566
可编程阵列逻辑(PAL) image-20230610220724739
可编程逻辑阵列(PLA) image-20230610220824345

不需要去记

只读存储器(ROM)

  • 由译码器提供最小项

  • 可编程或阵列

  • 无需电路优化:电路成本最高

  • 两个角度理解

角度一 角度二
image-20230610220932701
image-20230610221050103 image-20230610221101214
相当于一个5输入的组合逻辑电路,最多可以有8个输出,每个输出就是对应的最小项之和的表达式; 就相当于一个数组,可以存放32个数据,每个数据是8bit也就是1byte,这个8bit的数据在这里叫做地址,I[4:0]就是我们的索引,A[7:0]就是存储的数据;
每一条竖线代表一个组合函数 每一条横线代表一个存储的数据

可以参照基于译码器的组合电路来理解这里的连接,就可以发现A[7:0]每一位数据都是32位宽的数据,代表了一个组合函数,这里只要再上面点一点就代表着这里产生了连接,对应的位就为1

image-20230610222830687

选A

可编程阵列逻辑(PAL)

  • 可编程与阵列

  • vs. 可编程或阵列(ROM)

  • 单输出两级优化

    • 共享积之和

    • 多级电路

image-20230610222027323

最小项 方程 可编程与阵列
image-20230610223342392 image-20230610223359807 image-20230610223429309

可编程逻辑阵列(PLA)

  • 可编程与阵列

  • 可编程或阵列

  • 多输出==两级优化==

  • 每个函数用最少乘积项(要尽可能多共享乘积项)

  • 函数间共享乘积项

  • 可反相输出

image-20230610223608289

方程 可编程逻辑阵列
image-20230610223653492 image-20230610223723582
  • ROM - 无需优化 - 电路成本最高

  • PAL - 单输出二级优化 - 共享积之和 - 可实现多级电路

  • PLA - 多输出二级优化 - 共享乘积项 - 可反相输出

现场可编程门阵列(FPGA)

可以编程的地方 可编程逻辑块
image-20230610225202072 image-20230610224738576
  • 可编程逻辑块组成

  • ==查找表==(LUT)

  • D触发器

  • 加法逻辑

  • 多路复用器

  • SRAM配置位

    • 静态随机访问存储器
  • 查找表

  • Look-Up Table,LUT

  • 实现组合逻辑函数

  • \(2^k \times 1\) 存储器:函数真值表

查找表 用查找表实现布尔函数
image-20230610225235473 image-20230610225339011
题目 我的答案
image-20230610225833650 image-20230610230048775

答案就是1100 0110

image-20230610231559624

就是要利用左边的可编程逻辑块实现右边的时序逻辑行为

容易得到:

image-20230610231932039

答案就是:1001 0011 111

对于上面这个可编程逻辑块其实还可以实现全加器的功能,只要让上面个查找表为\(a\oplus b\),下面一个查找表为\(ab\)即可(也即0110 0001依次赋值上面0到7)