logsim与二进制数原码-反码和补码的数字电路

一、logsim的简介以及下载与安装

1.logsim简介

logsim,逻辑电路模拟器(Logical Circuit Simulator),是一种计算机程序或工具,用于模拟数字电路中的逻辑运算和元件行为。这类模拟器允许工程师、电子学家和学生在计算机上设计、分析和测试数字电路,而无需实际构建物理电路。

2.logsim下载与安装

  1. 选择逻辑电路模拟器 首先,选择适合你需求的逻辑电路模拟器。一些常见的逻辑电路模拟器包括Logisim、Xilinx ISE、Cadence Virtuoso等。确定你想要使用哪个模拟器,并前往其官方网站。

  2. 前往官方网站 访问你所选择模拟器的官方网站。通常,你可以在搜索引擎中输入模拟器的名称,后跟 "download",然后点击官方网站链接。

  3. 下载模拟器 在官方网站上,查找并下载适合你的操作系统的安装程序或压缩文件。这可能是一个可执行文件、安装程序或压缩包。

  4. 安装模拟器 安装步骤会因模拟器和操作系统而异。通常,你需要双击可执行文件或运行安装程序,并按照提示完成安装过程。如果你下载的是一个压缩包,你需要解压文件并按照包含的安装说明执行相应的步骤。

  5. 注册或激活 某些模拟器可能需要注册或激活。如果有这个步骤,按照官方指南完成。

  6. 学习使用模拟器 一旦安装完毕,你可以开始学习如何使用模拟器。通常,官方网站会提供文档、教程和示例,帮助你入门。你也可以在网上查找视频教程和社区论坛,以获取更多学习资源。

二、补码的运算以及半全加器

1.补码运算

补码是一种数字表示方法,常用于计算机中进行有符号数的运算。在补码表示中,最高位(最左侧位)表示数的符号,0代表正数,1代表负数。以下是补码的运算介绍:

  1. 正数的补码表示: 正数的补码表示与其二进制表示相同。例如,十进制数5的二进制表示为0101,其补码表示也是0101。

  2. 负数的补码表示: 负数的补码表示可以通过以下步骤获得:

    • 取该数的绝对值的二进制表示。
    • 将二进制表示的每位取反,即0变成1,1变成0。
    • 将得到的结果末位加1,即进位。

    例如,十进制数-5的二进制表示为1011。按照补码规则,我们取其绝对值5的二进制表示,即0101。然后,将0101的每位取反得到1010,最后再加1,得到补码表示为1011。

  3. 补码的加法: 两个补码数的加法可以通过普通的二进制加法来完成,只需忽略最高位进位。如果有进位,则结果对应正数,如果没有进位,则结果对应负数。例如,将5(0101)和-3(1101)相加,进行二进制加法得到1110,忽略进位得到结果0110,即6。

  4. 补码的减法: 补码减法可以通过将减数的补码表示取反,然后与被减数的补码相加来完成。例如,将5(0101)减去-3(1101),将减数-3取反得到0011,然后与被减数5相加,进行二进制加法得到10000(舍弃进位),最终结果取其补码表示即为-8(1000)。

2.半加器原理及模拟电路

(1)原理介绍

       半加器(Half Adder)是数字电路中用于执行两个二进制位相加操作的基本逻辑电路。它接受两个输入位(A和B),执行二进制相加,并产生两个输出:和(Sum)和进位(Carry)。让我们更详细地了解半加器的原理和功能:

输入:

  1. A:第一个二进制位,可以是0或1。
  2. B:第二个二进制位,同样可以是0或1。

输出:

  1. Sum(S):Sum位表示A和B相加的结果的低位部分。在二进制中,Sum等于A和B的异或(XOR)运算结果,即S = A XOR B。
  2. Carry(C):Carry位表示A和B相加的结果的进位部分。在二进制中,Carry等于A和B的与(AND)运算结果,即C = A AND B。

       半加器的原理基于二进制加法规则,其中Sum位表示相加结果的低位部分,而Carry位表示是否有进位传递到下一位。半加器只考虑当前位的情况,不考虑来自更高位的进位。如果需要执行多位的二进制相加操作,可以将多个半加器级联在一起。每个半加器的Carry输出将连接到下一个半加器的输入之一,以传递进位。这种级联的结构称为全加器(Full Adder),用于处理更高位的进位。半加器真值表如下:

举个例子,如果我们使用半加器来相加二进制数1101和1010:

  1. 对于最低位,A=1,B=0,Sum输出S=1,Carry输出C=0。
  2. 对于第二位,A=0,B=1,Sum输出S=1,Carry输出C=0。
  3. 对于第三位,A=1,B=0,Sum输出S=1,Carry输出C=0。
  4. 对于最高位,A=1,B=1,Sum输出S=0,Carry输出C=1。

       最终的相加结果是10111,其中最高位的进位被丢弃,因为半加器只处理当前位的进位情况。这展示了半加器如何执行基本的二进制相加操作。半加器和全加器是构建更复杂算术运算单元(如加法器、减法器等)的基本构建块。

 (2)模拟电路

  

 3.全加器原理及模拟电路

(1)原理介绍

       全加器(Full Adder)是用于执行三个输入位(A、B和进位Cin)的二进制相加操作的逻辑电路。它能够将这三个输入位相加,并产生两个输出:和(Sum)和进位(Carry)。全加器相比于半加器,多了一个输入位,可以处理来自更高位的进位。以下是全加器的原理:

输入:

  1. A:第一个二进制位,可以是0或1。
  2. B:第二个二进制位,同样可以是0或1。
  3. Cin:来自前一位相加操作的进位信号,也可以是0或1。

输出:

  1. Sum(S):Sum位表示A、B和进位Cin的三个输入位相加的结果的低位部分。在二进制中,Sum等于A、B和Cin的异或(XOR)运算结果,即S = A XOR B XOR Cin。
  2. Carry(Cout):Carry位表示A、B和Cin的三个输入位相加的结果的进位部分。在二进制中,Carry等于A、B和Cin的多数表决(Majority Function)结果,即Cout = (A AND B) OR (B AND Cin) OR (A AND Cin)。

       全加器的原理是基于二进制加法规则,它不仅考虑了当前位的两个输入(A和B),还考虑了来自更高位的进位信号(Cin)。Sum位表示相加结果的低位部分,Carry位表示是否有进位传递到下一位。全加器真值表如下:

举个例子,如果我们使用全加器来相加二进制数1101、1010和一个进位1(Cin=1):

  1. 对于最低位,A=1,B=0,Cin=1,Sum输出S=0,Carry输出Cout=1。
  2. 对于第二位,A=0,B=1,Cin=1,Sum输出S=0,Carry输出Cout=1。
  3. 对于第三位,A=1,B=0,Cin=1,Sum输出S=0,Carry输出Cout=1。
  4. 对于最高位,A=1,B=1,Cin=1,Sum输出S=1,Carry输出Cout=1。

       最终的相加结果是11100,其中最高位的进位被保留。这展示了全加器如何执行包括进位的二进制相加操作。全加器可以通过将多个全加器级联在一起来实现多位二进制加法,其中每个全加器的进位输出连接到下一个全加器的进位输入。这样的级联结构可以用于构建更大规模的加法器和其他算术逻辑电路。半加器(Half Adder)是一种基本的数字逻辑电路,用于执行两个二进制位的相加运算。它有两个输入端(A和B)和两个输出端(Sum和Carry)。半加器的功能是将输入的两个二进制位相加,产生两个输出:和(Sum)和进位(Carry)。  

 (2)模拟电路

三、用Logsim实现一个4位二进制数的补码器电路 

1、补码原理

(1)正数与原码相同;

(2) 负数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。

2、四位二进制补码电路图

       四位二进制补码电路的设计原理可以用逻辑门和触发器来实现。补码是表示整数的一种方式,其中正数的补码与其二进制表示相同,而负数的补码可以通过取其绝对值的二进制表示,然后翻转所有位(取反),最后加1来获得。下面是一个基于逻辑门的四位二进制补码电路的原理:

这个四位二进制补码电路需要完成以下主要任务:

  1. 输入和输出:

    输入:4位二进制数,表示为 A3, A2, A1, 和 A0。                                                                   输出:4位补码,表示为 C3, C2, C1, 和 C0。
  2. 取反操作(按位求反):首先,需要对输入的每一位取反。这可以通过使用XOR门,其中一个输入连接到相应的输入位,另一个输入连接到高电平(1)来实现。这会将每一位从0变为1,或从1变为0。

  3. 加1操作:接下来,需要将1加到取反后的结果中。这可以通过使用加法器来实现,其中一个输入连接到取反后的结果,另一个输入连接到常数1。这将执行加1操作。

  4. 溢出检测:补码中的最高位(C3)表示符号位,即正数为0,负数为1。因此,需要检查是否有溢出。如果最高位进位出来,这表示有溢出,而不是有效的4位补码。你可以使用逻辑门来检查这一点,例如,如果C3和C2都为1,则表示溢出。

  5. 输出:最终,输出C3, C2, C1, 和 C0是补码的结果。

参考文献:百度百科 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值