😘欢迎关注:👍点赞🙌收藏✍️留言
🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢支持!!!
一、课程设计目的
从可控加减法单元,先行进位电路,四位快速加法器逐步构建 16 位、32 位快速加法器。还可以设计阵列乘法器,乘法流水线,实现原码一位乘法器,补码一位乘法器、运算器等计算机组成原理教材上的核心内容。
二、课程设计内容
- 8位可控加减法电路设计
- 实验目的
掌握一位全加器的实现逻辑,掌握多位可控加减法电路的实现逻辑,熟悉 Logisim 平台基本功能,能在 logisim 中实现多位可控加减法电路。
- CLA182四位先行进位电路设计
- 实验目的
掌握快速加法器中先行进位的原理,能利用相关知识设计4位先行进位电路,并利用设计的4位先行进位电路构造4位快速加法器,能分析对应电路的时间延迟。
- 4位快速加法器设计
- 实验目的
掌握快速加法器中先行进位的原理,能利用相关知识设计4位先行进位电路,并利用设计的4位先行进位电路构造4位快速加法器,能分析对应电路的时间延迟。
- 16位快速加法器设计
- 实验目的
理解成组进位产生函数,成组进位传递函数的概念,熟悉Logisim 平台子电路的概念,能利用前述实验封装好的4位先行进位子电路以及4位快速加法器子电路构建16位、32位、64位快速加法器,并能利用相关知识分析对应电路的时间延迟,理解电路并行的概念。
- 32位快速加法器设计
- 实验目的
理解成组进位产生函数,成组进位传递函数的概念,熟悉 Logisim 平台子电路的概念,能利用前述实验封装好的4位先行进位子电路以及4位快速加法器子电路构建16位、32位、64位快速加法器,并能利用相关知识分析对应电路的时间延迟,理解电路并行的概念。
- 5位无符号阵列乘法器设计
- 实验目的
掌握阵列乘法器的实现原理,能够分析阵列乘法器的性能,能在 Logisim 中绘制阵列乘法器电路。
- 6位有符号补码阵列乘法器
- 实验目的
掌握补码阵列乘法器的实现原理。
- 乘法流水线设计
- 实验目的
掌握运算流水线基本概念,理解将复杂运算步骤细分成子过程的思想,能够实现简单的乘法运算流水线。
- 原码一位乘法器设计
- 实验目的
掌握原码一位乘法运算的基本原理,熟练掌握 Logisim 寄存器电路的使用,能在 Logisim 平台中设计实现一个 8*8位的无符号数乘法器。
- 补码一位乘法器设计
- 实验目的
掌握补码一位乘法运算的基本原理,熟练掌握 Logisim 寄存器电路的使用,能在 Logisim 平台中设计实现一个8*8 位的补码 Booth一位乘法器。
- MIPS运算器设计
- 实验目的
理解算术逻辑运算单元(ALU)的基本构成,掌握 Logisim 中各种运算组件的使用方法,熟悉多路选择器的使用,能利用前述实验完成的32位加法器、 Logisim 中的运算组件构造指定规格的 ALU 单元。
三、课程设计步骤
- 8位可控加减法电路设计
- 原理
logisim平台已经给了全加器芯片,第一个要解决的问题就是如何利用全加器进行减法运算。两个数进行减法运算可以看被减数加负的减数,因此要将y转换成(-y)补之后再进行加法运算:符号位转换成1,数值位按位取反再加1。由于减法运算时sub为1,因此可以将y的各位与sub异或,同时sub作为最低为全加器的低位进位输入,以此实现上述功能。
第二个要解决的问题是溢出的判断:两个数的加减法运算可以分为以下四种情况:正+正,正+负,负+正,负+负,而溢出仅会在正+正与负+负时有可能发生。
m表示最高数值位进位,n表示符号位进位,首先讨论一定不会发生溢出的两种情况(正+负与负+正):可以总结为10+01或10+11两种情况(高位为符号位,低位为最高数值位),可能的结果有两种:n=0,m=0和n=1,m=1。此时n异或m=0。
再讨论可能会发生溢出的两种情况。
正+正:可能的情况可以概括为01+01,01+00,00+00,其中第一种情况会发生溢出(n=0,m=1,n异或m=1),后两种情况不会发生溢出(n=0,m=0,n异或m=0).
负+负:两个负数相加结果应为负数,结果符号位应为1,当符号位为0时发生溢出,可能的情况可概括为10+10,10+11,11+11,其中前两种情况的结果符号位为0,发生溢出(n=1,m=0,n异或m=1),第三种情况符号位为1,没有发生溢出(n=1,m=1,n异或m=0)。
综合以上讨论,可以发现当符号位进位和最高位进位异或结果为1时发生溢出,异或结果为0时没有发生溢出。由此就得到了补码运算判断溢出的方法。
- 接线图
- CLA182四位先行进位电路设计
- 原理
先行进位的关键在于提前产生各位的进位输入,使得各位的加法运算能并行起来从而提高加法器运算速度。
在当机器数数位是确定的时候,我们可以用一种复制的计算算出每一位的进位,无需等待低位给出进位信号,因此出现了先行进位电路。
生成信号(Generate):Gi = Ai·Bi
传递信号(Propagate):Pi =Ai + Bi
电路逻辑表达式:
- 接线图
- 4位快速加法器设计
- 原理
4位快速加法器是一种用于对两个4位二进制数进行加法运算的电路,它能够在一个时钟周期内完成加法运算。其设计原理主要基于全加器和级联进位的思想。
将四个全加器级联连接起来,每个全加器的输入分别与相应的被加数和加数位相连,同时接收来自前一位的进位。这样可以实现4位二进制数的加法运算。
- 接线图
- 16位快速加法器设计
- 原理
和上面类似,只是把4个4位快速加法器连接起来。
- 接线图
- 32位快速加法器设计
- 原理
和上面类似,只是把8个4位快速加法器连接起来。
- 接线图
- 5位无符号阵列乘法器设计
- 原理
阵列乘法器由多个加法器和乘法器组成,其工作原理是将待乘数和乘数分别按位拆分成多个小段,在阵列乘法器中进行乘法运算和累加,并最终得出乘积。
阵列乘法器将待乘数和乘数逐位相乘,并将结果送入加法器进行累加。在每个时钟周期中,阵列乘法器会对每个乘数位进行一次部分积计算,直到所有位都完成运算。部分积计算完成后,阵列乘法器会将结果根据位数进行排序和加和,以得到最终乘积。
运算方式如下:
- 接线图
- 6位有符号补码阵列乘法器
- 原理
有符号补码的乘法可以转化成无符号的原码进行计算,在最后取出符号异或即可确认符号,然后使用之前的5位无符号阵列乘法器实现6位有符号补码阵列乘法器。
- 接线图
- 乘法流水线设计
- 原理
在6位补码阵列乘法器中利用5位阵列乘法器以及求补器等部件实现补码阵列乘法器。
运算过程分为4步
- E = Y0X + Y1X*2
- E += Y2X*4
- E += Y3X*8
- E += Y4X*16
- 注意:这其中需要使用加法器来实现,*2可以使用逻辑左移来实现。
- 接线图
- 原码一位乘法器设计
- 原理
- 乘数依次与被乘数的每一位进行相乘,然后将结果与部分积进行累加。
- 由于乘数的最低位在每次运算后不再需要,可以通过右移操作丢弃最低位。
- 在累加过程中,部分积需要向右移动一位,以实现对齐操作。
- 丢弃的最低位可以存储在乘数寄存器的最高位,这样每次右移丢弃的位数都会出现在最前面。在经过8次运算后,第一次丢弃的位恰好到达最低位位置。
- 在乘法部分,如果Yi的值为0,则结果为0;如果Yi的值为1,则结果为X。
- 可以使用数据选择器来实现乘法运算。
- 控制运算次数,在第0次运算时将Y载入乘数寄存器,在第8次运算后停止运算。
- 接线图
- 补码一位乘法器设计
- 原理
- 每次累加的结果由Yi和Yi+1的比较决定:
- 当Yi > Yi+1时,累加X的补码。
- 当Yi < Yi+1时,累加X。
- 当Yi = Yi+1时,累加0。
- 与原码一位乘法器类似,补码一位乘法器也需要对部分积和乘数进行右移操作。
- 不同之处在于补码一位乘法器多了一位Yn+1(表示乘数的最高位),因此需要将Yn+1纳入右移操作中。
- 其余的实现步骤与原码一位乘法器相同。补码一位乘法器与原码一位乘法器在累加阶段的处理方式有所不同,这是由补码表示法的特性决定的。
- 接线图
- MIPS运算器设计
- 原理
该实验是对各种运算的集成,逻辑上简单实现移位、逻辑运算,加减乘除等运算。
- 接线图
四、课程设计总结
本课程设计旨在逐步构建16位、32位快速加法器,并设计阵列乘法器、乘法流水线、原码一位乘法器、补码一位乘法器、MIPS运算器等计算机组成原理核心内容。通过Logisim平台进行电路设计,使我们能够掌握电路设计的原理和方法,并对计算机组成原理有更深入的理解。
具体的课程设计内容包括从8位可控加减法电路设计、CLA182四位先行进位电路设计、4位快速加法器设计、16位、32位快速加法器设计,到5位无符号阵列乘法器设计、6位有符号补码阵列乘法器、乘法流水线设计、原码一位乘法器设计、补码一位乘法器设计、MIPS运算器设计等。每个实验都有明确的实验目的和原理,以及相应的接线图和逻辑表达式,通过逐步实现各种电路的设计,使我们能够逐步掌握和理解计算机组成原理中的关键概念和技术。
通过这样的课程设计,使我们将能够对计算机组成原理中的加法器、乘法器、运算流水线等核心内容有深入的理解,并通过实际操作加深对理论知识的理解和掌握,为日后的学习和工作打下坚实的基础。