浙江网站建设平台,网络设计是啥,购物网站开发的需求分析,设计师服务平台素材羊1. 前言
我们说的数字电路#xff0c;一般是指逻辑数字电路#xff0c;即通过逻辑门组合成的电路#xff0c;也即我们常说的逻辑IC。IC除了逻辑IC之外#xff0c;还有模拟IC#xff0c;存储IC等。 IC设计#xff0c;需要学习数字电路#xff0c;需要学习Verilog/VHDL等…1. 前言
我们说的数字电路一般是指逻辑数字电路即通过逻辑门组合成的电路也即我们常说的逻辑IC。IC除了逻辑IC之外还有模拟IC存储IC等。 IC设计需要学习数字电路需要学习Verilog/VHDL等设计语言需要学习使用相关EDA看起来非常难。IC设计是很难但是简单的入门并没有那么难。
2. 数字电路
2.1. 基础
数字电路(Digital Circuit) 用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路。数字逻辑集成电路(IC)是数字电路在半导体晶圆上的物理实现。 模拟电路和数字电路 模拟电路信号更接近真实世界信号但是抗干扰差。数字电路信号一般使用2进制(0和1)编码抗干扰佳传输速度快。 PAM4编码 数字信号一般使用2进制编码(NRZ编码)但是也可以使用其他编码方式如PAM4编码 可以传输更多的信号,如PCIe6即支持PAM4编码。
2.2. 门
数字电路构成逻辑门是数字电路的基本构成逻辑门主要用来执行布尔逻辑运算。数字电路工艺 TTL门 由电阻和三极管构成。响应速度快。三极管在导通时基极需要保持一定的偏置电流导致TTL工艺IC静态功耗高难以大规模集成。 CMOS门 由电阻和MOS管构成。MOS状态不变时(无论是导通或截止)其栅极没有电流CMOS工艺的IC静态功耗低。(MOS管只在状态改变时产生电流)当前逻辑IC的主流工艺是CMOS门工艺。 基本门 与门、或门、非门、同门 复合门 与非门、或非门、异或门、同或门
2.3. 组合逻辑电路
2.3.1. 加法器
Full Adder(全加法器,带进位的加法器) 加法器可以用与门、或门、异或门实现也可以用或非门实现还可以用其他门组合实现。 优先选择与门、或门、异或门的实现方式这种方式消耗的门数最少降低IC的功耗和面积。
2.3.2. 比较器
1-Bit Digital Comparator (1Bit比较器) 1Bit比较器是最简单的比较器。 以此为基础可以扩展为多Bit比较器。
2.3.3. ALU 算术逻辑单元(Arithmetic Logic Unit)。 CPU的每个核心至少有一个ALU。 负责算术运算、逻辑运算、位运算和比较运算等。
2.3.4. Mux
2×1 Multiplexer 多路选择器根据输入选择输出。多路选择器可以扩展为支持更多输入控制。
2.3.5. 组合逻辑
组合逻辑电路 由逻辑门构成。电路通电时电路立即执行完成输出结果可以认为是即时响应。Mux、Decoder、 Comparator等ALU单元都是组合逻辑电路。 组合逻辑电路时延 电信号的速度为30万公里/秒在导线中的速度大概20万公里/秒。 1GHz的时钟的IC其时钟周期为1ns电运行距离20cm。 一个组合逻辑电路在IC中的总长度为10cm电执行完的时间0.5ns在1个周期内。 一个复杂的组合逻辑电路如果总长度为30cm电执行完的时钟1.5ns超过1个周期。 IC的执行以时钟周期为单位在1个周期内即可以认为立即执行完成。 IC的执行时间超过1个周期即认为组合逻辑没有即时执行。 组合逻辑电路不要太过复杂总执行时钟不能超过1个时钟周期。 (以上计算只是估算实际组合电路中不同门、不同线宽等都影响电的实际速度)
2.4. 时序逻辑电路
2.4.1. 锁存器
SR-Latch(SR锁存器) SR锁存器能够锁存之前的状态。SR锁存器有多种实现方式下面以与非门来介绍。当输入为1时输出均为之前的状态。SR锁存器能够保持之前的状态有记忆功能。
2.4.2. D触发器
D Flip Flop(D触发器) 基于SR锁存器将R改为Clk时钟。当Clk为0变到1时查看SR锁存器真值表输出锁存。第1次采样Data电平1Q输出1并保持到下个上升沿。D触发器可以记忆输入信号的上个时钟采样的数据。1个或多个D触发器组成寄存器保存多位状态。
2.4.3. 分频电路
2分频电路 通过寄存器保持上一次状态来让实现2分频输出。 此电路可扩展为多分频输出。
2.4.4. 计数器
2Bit Up Counter 通过寄存器保存上个时钟的状态达到更新状态。 2Bit 最多计数4种状态。 可扩展到多Bit计数器计数更多状态。
2.4.5. 时序逻辑电路
时序逻辑电路Sequential Logic Circuit 时序逻辑电路与时钟序列有关的逻辑电路。通过寄存器保存上个时钟周期的状态。数据在时钟边沿(上升沿或下降沿)触发时更新。大型计算如果可以拆分为多个并行计算那么可以使用组合电路在一个时钟周期内完成计算。 大型计算如果不能在一个时钟内完成计算则需要将计算分拆为多Step,每Step通过组合电路在一个时钟周期内完成计算然后通过寄存器将结果传入下个时钟周期继续计算完成所有Step之后输出最终结果。
2.5. 状态机
State Machine(状态机),清晰的输入输出更可靠的时序电路可以实现更复杂的逻辑。
3. 数字电路硬件
3.1. ASIC
ASIC特定应用集成电路
ASIC 是为特定应用或功能而专门设计的集成电路可以高度优化以满足特定性能、功耗和面积要求。ASIC一般不集成CPU不可编程。常应用于放大器、滤波器、调制解调器、音频解码器、视频解码器等。 在IC发展早期类型主要为ASIC。 实现相对简单。灵活性不够只能通过外部引脚完成一些简单的功能配置。
3.2. CPU
指令集发展 早期的IC都是特定应用的集成电路(ASIC)灵活性不够。为了提升IC的灵活性早期引入了助记符指令IC可以执行自定义的助记符指令实现复杂逻辑操作。随着IC逻辑进一步复杂助记符指令也进一步发展变得复杂。1970sIntel推出微处理器并在助记符指令的基础上专门的8080指令集后来逐步发展为x86-64指令集。1980sRISC(精简指令集计算机)架构推出相应衍生出MIPS、SPARC和ARM等架构和配套指令集。2010年RISC-V(Reduced Instruction Set Computer V)作为一种开放的指令集架构(ISA)由UC Berkeley提出。 CPU发展 CPU和ISA是同步发展的。ASIC引入控制单元模块来支持指令集此时ASIC即变成了CPU。CPU控制单元负责读取指令集代码解析执行相应的操作并完成调用ALUI/O输出等。
3.3. SoC
系统芯片,也称片上系统(SoCSystem on Chip)是一种集成电路设计它将计算机系统的许多组件集成到单一的芯片上。SoC 通常包括 CPU、总线(Bus)、其他Master模块(如Security Subsystem等)、DMA等其他Slave模块(如UART、IIC等) 以提供完整的计算解决方案降低用读电路开发难度。MCU可以认为是一种应用于嵌入式上的低功耗SoC。 IP(Intellectual Property知识产权),类似软件开发中的库。IP的表现形式:
软IPRTL代码(Verilog/VHDL)使用灵活可扩展性强。硬IP完成物理布线的物理版图使用简单但可扩展性差。
3.4. FPGA
FPGAField-Programmable Gate Array现场可编程门阵列是一种集成电路它的最大特点是可以通过编程来配置其硬件逻辑。CPU可以通过编程增加灵活性但是如果CPU对应的数字电路出现Bug也是无法修改的。数字电路部署到- FPGA上如果出现Bug可以很方便地替换为新数字电路设计。数字电路设计到IC生产这一整个过程很长也可以使用FPGA加速数字电路到生产部署。FPGA用于验证数字电路提升数字电路设计的可靠性。FPGA适合需要灵活性和快速变化的应用场景。
4. 数字电路设计
4.1. 数字电路图
Digital Circuit Diagram 早期的数字电路设计是直接手动绘制电路图然后将晶体管和其他电子元件按照电路图附加在半导体材料上。随着IC的技术发展电路图可以使用基本模块如加法器、D触发器、Mux等可以提升手动绘制电路图的效率。随着IC复杂度的进一步增加手动绘制数字电路图的难度越来越大急需要一种更便捷的方法。 Advantage 简单直观可以快速设计小的数字电路。Disadvantage 针对大型/超大型数字电路设计难度大设计效率低。
4.2. 数字电路描述语言
4.2.1. 概念
HDL 硬件描述语言HDL是一种专门用于描述数字电路的编程语言。随着数字电路规模增加手动绘制数字越来越难效率越来越低。使用一种编程语言来描述数字电路然后用工具将编程代码综合成数字电路图。 Traditional HDL VHDL、Verilog/SystemVerilog。New HDL SystemC基于C的 的硬件描述和建模语言主要用于IC开发前期的系统建模。Chisel基于Scala的RTL级HDL可以生成Verilog/SystemVerilog。SpinalHDL基于Scala的RTL级HDL可以生成Verilog更好的可读性可维护性。MyHDL基于Python的RTL级HDL可以生成Verilog、VHDL。 Synthesis Tools 商业综合工具Synopsys Design Compiler Cadence Genus等。开源综合工具Yosys iverilog等。
4.2.2. 抽象层级 Level of Abstraction System Level抽象高关注功能用于建模仿真不关注时序细节推荐SystemC。Algorithm Level关注算法的实现推荐语言C/CMATLAB。RTL Level关注寄存器级传输行为可以综合为实际数字电路推荐语言VHDLVerilogChisel。Gate Level逻辑门级别可以综合成实际数字电路推荐语言VHDLVerilog。Switch Level基于三极管开关的实现用于分析电路电气特性推荐SPICE, Verilog-A。 Digital Circuit Design 系统级的HDL虽然有一些高级综合技术可以综合为实际数字电路但是实际使用较少。门级HDL抽象层级低描述硬件效率低一般不单独使用。RTL级抽象层中等描述硬件效率高并且可以综合成实际的数字电路所以数字电路设计多用RTL级语言描述。
4.2.3. RTL
RTL(Register Transfer Level)是一种用于描述数字电路设计的抽象级别着重于在寄存器之间的数据传输和处理方式。RTL可以通过工具综合成实际数字电路。实际数字电路设计多用RTL表示因此一般用RTL来代指数字电路设计。RTL语言Verilog/SystemVerilog、VHDL、Chisel等。