问题描述一
具有四个输入 (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。
问题解答
(1)根据题意可以画出如下卡诺图:
(2)随后进行卡诺图的化简:
最小SOP:采用圈1法,如图中蓝色和绿色实线所示,合并标1的最小项,即。
最小POS:采用圈0法,如图中红、黄、深蓝色虚线所示,合并标0的最小项,得到$L=c d+\bar{a} \bar{b} c$
通过将该逻辑表达式进行化简,可以得到。$L=c \cdot(\bar{b}+\bar{c}+d) \cdot(\bar{a}+\bar{c}+d)$
得到该卡诺图的逻辑表达式后,便可以开始编写verilog代码。
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); //sop
assign out_pos = c&(~b|~c|d)&(~a|~c|d); //pos
endmodule
问题描述二
得出下面卡诺图中显示的函数 f。
问题解答
采用圈0法,如下图所示。
合并标0的最小项,得到$\bar{L}=\overline{x_{1}} \overline{x_{3}}+\overline{x_{3}} \overline{x_{4}}+x_{1} \overline{x_{2}}+x_{1} x_{3}$将该表达式化简,可以得到:$L=\left(x_{1}+x_{3}\right) \cdot\left(x_{3}+x_{4}\right) \cdot\left(\bar{X}_ {1}+x_{2}\right) \cdot\left(\bar{X}_{1}+\bar{X}_{3}\right)$得到该卡诺图的逻辑表达式后,便可以开始编写verilog代码。
module top_module (
input [4:1] x,
output f );
assign f = (x[1]|x[3])&(x[3]|x[4])&(~x[1]|x[2])&(~x[1]|~x[3]);
endmodule
问题描述三
得出下面卡诺图中显示的函数 f。(原试题要求简化 SOP 和 POS 形式的函数。)
问题解答
最小SOP:采用圈1法,如下图所示。
合并标1的最小项,得到$L=\overline{x_{2}} \overline{x_{4}}+\bar{X}_ {1} x_{3}+x_{2} x_{3} x_{4}$
最小POS:采用圈0法,如下图所示。
合并标0的最小项,得到$\bar{L}=\overline{x_{3}} \overline{x_{4}}+x_{2} \overline{x_{3}}+x_{1} x_{2} \overline{x_{4}}+x_{1} \overline{x_{2}} x_{4}$,通过化简该逻辑表达式,可以得到:$L=\left(x_{3}+\overline{x_{4}}\right) \cdot\left(\overline{x_{2}}+x_{3}\right) \cdot\left(\overline{x_{1}}+\overline{x_{2}}+x_{4}\right) \cdot\left(\overline{x_{1}}+x_{2}+\overline{x_{4}}\right)$得到该卡诺图的逻辑表达式后,便可以开始编写verilog代码。
module top_module (
input [4:1] x,
output f
);
//assign f = (~x[2]&~x[4])|(~x[1]&x[3])|(x[2]&x[3]&x[4]); //sop
assign f = (x[3]|~x[4])&(~x[2]|x[3])&(~x[1]|~x[2]|x[4])&(~x[1]|x[2]|~x[4]); //pos
endmodule
评论 (0)