(9)HDLBits-Circuits-Combinational Logic-Karnaugh Map to Circuit

Kmap1

一、题目要求
构建一下卡诺图所示的电路,Try both product-of-sums and sum-of-products forms,用最大项和最小项表示。

在这里插入图片描述

二、分析
根据数电知识化简卡诺图,得到下图,这里采用最小项。
在这里插入图片描述
知道输出跟输入abc的关系为,输出是三个输入的或,即“|”。组合电路赋值语句使用assign即可。代码如下

module top_module(
	input a,
	input b,
	input c,
	output out  ); 

	assign out = a | b |c;

endmodule

三、仿真图

在这里插入图片描述

Kmap2

一、题目要求
构建下列卡诺图所示的组合电路,Try both product-of-sums and sum-of-products forms,用最大项和最小项表示。

在这里插入图片描述

二、分析
根据数电知识化简卡诺图,得到下图,这里采用最小项。
在这里插入图片描述
将上图的逻辑表达式转化为verilog语句,得到以下代码

module top_module(
	input a,
	input b,
	input c,
	input d,
	output out  ); 

	assign out = ((~a)&b&(~d)) | (b&c&d)|(a&~(b)&d) | (a&(~b)&(~c)) |((~a)&(~b)&(~d))|((~a)&(~b)&(~c));

endmodule

三、仿真图

在这里插入图片描述

Kmap3

一、题目要求
构建下列卡诺图所示的电路,d表示无关项。Try both product-of-sums and sum-of-products forms,用最大项和最小项表示。
在这里插入图片描述

二、分析

根据数电知识化简卡诺图,得到下图,这里采用最小项(注意原题目卡诺图顺序不对,需要调整)

在这里插入图片描述
根据上述表达式得到下列verilog代码

module top_module(
	input a,
	input b,
	input c,
	input d,
	output out  ); 

	assign out = a | ((~b)&c);

endmodule

三、仿真图

在这里插入图片描述

Kmap4

一、题目要求
构建下列卡诺图所示的电路,用最大项或者最小项均可,这里采用最小项。
在这里插入图片描述

二、分析
根据数电知识化简卡诺图,得到下图

在这里插入图片描述

根据上述逻辑表达式得到verilog语句如下

module top_module(
	input a,
	input b,
	input c,
	input d,
	output out  ); 

	assign out = (a^b)&(~c)&(~d) | (~(a^b))&(~c)&d | (a^b)&c&d | (~(a^b))&c&(~d);

endmodule

三、仿真图

Exams/ece241 2013 q2

一、题目要求

有四个输入(a,b,c,d)的单输出数字系统,当输入上出现2、7或15时,生成逻辑-1;当输入上出现0、1、4、5、6、9、10、13或14时,生成逻辑-0。在这个系统中,数字3、8、11和12的输入条件永远不会出现。例如,7对应a、b、c、d分别设为0、1、1、1。

确定最小SOP形式的输出out_sop和最小POS形式的输出out_pos。

POS:product-of-sums,数电中的最大项
SOP:sum-of-products forms,数电中的最小项

二、分析
注意,数字3、8、11和12的输入条件永远不会出现,表示无关项的意思,这里用“×”号表示。

画出卡诺图如下

SOP(最小项)形式如下

在这里插入图片描述
POS(最大项)形式如下

在这里插入图片描述
将上述表达式化为verilog语句如下

module top_module (
	input a,
	input b,
	input c,
	input d,
	output out_sop,
	output out_pos
); 

	assign out_pos=c&((~a)|b)&(d|(~b));
	assign out_sop=(c&d)|((~a)&(~b)&c);

endmodule

三、仿真图

出现下图表示仿真成功

在这里插入图片描述

Exams/m2014 q3

一、题目要求
构建下列卡诺图所示的电路,其中,d表示无关项
在这里插入图片描述

二、分析

根据数电知识画出下列卡诺图

在这里插入图片描述

将上述逻辑表达式化为verilog语句,代码如下

module top_module (
	input [4:1] x, 
	output f );

	assign f = ((~x[1])&x[3]) | (x[2]&x[4]);

endmodule

三、仿真图

出现下图表示仿真成功

在这里插入图片描述

Exams/2012 q1g

一、题目要求
构建下列卡诺图所示的逻辑电路。
在这里插入图片描述

二、分析
根据数电知识画出卡诺图如下

在这里插入图片描述

根据上述表达式转化为verilog语句得到以下代码

module top_module (
	input [4:1] x,
	output f
); 
	assign f = ((~x[1])&x[3]) |   (  ( ~ x[2]) & ( ~x[3]) & ( ~ x[4]) ) | ( x[2]&x[3]&x[4] )| ( ( ~x[2])&x[3]&( ~x[4]));
	
endmodule

三、仿真图

出现下列图示表示仿真成功

在这里插入图片描述

Exams/ece241 2014 q3

一、题目要求
对于下面的Karnaugh图,给出使用一个4对1多路复用器和尽可能多的2对1多路复用器的电路实现,但使用的尽可能少。不允许使用任何其他逻辑门,必须使用a和b作为多路复用器选择器输入,如下面的4-to-1多路复用器所示。
在这里插入图片描述
在这里插入图片描述

二、分析

这题比较特别,下边的4选1并没有用到。这题的意思是当ab=00,01,10,11的时候,分别选择mux_in[0],mux_in[1],mux_in[2],mux_in[3]。而mux_in[i]的值和cd有关。根据卡诺图我们知道,mux_in[0]=1当cd=01,11,10,即cd是或的关系。故mux_in[0] = c | d。而mux_in[1]不管cd取什么都为零,故直接赋值mux_in[1]=1’b0。mux_in[3]=1当cd=11,为与的关系。mux_in[2]=1当cd=00,10,mux_in[2]=~ c & ~ d | c& ~d。或者是mux_in[2] = ~ d亦可。代码如下

module top_module (
	input c,
	input d,
	output [3:0] mux_in
); 
	assign mux_in[0]=c|d;
	assign mux_in[1]=1'b0;
	assign mux_in[3]=c&d;
	assign mux_in[2]=~d;

endmodule

三、仿真图

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值