首页 > 其他分享 >用布尔表达式巧解数字电路图

用布尔表达式巧解数字电路图

时间:2024-10-10 19:50:38浏览次数:3  
标签:状态 触发器 真值表 电路图 巧解 表达式 NOR 布尔

1.前置知识

明确AND,OR,XOR,NOR,NOT运算的规则

参见:E25.【C语言】练习:修改二进制序列的指定位

这里再补充一个布尔运算符:NOR,即先进行OR运算,再进行NOT运算

如下图为其数字电路的符号

注意到在OR符号的基础上,在尾部加了一个(其实由简化而来)

附:NOR的真值表

2.R-S触发器(Reset-Set)

下面采用布尔表达式推导表格

以S = 0,R = 1为例,设B点的状态为m

解:

可得到以下布尔表达式:

1 NOR m = A
C NOR 0 = m
A = C

将上述三式合并

(1 NOR m) NOR 0 = m

m的状态有且仅有两种,可以代入验证

①m = 1

(1 NOR 1) NOR 0 = 0 NOR 0 = 1 等式成立

②m = 0

(1 NOR 0) NOR 0 = 0 NOR 0 = 1 != 0 等式不成立

因此 m = 1,Q = 0

3.边沿触发的D型触发器

边沿触发的D型触发器由两个R-S触发器+时钟组成

当数据端和时钟的状态均为0时(即处于非工作状态),且Q的输出也为0,推导D点的工作状态

解:

设D点的状态为m,可得到以下布尔表达式:

0 NOR G = E
m NOR 1 = F
F = G
D = E

将上述四式合并,可得以下两式

1.(m NOR 1) AND 0 = 0
2.[(m NOR 1) NOR 0] AND 0 = 0

由1式可推出:

由于 0 AND 0 = 0 和 1 AND 0 = 0 均成立
因此 m NOR 1= 0 或 m NOR 1 = 0
得不出任何结果

由2式可推出:

[(m NOR 1) NOR 0] AND 0 = 0

由于 0 AND 0 = 0 和 1 AND 0 = 0 均成立

因此可得:

3.(m NOR 1) NOR 0 = 0
4.(m NOR 1) NOR 0 = 1

由3式可得:

m NOR 1 = 1

查NOR真值表不存在,因此舍去

由4式可得:

m NOR 0 = 0

 查NOR真值表有唯一解,m = 1

标签:状态,触发器,真值表,电路图,巧解,表达式,NOR,布尔
From: https://blog.csdn.net/2401_85828611/article/details/142818353

相关文章

  • 常用的校验方法-正则表达式(推荐)
    转载:https://blog.csdn.net/JaveWong/article/details/1202102101、校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})......
  • 转:C# 正则表达式提取指定文本内的内容
    C#正则表达式提取指定文本内的内容_c#正则表达式提取文本-CSDN博客///<summary>///截取字符串中开始和结束字符串中间的字符串///</summary>///<paramname="source">源字符串</param>///<paramname="startStr">开始字符串</param......
  • 中缀表达式转为逆波兰表达式
    中缀表达式转为逆波兰表达式算法步骤:创建一个栈用于存储运算符。输出序列用于保存转换后的逆波兰表达式。遍历中缀表达式的每个字符:如果是操作数(单字母变量),直接加入输出序列。如果是左括号(,则压入栈中。如果是右括号),则弹出栈中的运算符并添加到输出序列,直到遇到左括......
  • 2-表达式求值
    #include<stdio.h>#include<string.h>#include<string>#include<iostream>#include<algorithm>#include<math.h>#defineeps1e-8usingnamespacestd;boolillegal;chars[10005];intcur=0,n;stringOP="+-*/^";......
  • 对UVM添加超时前的打印信息+AXI低功耗接口+process的await语句+对象当成参数+sv的单例
    对UVM添加超时前的打印信息首先获取到UVM的超时值,然后手动设定\$time的比较和while延时循环,当超出时间后,打印特殊的debug信息。$time<set_time,则进行循环。uvm_cmdline_processorclp;clp=uvm_cmdline_processor::get_inst();stringtimeout_settings[$];stringtimeout......
  • 白骑士的JavaScript教学JavaScript语法基础篇之运算符与表达式 2.2.4 逻辑运算符
            逻辑运算符是用于布尔逻辑运算的符号,它们常用于控制流程和条件判断,帮助程序员编写更复杂和更动态的条件语句。在JavaScript中,主要的逻辑运算符包括逻辑与(‘&&‘)、逻辑或(‘||‘)、逻辑非(‘!‘)以及一些其他特定场景的运算符。逻辑运算符用于将多个布尔值或表达式......
  • 白骑士的JavaScript教学JavaScript语法基础篇之运算符与表达式 2.2.5 条件运算符(三元
            条件运算符,也称为三元运算符,是JavaScript中唯一的三目运算符,它提供了一种简洁的方式来编写条件判断和赋值语句。通过使用条件运算符,你可以在一行代码中实现简单的条件判断,从而让代码更加紧凑和易读。条件运算符        条件运算符由三个部分组成:条件......
  • Python 正则表达式高级应用指南
    正则表达式是一种强大的文本模式匹配工具,在Python中,我们可以使用re模块来进行正则表达式的操作。以下是一些高级的正则表达式应用示例:复杂的模式匹配importretext="Hello,[email protected]."email_pattern=r'\b[......
  • Leetcode 10. 正则表达式匹配
    1.题目基本信息1.1.题目描述给你一个字符串s和一个字符规律p,请你来实现一个支持‘.’和‘*’的正则表达式匹配。‘.’匹配任意单个字符‘*’匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。1.2.题目地址https://leetcode.c......
  • SpringBoot 多元化配置(正则表达式,配置文件优先级)
    1.配置绑定所谓“配置绑定”就是把配置文件中的值与JavaBean中对应的属性进行绑定。通常,我们会把一些配置信息(例如,数据库配置)放在配置文件中,然后通过Java代码去读取该配置文件,并且把配置文件中指定的配置封装到JavaBean(实体类)中。SpringBoot提供了以下2种方式进行配......