0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

组合逻辑概述

电子工程师 来源:未知 作者:李倩 2018-09-10 10:49 次阅读

组合逻辑概述

由MOS获得基本逻辑门之后,再由门级电路形成组合逻辑电路。组合逻辑电路有三种表示方法:

(a)真值表

(b)结构化(即门级)原理图

(c)布尔方程

示例:例如一个单bit全加器,实现的是两个输入信号 a,b以及进位位 c_in的相加。输出一个相加的结果sum和一个进位位c_out。

其真值表如下:

根据真值表可以直接写出其布尔方程式。

获得某个输出的积之和(多项做与然后再做或)的布尔表达式方法如下:

1. 找到输出为1的对应的输入,如果此输入为0则取反。将输入做与。

2. 将上面所有的与项再做或操作。

以上面的全加器为例。使得输出sum为1的有:

故对应sum的积之和布尔表达式如下(*表示与操作,+表示或操作, ' 表示取反):

sum = a' * b' * c_in+a' * b * c_in'+a * b' * c_in' + a * b * c_in

同样分析可以得出 c_out的积之和布尔表达式如下:

c_out = a' * b * c_in+a * b' * c_in+a * b * c_in' + a * b * c_in

根据积之和表达式就可以得出相应的积之和对应的门级电路。以与或门构成。下面是sum的积之和电路,这里由三个2输入或门实现一个四输入或门逻辑。

相应的c_out的积之和门级电路如下。

可以看到这样获得积之和布尔表达式与对应的电路都是两级的,前面一级为与门逻辑,后面一级为或门逻辑。

当然不止只有积之和这一种表达方式,还可以利用狄摩根定律去转化成和之积的表达方式。

狄摩根定律如下( " ' " 表示取反," * " 表示与, " + "表示或):

(a + b + c + ...) ' = a' * b' * c' * ...

(a * b * c * ...) ' =a' + b' + c' + ...

根据狄摩根定律第二条,就可以将积之和布尔表达式转化成和之积形式;根据狄摩根定律第一条,就可以将和之积布尔表达式转化成积之和形式。

这里以将sum的积之和布尔表达式转化成和之积形式为例。

sum = ( (a' * b' * c_in+a' * b * c_in'+a * b' * c_in' + a * b * c_in)' )'

= ( (a' * b' * c_in)' * (a' * b * c_in')' * (a * b' * c_in')' * (a * b * c_in)') '

= ( ( a+b+c_in' )*( a+b'+c_in )*( a'+b+c_in )*(a' + b' + c_in') )'

从布尔表达式可以看到,和之积表达式的的前级为或门逻辑,后一级为与门逻辑。

Verilog对组合逻辑电路的描述,可以分为结构级描述,数据流级描述,行为级描述三种方式。

以上面对sum这个电路描述为例,将sum这个电路作为一个完整的module描述,给这个电路取个名字为get_sum。

结构级描述方式如下(其中not是表示非门,and表示与门,or表示或门):

module get_sum(

input a,

input b,

input c_in,

output sum

);

wire a_n,b_n,c_in_n;

not (a_n,a);

not (b_n,b);

not (c_in_n,c_in);

wire and_o1,and_o2,and_o3,and_o4;

and (and_o1,a_n,b_n,c_in) ;

and (and_o2,a_n,b,c_in_n) ;

and (and_o3,a,b_n,c_in_n) ;

and (and_o4,a,b,c_in) ;

wire or_o1,or_o2;

or (or_o1,and_o1,and_o2);

or (or_o2,and_o3,and_o4);

or (sum,or_o1,or_o2);

endmodule

数据流级描述方式(& 与,| 或 ,~ 非):

module get_sum(

input a,

input b,

input c_in,

output sum

);

wire a_n,b_n,c_in_n;

assign a_n = ~a;

assign b_n = ~b;

assign c_in_n = ~c_in;

wire and_o1,and_o2,and_o3,and_o4;

assign and_o1 = a_n&b_n&c_in;

assign and_o2 = a_n&b&c_in_n;

assign and_o3 = a&b_n&c_in_n;

assign and_o4 = a&b&c_in;

wire or_o1,or_o2;

assign or_o1 = and_o1 | and_o2;

assign or_o2 = and_o3 | and_o4;

assign sum = or_o1 | or_o2;

endmodule

行为级描述方式(这里采用了case语句,也可以采用if else语句;{ }是位拼接符,如{a,b,c_in}就是将a,b,c_in拼成一个三位的数据,a为最高位,b为次高位,c_in为最低位):

module get_sum(

input a,

input b,

input c_in,

output reg sum

);

always @( * ) begin

case( {a,b,c_in} )

3'b001: sum = 1'b1;

3'b010: sum = 1'b1;

3'b100: sum = 1'b1;

3'b111: sum = 1'b1;

default: sum = 1'b0;

endcase

end

endmodule

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 逻辑电路
    +关注

    关注

    13

    文章

    492

    浏览量

    42555
  • Verilog
    +关注

    关注

    28

    文章

    1343

    浏览量

    109949

原文标题:组合逻辑概述与Verilog三种描述形式

文章出处:【微信号:LF-FPGA,微信公众号:小鱼FPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    soc中的组合逻辑和时序逻辑应用说明

    芯片设计是现代电子设备的重要组成部分,其中组合逻辑和时序逻辑是芯片设计中非常重要的概念。组合逻辑和时序
    的头像 发表于 08-30 09:32 1162次阅读

    【技巧分享】时序逻辑组合逻辑的区别和使用

    根据逻辑电路的不同特点,数字电路分为组合逻辑和时序逻辑,明德扬粉丝里的同学提出,无法正确区分,今天让我跟一起来学习一下两种逻辑的区别以及使用
    发表于 03-01 19:50

    基本组合逻辑电路

    基本组合逻辑电路 一、 实验目的?⒈ 掌握一般组合逻辑电路的分析和设计方法。?⒉ 熟悉集成优先编码器的逻辑功能及简单应用。
    发表于 09-24 22:14 2633次阅读

    第十五讲 组合逻辑电路的分析方法和设计方法

    第十五讲 组合逻辑电路的分析方法和设计方法 6.1概述组合逻辑电路:定义构成电路特点6.2.1组合
    发表于 03-30 16:21 4789次阅读
    第十五讲 <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路的分析方法和设计方法

    组合逻辑电路的分析与设计-逻辑代数

    组合逻辑电路的分析与设计-逻辑代数   在任何时刻,输出状态只决定于同一时刻各输入状态的组合,而与先前状态无关的逻辑电路称为
    发表于 04-07 10:07 3162次阅读
    <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路的分析与设计-<b class='flag-5'>逻辑</b>代数

    组合逻辑电路的分析

    组合逻辑电路的分析   分析组合逻辑电路的目的是为了确定已知电路的逻辑功能,其步骤大致如下:  1.由
    发表于 04-07 10:11 7735次阅读
    <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路的分析

    组合逻辑电路的设计

    组合逻辑电路的设计 组合逻辑电路的设计与分析过程相反,其步骤大致如下:  (1)根据对电路逻辑功能的要求,列出真值表;  (2)由真值表写
    发表于 04-07 10:12 1.3w次阅读
    <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路的设计

    组合逻辑电路原理概述及作用分析

    数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑电路(简称时序电路)。
    发表于 11-29 11:28 1w次阅读
    <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路原理<b class='flag-5'>概述</b>及作用分析

    组合逻辑电路分析和设计方法,常用的逻辑电路有哪些?冒险现象的概述

    根据逻辑功能的不同,可把数字电路分为组合逻辑电路(Combinational Logic Circuit)和 时序逻辑电路(Sequential Logic Circuit)两大类。
    发表于 07-20 08:00 0次下载
    <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路分析和设计方法,常用的<b class='flag-5'>逻辑</b>电路有哪些?冒险现象的<b class='flag-5'>概述</b>

    数字电路基础之组合逻辑电路的详细资料概述

    本文档的主要内容详细介绍的是数字电路基础之组合逻辑电路的详细资料概述包括了:1.组合逻辑电路的特点2.
    发表于 10-17 08:00 0次下载
    数字电路基础之<b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路的详细资料<b class='flag-5'>概述</b>

    数字电路教程之组合逻辑电路课件详细资料免费下载

    本文档的主要内容详细介绍的是数字电路教程之组合逻辑电路课件详细资料免费下载主要内容包括了:一 概述组合逻辑电路的分析和设计方法 三 若
    发表于 12-28 08:00 14次下载
    数字电路教程之<b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路课件详细资料免费下载

    什么是组合逻辑电路_组合逻辑的分类

    组合逻辑电路是无记忆数字逻辑电路,其任何时刻的输出仅取决于其输入的组合.
    的头像 发表于 06-22 10:53 4.9w次阅读
    什么是<b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路_<b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>的分类

    组合逻辑电路的学习教程课件免费下载

    本文档的主要内容详细介绍的是组合逻辑电路的学习教程课件免费下载包括了:1 数字电路概述,2 逻辑门电路,3 逻辑函数及其化简,4
    发表于 10-11 16:47 15次下载
    <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路的学习教程课件免费下载

    组合逻辑电路之与或逻辑

    逻辑电路由多个逻辑门组成且不含存储电路,对于给定的输入变量组合将产生确定的输出,则这种逻辑电路称为组合
    的头像 发表于 02-04 11:46 1498次阅读
    <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路之与或<b class='flag-5'>逻辑</b>

    组合逻辑控制器是用什么实现的

    组合逻辑控制器概述 1.1 定义 组合逻辑控制器是一种基于组合
    的头像 发表于 06-30 10:11 451次阅读