HDLBits刷题合集—10|HDLBits刷题合集—10 Karnaugh Map to Circuit

HDLBits刷题合集—10 Karnaugh Map to Circuit
HDLBits-73 Kmap1
Problem Statement
实现下面卡诺图所描述的电路。
HDLBits刷题合集—10|HDLBits刷题合集—10 Karnaugh Map to Circuit
文章图片

代码如下:

module top_module( input a, input b, input c, output out); //不要习惯性写成“+”,要用或(“|”) assign out = a | b | c; endmodule

HDLBits-74 Kmap2
Problem Statement
实现下面卡诺图所描述的电路。
在写代码之前,尝试简化卡诺图。试试“和之积”和“积之和”两种形式。我们不能检查是否得到了卡诺图的最简形式。但是我们可以检查简化的卡诺图是否相等,还可以检查是否可以将卡诺图转换成电路。
HDLBits刷题合集—10|HDLBits刷题合集—10 Karnaugh Map to Circuit
文章图片

代码如下:
module top_module( input a, input b, input c, input d, output out); //sum-of-products assign out = ~b&~c | ~a&~d | b&c&d | a&c&d; //product-of-sums //assign out = (~b|c|~d) & (~a|~b|c) & (~a|~c|d) & (a|b|~c|~d); endmodule

HDLBits-75 Kmap3
Problem Statement
实现下面卡诺图所描述的电路。
HDLBits刷题合集—10|HDLBits刷题合集—10 Karnaugh Map to Circuit
文章图片

代码如下:
module top_module( input a, input b, input c, input d, output out); //sum-of-products assign out = a | ~b&c; //product-of-sums //assign out = (a|~b) & (a|c); endmodule

HDLBits-76 Kmap4
Problem Statement
实现下面卡诺图所描述的电路。
HDLBits刷题合集—10|HDLBits刷题合集—10 Karnaugh Map to Circuit
文章图片

代码如下:
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 | ~a&b&c&d | a&~b&c&d | ~a&~b&c&~d |a&b&c&~d; endmodule

HDLBits-77 Exams/ece241 2013 q2
Problem Statement
有四个输((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。
确认输出out_sop为最简的积之和形式,输出out_pos为最简的和之积形式。
代码如下:
module top_module ( input a, input b, input c, input d, output out_sop, output out_pos ); assign out_sop = c&d | ~a&~b&c; assign out_pos = (a | c) & (c | ~d) & (~a | d) & (~b | d); endmodule

HDLBits-78 Exams/m2014 q3
Problem Statement
实现下面卡诺图所描述的电路。其中d为无关项。
HDLBits刷题合集—10|HDLBits刷题合集—10 Karnaugh Map to Circuit
文章图片

代码如下:
module top_module ( input [4:1] x, output f ); //sum-of-products //assign f = ~x[1]&x[3] | x[2]&x[4]; //product-of-sums assign f = (x[3] | x[4]) & (x[2] | x[3]) &(~x[1] | x[4]); endmodule

HDLBits-79 Exams/2012 q1g
Problem Statement
实现下面卡诺图所描述的电路。
HDLBits刷题合集—10|HDLBits刷题合集—10 Karnaugh Map to Circuit
文章图片

代码如下:
module top_module ( input [4:1] x, output f ); //sum-of-products //assign f = ~x[2]&~x[4] | ~x[1]&x[3] | x[2]&x[3]&x[4]; //product-of-sums assign f = (x[3]|~x[4]) & (~x[2]|x[3]) & (~x[1]|x[2]|~x[4]) & (~x[1]|~x[2]|x[4]); endmodule

HDLBits-80 Exams/ece241 2014 q3
Problem Statement
对于下面的卡诺图,使用一个4选1多路选择器和尽可能多的2选1多路选择器实现电路,但是尽量少用(这里应该指2选1多路选择器)。不允许使用任何其他逻辑门,必须使用a和b作为多路选择器输入,如下面的4选1多路选择器所示。
HDLBits刷题合集—10|HDLBits刷题合集—10 Karnaugh Map to Circuit
文章图片

HDLBits刷题合集—10|HDLBits刷题合集—10 Karnaugh Map to Circuit
文章图片

代码如下:
module top_module ( input c, input d, output [3:0] mux_in ); assign mux_in = {c&d, ~d, 1'b0, c|d}; endmodule

【HDLBits刷题合集—10|HDLBits刷题合集—10 Karnaugh Map to Circuit】Note
新手一枚,主要分享博客,记录学习过程,后期参考大佬代码或思想会一一列出。欢迎大家批评指正!

    推荐阅读