复杂数字系统设计-Ch4A_第1页
复杂数字系统设计-Ch4A_第2页
复杂数字系统设计-Ch4A_第3页
复杂数字系统设计-Ch4A_第4页
复杂数字系统设计-Ch4A_第5页
已阅读5页,还剩158页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四部分 复杂数字电路系统设计 4 1二进制加法器 Adder 加法器是数字运算系统中最基本的单元电路 任何复杂的二进制算术运算一般都是按照一定的规则通过基本的加法操作来实现的 1位加法器 半加器与全加器 半加器 HalfAdder 图 一位半加器真值表 一位半加器逻辑表达式 5 1二进制加法器 Adder 全加器 FullAdder 全加器真值表和逻辑表达式 4 1二进制加法器 Adder 1位加法器 半加器与全加器 全加器 FullAdder 一位全加器逻辑电路图 4 1二进制加法器 Adder 1位加法器 半加器与全加器 全加器 FullAdder 一位全加器MOS管电路图 4 1二进制加法器 Adder 1位加法器 半加器与全加器 全加器 FullAdder 一位全加器集成电路版图 4 1二进制加法器 Adder n位并行加法器 并行相加是指n位被加数中的每一位与n位加数中的各个对应位同时相加 n位并行加法器由n个一位全加器相互连接构成 其连接方式决定了该加法器的电路复杂程度和运算速度 行波进位加法器 RippleCarryAdder 4 1二进制加法器 Adder 行波进位加法器 RippleCarryAdder 结构特点 该加法器每一位的进位输入均由相邻的低位送来 在最高位 n 1 得到最后的进位输出Carry 输出的 和 SUM则从各个相应位取得 性能特点 电路简单 规则 易于IC版图的设计与实现 主要缺点 进位信号是从最低位向最高位逐级传递的 就是所谓的行波 只有这样才能获得正确的结果 延迟计算 4 1二进制加法器 Adder 两个重要的变量 从一位全加器的逻辑表达式中可以导出两个只和参与运算操作数相关的变量G和P 其中G称为进位产生函数 即若G 1 无论该全加器的进位输入如何 都会有进位输出Cout产生 P则称为进位传递函数 若P 1 则该全加器的进位输入才可以参与生成进位输出Cout 于是 一位全加器的逻辑运算表达式也可以用下式表达 4 1二进制加法器 Adder 旁路进位加法器 CBA CarryBypassAdder 旁路进位加法器的结构特点是将N位的加法运算划分成多个4位的分组 组内采用行波进位的连接方式 在此基础上 通过进位旁路选择逻辑将各个分组连接在一起 构成实际的N位旁路进位加法器 4 1二进制加法器 Adder 旁路进位加法器 CBA CarryBypassAdder 即最低位的进位输入被直接旁路至下一组的进位输入 否则 下一组的进位输入从上一组的行波进位输出获得 基本设计思想 若 则 4 1二进制加法器 Adder 旁路进位加法器 CBA CarryBypassAdder 运算的过程 对于任意的一个分组 一旦加数和被加数在其输入端稳定下来 立即进行P G和BP函数的计算 然后其进位与求和可以分成两种情况进行 1 进位旁路 组内行波进位加法器完成本组各数据位的求和与进位运算 但由于本组的进位输入尚不确定 结果可能并不正确 与此同时 二选一数据选择其选择输出本组的进位输入 旁路进位 一旦本组进位输入稳定 重新计算本组各数据位的求和与进位 同时 本组进位输入被旁路至下一组的进位输入端 4 1二进制加法器 Adder 旁路进位加法器 CBA CarryBypassAdder 运算的过程 2 非进位旁路 假设Bit10相加后有进位 组内行波进位加法器完成本组各数据位的求和与进位运算 但由于本组的进位输入尚不确定 结果可能并不正确 但Bit10的进位与Bit11的进位及和是正确的 与此同时 二选一数据选择其选择输出本组的行波进位结果 Bit11的进位运算结果 一旦本组进位输入稳定 重新计算本组各数据位的求和与进位 获得最终的正确结果 4 1二进制加法器 Adder 旁路进位加法器 CBA CarryBypassAdder 旁路进位并行加法器运算速度比较快的原因 1 各个分组的P和G以及BP函数可以同时并行计算 2 在最坏的延迟条件下 即进位需要在所有参与运算的数据位之间传递 由于事先已完成了BP函数的计算 进位也只需要在分组之间传递 而不是在分组之内传递 4 1二进制加法器 Adder 旁路进位加法器 CBA CarryBypassAdder 运算速度计算公式 是计算P G和BP函数所需的时间 是进位旁路逻辑的延迟时间 4 1二进制加法器 Adder 选择进位加法器 CarrySelectAdder 结构特点 将n位操作数分成相同位数 K位 的M个分组 每一组由两个K位的行波进位加法器和一个多路数据选择器 MUX 构成 两个加法器的进位输入分别是 1 和 0 MUX用于从两个加法器的 和 中选择一个作为最终的结果 4 1二进制加法器 Adder 选择进位加法器 CarrySelectAdder 最长延时路径 性能特点 M个分组的数据以完全并行的方式相加 分组内的K位数据则按行波进位的方式相加 选择进位加法器 CarrySelectAdder 4 1二进制加法器 Adder 延迟计算 Tmux MUX的延迟时间 Tsetup 数据建立时间 4 1二进制加法器 Adder n位并行加法器 超前进位加法器 CarryLookaheadAdder 设计高速并行加法器的关键在于如何设计出延迟时间最小的进位信号处理电路 超前进位是在对多位加法运算算法进行深入研究的基础上 依据低位的加数和被加数的状态来判断本位是否有进位 而不必等待低位送来的实际进位信号 从而大大提高多位加法的运算速度 超前进位算法的研究 N位加法运算中 某一位数的相加是否产生进位的条件是 N位加法运算中 其进位输入直接传递到该位进位输出的条件是 进位信号产生函数 进位信号传递函数 4 1二进制加法器 Adder 超前进位加法器 CarryLookaheadAdder 超前进位算法的研究 进行第i位加法运算方法 首先进行进位产生和进位传递函数的计算 然后根据Gi与Pi的结果计算该位的和与进位 将Ci 1的计算公式向下递归使用 可得 4 1二进制加法器 Adder 超前进位加法器 CarryLookaheadAdder 四位超前进位加法运算算法 根据上页介绍的方法可以推导出四位超前进位算法如下 从上面公式可以看出 每一特定位的进位信号可以直接从本位以及比它低的各位加数 被加数和C0的状态来作出判断 而不需要等待低位实际送来的进位信号 这样一来 任意一位所需的进位信号只要各个相关信号输入后经过两级门延迟即可获得 加法的运算速度与参与运算操作数的位数无关 4 1二进制加法器 Adder 超前进位加法器 CarryLookaheadAdder 根据上页公式 可以获得四位超前进位加法器的电路结构 4 1二进制加法器 Adder 超前进位加法器 CarryLookaheadAdder 超前进位产生电路模块的逻辑电路如下 由上图可以看出 每一位的进位信号都要包含所有比它低各位的P和G两个函数 当参与运算的位数较多时 低位所产生的P和G函数所要驱动的负载会过重 而且整个超前进位形成逻辑电路会非常复杂难以实现 因此一般超前进位形成逻辑电路均以四位为基础构成 超前进位加法器中的全加器电路 4 1二进制加法器 Adder 超前进位加法器 CarryLookaheadAdder 超前进位形成逻辑的递归使用 4 1二进制加法器 Adder 各种类型并行加法器速度与电路规模比较 4 1二进制加法器 Adder 浮点数加法器 FloatingPointAdder 浮点数的表示方法 式中 M Mantissa 浮点数的尾数 R Radix 浮点数中阶的基数 E Exponent 浮点数中阶的阶码 在浮点数中小数点的位置可以左右移动 其表示方法为 4 1二进制加法器 Adder 计算机中浮点数的表示方法 计算机中规定浮点数的基数R为一般2 8或16 在实际应用中主要为2 由于该R为固定值 所以不需要在浮点数中明确地表示出来 因此要表示浮点数 必须 给出尾数M 通常使用定点小数形式表示 用纯小数原码 其位数决定了浮点数的精度 给出阶码E 通常用整数形式表示 整数形式移码 用其指示小数点在数据中的位置 其位数决定了浮点数的表示范围 浮点数的符号位Ms 0 正数 1 负数 浮点数的格式 浮点数的表示方法 4 1二进制加法器 Adder 浮点数的表示方法 为了进一步统一浮点数的表示与运算方法 IEEE对浮点数的表示方法规定了一个标准的格式 IEEE标准浮点数的表示方法如下 浮点数加 减法的运算规则 浮点数加 减法的运算规则是在保证参与运算两数的阶码大小一致的情况下 进行尾数的相加或相减操作 浮点数加 减法的运算步骤 阶码相减 ES 计算2个数阶码之差的绝对值 Ea Eb d 对阶 Alignment 操作 Align 将较小操作数的尾数右移d位 并将较大操作数的阶码记为Ef 尾数相加 减 SA 依据符号位 对两个操作数进行加法或减法操作 数据转换 Conv 若尾数相加 减的结果为负数 需将结果转换成符号 数值表示方式 结果记为Sf 尾数首位 1 检测 LOD 计算规格化时尾数需要左 右移动的位数 并标记其为En 若En为正 则为右移 仅右移1位 对应于尾数结果溢出的情况 否则为左移 规格化 Normalization 处理 Norm 尾数移位En位 同时将En加到阶码Ef上 舍入操作 Roud 执行IEEE舍入操作 即在需要时在尾数S的最低位加1 这可能导致溢出 此时须将尾数右移1位 同时阶码Ef加1 4 1二进制加法器 Adder 浮点数加法器 FloatingPointAdder 4 1二进制加法器 Adder 浮点数加 减法的运算电路结构的改进 原有算法的缺点 对阶操作和计算结果规格化处理时需要两个全长度的移位器 尾数运算 数据转换和舍入操作时需要三个尾数加法器 算法的改进 数据转换操作仅在尾数操作的结果为负值 实际上是在做减法 时才需要 而且此操作可以通过交换尾数相减时的减数和被减数来得以避免 但在阶码相等时例外 但此时不需要进行舍入操作 有尾数交换的算法中 舍入和数据转换操作是相互排斥的 在仅有加法的情况下 尾数操作结束后只可能使结果增加 于是只有全长度的对阶移位器是必须的 对于减法操作 分成两种情况 一种情况是阶码的差值d 1 记为FAR 此时需要一个全长度的对阶移位器 但所得结果规格化时 最多只需要进行1位左移操作 另一种情况是d 1 记为CLOSE 这时不需要全长度的对阶移位器 但是必须要有全长度的规格化移位器 由此可见 全长度的对阶移位器和规格化移位器是互斥的 通过对尾数操作结果中高位打头 0 的个数的预测 在操作数输入后就进行LOD操作 此时的操作称为LOP Leading One Prediction 浮点数加 减法的运算电路结构的改进 双路径浮点数加 减法电路 阶码差值 d 1 阶码差值 d 1 4 2桶型移位器 BarrelShifter 移位操作的类型 逻辑 算术左移 循环左移 逻辑右移 算术右移 循环右移 4 2桶型移位器 BarrelShifter 移位操作的例子 假设输入的移位操作数据为d7d6d5d4d3d2d1d0 要求移位或旋转的位数为3 4 2桶型移位器 BarrelShifter 用D触发器构成的移位器 6 Bit右移移位寄存器 这是一种非常典型的是数字时序电路 需要在时钟的边沿的触发下才能工作 而且在每个同步时钟周期内只能实现一位数据的左移或右移 若要移动N Bit数据 则需要N个时钟周期 即该电路实现不同位数移位操作时所需要的处理时间是不同的 与所需移动的位数成正比关系 4 2桶型移位器 BarrelShifter 桶形移位器的构成结构 桶形移位器是由分级排列的多个数据选择器 2 1MUX 电路构成的 每一级MUX电路完成的移位操作的位数是2的整数次幂或是不做移位而将本级的输入数据直接送入下一级的MUX电路的输入端 对于n位的输入数据 为了实现n 1次移位 需要有级数据选择器组 由k位数据组成的移位次数控制信号线控制每一级MUX组是否进行移位操作 若第m m 0 k 1 位控制信号线 1 则该级的MUX组将其输入数据移位 否则不移位而将数据数据直接送入下一级 8 bit输入逻辑右移桶形移位器电路 4 2桶型移位器 BarrelShifter 桶形移位器的构成结构 8 bit输入循环右移桶形移位器电路 4 3算术逻辑单元 ALU ALU ArithematicLogicUnit 算术逻辑单元是所有数字信号处理设备必不可少的运算部件 同时也是应用最为灵活和使用频率最高的部件 ALU主要完成两个输入操作数相加 相减这两种算术运算及求 与 或 异或 和 非 等逻辑运算以及各种移位运算等 ALU中还设有运算结果的判定电路和相关的状态标志寄存器 可以对数据运算结果的性质与状态进行检测和保存 供进一步处理时应用 算术运算电路 实现两个输入操作数相加与相减两种类型的操作 而减法功能的实现是建立在并行加法器结构之上的 在各类数字信号处理运算中 为了尽可能简化加 减法运算的复杂程度 提高运算效率 一般采用补码的形式来表征有符号数 4 3算术逻辑单元 ALU 获得一个有符号数补码的方法是 将原码的符号位保持不变 其余各位即数值位求反后再在最低位加 1 如 42的原码表示为 1010 1010 按以上法则求出其补码是 2的补码的特点是 最高位是符号位 该位为 0 表示是正数 为 1 则表示是负数 与有符号数的原码表示不同 数字 0 的表示是唯一的 正数的补码与其原码相同 N位补码对有符号整数的表示范围是 采用2的补码方式对有符号数进行表征的最大优点是 可以采用加法器来完成减法运算 而且符号位与数值位可以一起参与运算 这样一来 就大大简化了减法电路的设计 提高了加 减法电路的运算效率 在采用2的补码进行减法运算时 A B可以用A B 来实现 而 B的求法是将B的各位 包括符号位 求反后 再在最低位加 1 后获得 4 3算术逻辑单元 ALU 逻辑运算和移位运算电路 逻辑运算电路主要实现A和B两个操作数各个位之间的 与 或 异或 以及单个操作数的 求反 置位 和 清零 等操作 这些操作实现起来比较容易 使用简单的组合逻辑门电路就可以实现 移位运算电路主要完成单个操作数的逻辑 算术左移或右移以及左 右循环移位操作 这些操作一般均使用前面讲述的桶形移位器电路实现 不过为了降低电路的规模 需要将所有6种操作的实现电路和并在同一个桶形移位电路中实现 这样一来 可以共用桶形移位电路中每一级的多路数据选择器 MUX 资源 实现逻辑右移和循环右移转功能的桶形移位器电路 4 3算术逻辑单元 ALU 运算结果状态的检测 ALU电路的一个非常重要的功能是提供运算结果数据的状态检测 并将所有的状态检测结果集合在一起统一送进一个专门的寄存器 状态寄存器中 该状态寄存器各个位的内容可以用在条件转移指令中 以此为依据决定程序执行的顺序 4种最基本的状态标志 运算结果 零 标志 Z 若运算结果的各个位均为 0 该位置位 置为 1 该标志位通过将结果数据各个位相 或 后求 反 获得 即 负 标志 N 若运算结果为负数 该位置位 该标志位的状态就等于结果数据的最高位 即 进位 标志 C 若算术运算过程中 最高位数据产生进位 该位置位 即 溢出 标志 V 若算术运算过程中 运算结果超过了运算器电路所能表示的数据范围 则该位置位 由于在数字信号处理运算中 均采用2的补码形式进行运算 在此情况下结果是否溢出需要采用所谓的 双高位 判别法 即 4 3算术逻辑单元 ALU 运算结果状态的检测 派生标志的产生 在执行完A B的操作后 根据4个基本标志位 判别A和B操作数之间的相互关系 4 3算术逻辑单元 ALU 算术逻辑单元 ALU 的电路构成 4 4二进制乘法器 Multiplier 二进制乘法运算的步骤 4 4二进制乘法器 Multiplier 二进制乘法运算的步骤 第一步 从输入数据中依照乘数的状态产生部分积 如何产生部分积使乘法运算速度加快是设计乘法器电路的主要问题之一 第二步 将各个部分积沿垂直方向加起来产生最终的结果 要采用某种运算策略 将所有的部分积最终合并 化减 成部分积和 Sum 与部分积进位 Carry 两部分 由于该运算策略与电路的实现结构关系紧密 所以它也是乘法器电路研究的一个重要问题 第三步 将上一步骤获得的部分积和 Sum 与部分积进位 Carry 相加获得最终的乘积 4 4二进制乘法器 Multiplier 二进制乘法运算的步骤 用 点图 DotDiagram 来表示二进制乘法运算的步骤 4 4二进制乘法器 Multiplier 数字乘法器的电路结构 数字乘法器有多种电路实现方式 其结构有的简单有的复杂 简单的电路结构运算速度慢 复杂的电路结构则可以获得很高的运算速度 无符号二进制数乘法器 32 bit 移位式乘法器的电路构成 部分积产生电路加法器电路乘积移位电路 右移 4 4二进制乘法器 Multiplier 无符号二进制数乘法器 实用型移位式乘法器 32 bit 被乘数的左移主要是在于下一个部分积的权值比上一个部分积高 但此项操作可以通过右移部分积之和来实现 因为两种操作在数学上是等效的 而且通过观察相邻两个部分积求和的过程可以看出 有效的求和位数实际上等于被乘数的位数 因此有可能将并行加法器的位数降低至原来的一半 即32 bit 若采用右移部分积之和的方式来进行乘法运算 在第一个时钟周期内产生部分积之和的位数是32 bit 左移后最低位 LSB 移出并保存 然后在高位需要补 0 与剩下的31 bit组合成32 bit数据参与下一步的求和 而第二个时钟周期及其后产生的部分积之和由于执行了累加操作 部分积求和加法器输出的位数包括进位位在内共33 bit 左移后最低位 LSB 移出并保存 剩下的为32 bit 直接进行下一步的求和 从此可见 右移部分积之和时 右移操作必须包括求和加法器的进位输出位 由于每个时钟周期部分积之和与乘数均需要右移一位 乘数每次右移后可以将移出位丢弃 而部分积之和的移出位由于是乘积的有效部分需要保存 因此有可能将保存部分积之和的移位寄存器与乘数的移位寄存器合并 4 4二进制乘法器 Multiplier 无符号二进制数乘法器 实用型移位式乘法器 4 4二进制乘法器 Multiplier 并行数字乘法器 并行数字乘法器完全采用组合逻辑电路 其工作过程与上面所述的乘法运算步骤相类似 即 通过部分积产生电路同时产生所有的部分积 运用某种运算策略 将所有的部分积最终合并 化减 成部分积和 Sum 与部分积进位 Carry 两部分 然后将这两部分通过多位并行加法器相加得到最终的结果 根据部分积化减策略的不同 并行数字乘法器具有不同的电路结构形式 无符号二进制数乘法器的电路结构 4 4二进制乘法器 Multiplier 并行无符号二进制数字乘法器 部分积的产生 产生部分积的简单方法 乘法运算中的第一步就是以一定的算法产生部分积 最为简单产生部分积的方法可以用下面的点图及例子说明 4 4二进制乘法器 Multiplier 部分积的产生 实例 部分积的产生电路 4 4二进制乘法器 Multiplier 产生部分积的简单方法 使用该方法的特点 由此方法产生部分积与手工计算完全一致 用于生成部分积的电路非常简单 如上图所示 但该方法的缺点是显而易见的 即 对于任意一位的乘数 都要产生相应的部分积 若参与运算的操作数的位数为N 就要产生N个部分积 要将所有的部分积全部加起来需要使用数量很大 与部分积个数成正比 的加法器电路 而且部分积级数越多 其求和速度越慢 如果能够减少计算中生成部分积的个数 就能够有效地提高乘法的运算速度并降低电路规模 4 4二进制乘法器 Multiplier 并行无符号二进制数字乘法器 采用行波进位加法器 CPA 构造的并行数字乘法器电路 运算速度 决定该乘法器速度的主要因素是在部分积求和过程中的行波进位传递时间 其完成M N bit乘法运算所需要的时间为 部分积求和 4 4二进制乘法器 Multiplier 并行无符号二进制数字乘法器 采用保留进位加法器 CSA 构造的并行数字乘法器电路 改变一下全加器进位端的连接方式 即采用保留进位加法器 CSA 互连方式的部分积求和方法 这样就可以将进位传输延迟减少将近一半 基本原理是 进位信号不是送到本级的较高位去相加 而是推迟到后一级中同列相对应的较高位上去相加 也称其为 斜加 从而减少了进位时间 提高了乘法的速度 运算速度 部分积求和 Wallace树型结构 4 4二进制乘法器 Multiplier 部分积的化简 Wallace树型结构定义了一种CSA互连方式 可以将N个部分积化减到部分积和 Sum 与部分积进位 Carry 两个操作数 使用超前进位加法器将该两个操作数加起来就获得最终的乘积 基本原理 用每个CSA将三个权值相等的比特位减少到两个 其中一个是和 一个是进位 部分积在列方向可以视作是一些相邻的等权比特位列 可以将每3位一组将它们分成若干组 然后用CSA将每一组减少为2比特 结果生成新的列再重新划分为3比特一组的若干组 该过程重复直到将所有的部分积化减成部分积和 Sum 与部分积进位 Carry 两个操作数为止 部分积的化简 Wallace树型结构 4 4二进制乘法器 Multiplier 部分积的化简 Wallace树型结构 4 4二进制乘法器 Multiplier 部分积的化简 Wallace树型结构 4 4二进制乘法器 Multiplier 6 6 bitWallaceTree乘法器详细结构图 4 4二进制乘法器 Multiplier 并行有符号二进制数字乘法器 有符号二进制数字乘法器采用2的补码的形式进行运算 相对于无符号二进制数 其最高位是符号 数值位 因此有符号二进制乘法器的实现结构与无符号数的基本相同 只不过需要对符号位进行特殊的处理 SignBits 4 4二进制乘法器 Multiplier 并行有符号二进制数字乘法器 对于一位二进制数有 所以 于是可以通过选择一组常数参与运算 从而避免 a 算式中出现的减法运算 这样一来 下图5 4 13中 a 式可以变换成 b 中所示的形式 进一步将式 b 中的减去补偿常数的运算用补码运算表示 可以获得如图 c 中所示参与运算的常数数值和计算方法 a b c 4 4二进制乘法器 Multiplier 并行有符号二进制数字乘法器 算法推导过程 假设X与Y是两个4 bit二的补码有符号数 他们可以用下面的公式来表示 于是可以得到X与Y乘积P的算术表达式 而根据2的补码的性质 即 a b 将式 b 代入式 a 则可以得到如下面所示的补码乘积算术表达式 第7位和第4位补偿用的 1 4 4二进制乘法器 Multiplier 并行有符号二进制数字乘法器 4 4 bit2的补码乘法运算电路结构图 BaughWooley2 sComplementMultiplier 4 4二进制乘法器 Multiplier 采用Booth算法产生部分积 Booth算法产生部分积的基本思想 上面的方法中 对于乘数中的每一位 都要产生与其对应的部分积 而Booth算法按照乘数每2位的取值情况 一次求出对应于该2位的部分积 以此来减少部分积的个数 在运算中 每2位乘数有四种可能的组合 每种组合所对应的操作如下 00 部分积相当于0 M 同时左移2位 01 部分积相当于1 M 同时左移2位 10 部分积相当于2 M 被乘数左移1位后即可获得 同时左移2位 11 部分积相当于3 M 同时左移2位 4 4二进制乘法器 Multiplier 采用Booth算法产生部分积 Booth算法产生部分积时部分积的计算 2M的计算 采用将M算术左移1位的方法获得 3M的计算 3 M的计算比较复杂 解决方法是用4 M M来替代 通常的作法是本次运算中只执行 M操作 而 4 M则归并到下一个部分积生成时执行 因为下一个部分积已经左移了2位 所以上次欠下的 4 M在此刻变成了 M 与移位后的部分积正好对齐 同样也可以将 M归并至上一个部分积中运算 此时其变成 4 M M的计算 负数部分积用2的补码表示 具体做法是将相应正数值各个位分别求反 并在最低位加1后得到 4 4二进制乘法器 Multiplier 采用Booth算法产生部分积 修正Booth算法 Booth算法中3 M的计算过程比较复杂 O L Macorley于1961年提出了修正的Booth算法 ModifiedBooth sAlgorithm 算法思路 4 4二进制乘法器 Multiplier 采用Booth算法产生部分积 修正Booth算法 tothenextstage 4 4二进制乘法器 Multiplier 采用Booth算法产生部分积 修正Booth算法 通过对各个位的取值情况分析 可以得到下表所示的部分积运算结果 由上表可知 为了求得这两位乘数的部分积 只需要对这3个相邻位进行译码就可以得到 而且只需要计算X 2X X和 2X的数值 而不需要计算 3X 而2X的计算非常简单 只需要将被乘数左移一位就可以获得 减法的计算可以通过将被减数求反后加1再与减数相加后实现 采用修正Booth算法时部分积的个数 N 2 2 4 4二进制乘法器 Multiplier 采用Booth算法产生部分积 修正Booth算法 需要注意的是 为了保证运算结果的正确性 每个部分积的符号位在求和时都需要进行符号位扩展 修正Booth算法实例 有符号数相乘 采用修正Booth算法时部分积的个数 N 2 2 4 4二进制乘法器 Multiplier 修正Booth算法的16 bit乘法点图及相应的译码算法 4 4二进制乘法器 Multiplier 采用修正Booth算法16 bit乘法的实际例子 采用修正Booth算法时部分积的个数 N 2 2 4 4二进制乘法器 Multiplier 修正Booth算法有符号二进制乘法器的电路结构 该乘法器电路的工作过程与前面实用型移位式无符号数乘法器基本相同 不过其在每一个时钟周期内要完成右移2 bit 而且乘积 乘数寄存器的低2 bit要和保留移出位一起按照修正Booth算法表中的算法进行修正Booth译码 译码的结果控制所生成部分积 0 1 X 2 X 的选择控制部分积进行加法或减法运算 经过 N 2 2个时钟周期即可获得乘积结果 4 4二进制乘法器 Multiplier 一种具有乘法辅助电路的ALU 该ALU的核心部分是一个17 Bit的超前进位加法器 而乘法运算是采用乘法辅助电路以多周期指令的方式实现的 从图中可以看出 乘法辅助电路与加法器电路组合在一起构成了一个典型的移位式乘法器 为了尽可能地提高乘法的运行速度 部分积的产生采用了修正Booth算法 实现16 Bit数据的乘法运算需要9个指令周期 为此 专门设置了部分积产生指令 ppgen 在程序中连续执行10条ppgen指令即可以实现两个16 Bit操作数的乘法操作 最后一条ppgen指令实际功能是将此前产生的部分积结果存入乘积目的寄存器组 4 4二进制乘法器 Multiplier 浮点数乘法器 浮点数乘法的运算规则 两个浮点数相乘 其乘积的阶码为相乘两操作数的阶码之和 其尾数尾相乘两操作数的尾数的乘积 4 5通信电路设计 数字复用技术 利用同一信道 传送多路互相独立的信号 方法 频分 时分 码分 光分等 时分复用技术 TDM 将传输时间划分为若干个互不重迭的时隙 简称路时隙 互相独立的多路信号顺序地占用各自的时隙 合成一个复合信号 在一条信道中传输 在接收端按同样的规律把它们分开 对应地送给不同的用户 频分复用 FDM 和时分复用 TDM 原理 FDMA frequency 4users Example TDMA frequency time time 4 5通信电路设计 数字复用技术 TDM复接系统构成 数字复接系统由数字复接器和数字分接器组成 数字复接器是把两个或两个以上的支路 低次群 按时分复用方式合并成一个单一的高次群数字信号设备 它由定时 码速调整和复接单元等组成 数字分接器的功能是把已合路的高次群数字信号 分解成原来的低次群数字信号 它由帧同步 定时 数字分接和码速恢复等单元组成 定时单元给设备提供一个统一的基准时钟 码速调整单元是把速率不同的各支路信号 调整成与复接设备定时完全同步的数字信号 以便由复接单元把各个支路信号复接成一个数字流 另外在复接时还需要插入帧同步信号 以便接收端正确接收各支路信号 分接设备的定时单元是由接收信号中提取时钟 并分送给各支路进行分接用 4 5通信电路设计 数字复用技术 TDM复接系统构成 接收端 分接端 1 旋转开关描述时分作用 轮流接通第一到第K路信号 2 旋转开关每旋转一周 完成一次时隙分配 一周时间称为一帧 每接通一路 就是每一帧取一次样 3 一帧时间就是信号的取样周期TS 发送端 复接端 1 正确解码和分路 2 保证收发定时系统之间有正确的频率和相位关系 因此收端必须有一套同步装置 比特 路定时 帧同步 3 发端发送的码流中应包含帧同步码 供收定时参考 确认一帧的开头 系统同步的方法有两种 即同步复接和异步复接 同步复接是用一个高稳定的主时钟来控制被复接的几个低次群 使这几个低次群的码速统一在主时钟的频率上 这样就达到系统同步的目的 这种同步方法的缺点是主时钟一旦出现故障 相关的通信系统将全部中断 它只限于在局部区域内使用 异步复接是各低次群使用各自的时钟 这样 各低次群的时钟速率就不一定相等 因而在复接时先要进行码速调整 使各低次群同步后再复接 不论同步复接或异步复接 都需要码速变换 虽然同步复接时各低次群的数码率完全一致 但复接后的码序列中还要加入帧同步码 对端告警码等码元 这样数码率就要增加 因此需要码速变换 4 5通信电路设计 关键单元电路 RAM RAM的基本组成结构 RAM一般由地址译码器 存储矩阵 读 写控制逻辑和三态双向缓冲电路等部分组成 其结构图如下 4 5通信电路设计 关键单元电路 RAM RAM的基本组成结构 由于RAM存储矩阵的单元数极多 为了便于电路实现 其地址译码电路一般均采用行 列双译码结构 在两者的共同作用下 选中特定的存储单元 这样做的好处在于译码电路易于设计实现 用于选择存储单元的信号线数目少 4 5通信电路设计 关键单元电路 RAM 静态RAM的基本存储单元 静态基本存储单元的实际上是一个双稳态触发器 4 5通信电路设计 关键单元电路 RAM 静态RAM的基本存储单元 电路说明 M1与M5 M2与M6构成两个CMOS反向器 两个反向器交叉耦合连接 构成R S触发器 M3与M4为数据传输管 将反向器的输出与位线相联接 M7与M8为位线控制管 控制数据的输入 输出 M5与M6为负载管 由PMOS管构成 4 5通信电路设计 关键单元电路 RAM 工作原理 写入操作 将数据置于数据线D 数据置于D上 然后使字线WORD和列控制线LINE变为有效 使两个传输管M3 M4和两个列控制管M7 M8均导通 数据就通过列控制管M7 M8传送到两根位线 BIT与BIT 上并经由传输管M3 M4锁存至M1和M2管的Q和Q端 静态RAM的基本存储单元 读出操作 将位线BIT和BIT进行预充电 全部预充至高电平 然后将字线WORD变为有效 这样一来 位线BIT或BIT将通过连接在位线与字线之间的列控制管M7和M8放电 数据即输出到数据端D和D 4 5通信电路设计 关键单元电路 RAM 典型异步SRAM介绍 IDT71V256SA 32Kx8 Bit 电路结构框图 4 5通信电路设计 关键单元电路 RAM 典型异步SRAM介绍 IDT71V256SA 32Kx8 Bit 数据写入操作时序 典型异步SRAM介绍 IDT71V256SA 32Kx8 Bit 数据读出操作时序 4 5通信电路设计 关键单元电路 RAM 4 5通信电路设计 关键单元电路 实现FIFO的器件DPRAM 双端口存储器对同一个数据存储体分成左右两个读写控制和数据端口同时进行数据的存取操作 两个端口同时进行读写操作时的限制 不能同时对同一地址的存储单元进行操作 4 5通信电路设计 关键单元电路 实现FIFO的器件DPRAM DPRAM在通信电路中的典型应用 数字交换 用DPRAM来实现分组数据交换 写入DPRAM左端口的数据时隙有固定的地址 从DPRAM右端口读出数据的地址是需要交换的目的地址 数据交换的方式及交换的地址通过专门的通道 交换信令获得 4 5通信电路设计 FIFO 先进 先出存储器 的电路构成 FIFO左 右端口地址产生及存取控制电路 FIFO 读空 溢出 判别电路 FIFO读 写地址差计算电路 FIFO 先进 先出存储器 在通信电路中的主要应用 协调 调整系统中两种数据时钟的频率和相位差 典型应用 码速率调整电路 IPoverSDH FIFO 先进 先出存储器 电路设计的关键 FIFO写入数据或读出数据的控制方式 FIFO应用于通信电路中时 除非有极端情况发生 决不允许其在工作过程中有 读空 和 溢出 的现象发生 4 5通信电路设计 通信协议 CommunicationProtocol 开放系统互连协议 OSI 7层协议栈 4 5通信电路设计 通信协议 CommunicationProtocol DataLinkLayer TheDataLinklayeristaskedtoestablishandmaintainpoint to pointWideAreaNetwork WAN links Eachdatalinkisactuallytwo andonlytwo entitiescommunicatingatanyonetimethroughaphysicalport Twobasictypesofdatalinkprotocols Master SlaveinteractioncalledNormalResponseMode NRM alsoknownasUnbalanced PeertoPeerrelationshipcalledAsynchronousBalancedMode 4 5通信电路设计 通信协议 CommunicationProtocol Twobasictypesofdatalinkprotocols 4 5通信电路设计 通信协议 HDLC WhatisHDLC 4 5通信电路设计 通信协议 HDLC 4 5通信电路设计 通信协议 HDLC 4 5通信电路设计 通信协议 HDLC 4 5通信电路设计 通信协议 HDLC 4 5通信电路设计 通信协议 HDLC 4 5通信电路设计 通信协议 HDLC 4 5通信电路设计 通信协议 HDLC 4 5通信电路设计 通信协议 HDLC 4 5通信电路设计 通信协议 LAPS 802 3EthernetoverSDH SONETProtocol ITU TX 86 4 5通信电路设计 通信协议 LAPS 注 若在LAPS传输过程中需要进行速率适配 发送端通过在数据帧中发送序列 0 x7d 0 xdd 增加速率适配8位组 0 xdd 该操作在透明处理之后 添加结束标志之前进行 在接收方向 接收端在LAPS帧中检测到序列 0 x7e 0 xdd 时 移去速率适配字节 0 xdd 该操作在透明性处理之前 检测到结束标志之后进行 4 5通信电路设计 通信协议 LAPS 4 5通信电路设计 通信协议 LAPS发送处理 通过MII或GMII从MAC或GMAC处接受MAC GMAC数据帧 检测SFD 帧起始定界符 同步至SDH时钟 增加LAPS帧起始标志 0 x7e 增加服务访问点标示 SAPI 控制与地址字段至LAPS帧中 对地址 控制 SAPI和LAPS信息字段 协议途中阴影字段 运算产生FCS 帧循环冗余校验字段 在LAPS帧中进行透明性处理或8位组填充 0 x7e 0 x7d 0 x5e0 x7d 0 x7d 0 x5d若果需要 通过发送序列 0 x7d 0 xdd 在LAPS帧中增加速率适配8位组 0 xdd LAPS帧添加结束标志 0 x7e 增加帧间隙 IFG 填充8位组 0 x7e 在发送到SDH净负荷之前 对所有8位组进行扰码 4 5通信电路设计 通信协议 LAPS接收处理 在处理前 对接收到的所有8位组进行解扰码处理 移除IFG 帧间填充 8位组 0 x7e 检测LAPS帧的起始标志 0 x7e 若检测到序列 0 x7d 0 xdd 时 移去LAPS帧中的速率适配8位组 0 xdd 对LAPS中数据进行透明性处理 移去填充8位组 0 x7d 0 x5e 0 x7e0 x7d 0 x5d 0 x7d检查地址 控制和SAPI字段的有效性 执行FCS 帧循环冗余效验字段 生成和校验 检测LAPS帧结束标志 0 x7e 使MAC帧与MIIRx CLK同步 增加前导码序列和帧起始定界符 SFD 通过MII GMII发送到MAC GMAC中 4 5通信电路设计 通信协议 LAPS处理 CRC校验 常用CRC校验的生成多项式 4 5通信电路设计 通信协议 LAPS处理 CRC校验 CRC 32校验电路 4 5通信电路设计 通信协议 LAPS处理 扰码 解扰码 扰码的作用 扰码就是作有规律随机化处理后的信码 减少传输线路中长连 0 或长连 1 长度 保证接收机能提取到定时时钟信号 使加扰后的信号频谱更能适合基带传输 保密通信需要 LAPS协议采用 X 43 1自同步扰码 解扰码 4 5通信电路设计 通信协议 LAPS处理 扰码 解扰码 4 6VerilogHDL简介 4 7ASIC电路的设计特点 CMOS基本单元 基本单元的分类 布尔单元 包括各种逻辑门电路 开关单元 传输门 输出驱动不能过大 否则会有 电荷共享 现象 多路选择器 三态缓冲器 最好采用反向缓冲器驱动传输门的电路结构 存储单元 边缘敏感触发器 ASIC设计中一般只使用D触发器 控制单元 译码器和比较器 译码器和比较器构成ASIC电路中的基本控制元件 其输出很容易产生假信号和毛刺 使用时必须非常小心 数据调整单元 加法器 乘法器 桶形移位器和编码器 其输出必须经过触发器的采样后才能使用 4 7ASIC电路的设计特点 信号的分类 同步电路中所有的信号分成以下三种 时钟 控制信号和数据 时钟的缓冲 树形缓冲 负载平衡以提高上升速度和减小时钟 歪斜 Skew ASIC设计中不宜采用的电路 倍频器 用延迟线和 异或门 运算后产生倍频的窄脉冲 延迟线 该结构对工艺过程的变化极为敏感 单稳态触发器 无法保持定时关系 RS触发器 在R 0 S 0时 输出状态不稳定 触发器为异步工作 对输入端上的信号毛刺很敏感 JK触发器 占用面积比D触发器大 存在模糊的电路状态 4 7ASIC电路的设计特点 ASIC设计中不宜采用的电路 隐含触发器 组合电路在设计中若存在反馈回路就会形成隐含触发器 将会产生类似于RS触发器的各种问题 错误使用控制元件 译码器输出接触发器时钟或异步置位 复位端 译码器输出的毛刺会造成触发器状态错误地改变 译码器的输出应控制触发器的使能端或接至同步置位 复7位端 用触发器的输出作为另一触发器的时钟 使用上升和下降两种边缘的时钟 使可用的时钟周期减半 相当于将时钟频率提高一倍 异步清除 会产生短复位脉冲 4 7ASIC电路的设计特点 同步设计技术 ASIC的时序电路设计均采用同步设计技术 而且需要按照一套互相协调的设计原则 保证构成完全同步的系统 同步的定义 每个边沿敏感部件 触发器 锁存器 FIFO等 的时钟输入都来至同一个时钟的相同边沿 所有存贮元件 包括计数器 都是边沿敏感的 在系统中没有电平敏感存贮元件 基本的同步电路单元 边缘敏感D触发器 限制条件 建立和保持时间 最小时钟宽度 4 7ASIC电路的设计特点 同步设计技术 同步状态机 Moore和Mealy两种类型 MooreStateMachine MooreMachineOutputsarefunctionsolelyofthecurrentstateOutputschangesynchronouslywithstatechanges PresentStateRegister NextStatefunction Outputfunction Inputs PresentState NextState Outputs clock reset 4 7ASIC电路的设计特点 同步设计技术 同步状态机 Moore和Mealy两种类型 MealyStateMachine MealyMachineOutputsdependonstateANDinputsInputchangecausesanimmediateoutputchangeAsynchronousoutputs NextStatefunction Outputfunction Inputs PresentState NextState Outputs PresentStateRegister clock reset 4 7ASIC电路的设计特点 同步状态机 Moore和Mealy两种类型 MooreMachineOutputsarefunctionsolelyofthecurrentstateOutputschangesynchronouslywithstatechanges MealyMachineOutputsdependonstateANDinputsInputchangecausesanimmediateoutputchangeAsynchronousoutputs 4 7ASIC电路的设计特点 同步设计技术 同步状态机的设计 由状态产生器和状态译码器组成 状态的产生 一般均由同步二进制计数器 SBC 产生 电路的全部控制状态全都由SBC译码而来 状态的执行 状态的无条件执行 通常用单状态译码器完成状态的无条件执行 该译码器直接连接在状态计数器SBC上 状态的有条件执行 对电路的内部状态 电路中一项或几项数据之值以及原始的输入数据进行比较 可以有条件地改变电路的控制流程 注 为了实现电路内部的控制 计数器受其同步复位输入和计数允许控制 触发器受其时钟允许控制 4 7ASIC电路的设计特点 同步设计技术 一种特殊的状态产生器 伪随机序列产生器 最大线性移位寄存器 ASIC电路的设计特点 要点中的要点 ASIC FPGA 的设计 无论是采用原理图输入方式还是HDL编程方式进行 其本质上是硬件电路的设计 与软件编程有着本质的不同 硬件电路设计需要综合考虑信号的并发行及相关时序关系 在设计时头脑中必须先要有电路的具体实现结构 然后再用HDL的语句将其描述出来 4 8片上系统 SoC 的设计 片上系统 SoC 的概念 Soc SystemonaChip 按照字面上的意思就是将能够实现特定功能的复杂电子系统全部集成在同一片IC芯片上 集成在芯片上的电子系统是各个功能模块及相关子系统的集合 它们包括微处理器 数字信号处理机模块 存储器模块 数字电路 模拟电路子系统 接口电路 人机交互子系统等 所有这些模块和子系统通过片内数据 信号总线连接在一起 并在嵌入式操作系统及各类应用软件的控制下协调工作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论