HDLbits刷题记录之Truthtable1
题目分析:给出了真值表,然后让写逻辑表达式。
我们可以在网上搜索将真值表化为表达式的方法,也就是先找到输出为1的那几行,然后由这几行写出表达式(利用输入相与,1取原值,0取输入的非值),再将所有的表达式加起来(利用或表达式连起来)。
由表可知,第3、4、6、8行的值为1,
表达式如下:
f = (!x1&x2&!x3) |(x1&x2&!x3) |(x1&!x2&x3)|(x1&x2&x3)
再对表达式进行化简,即可得到:
f = (x2&!x3)|(x1&x3)
如何化简呢,就是找三个里面有两个相同的,然后另外一个不同的,提出了,提出来的那个元素肯定是1,就化简了。
代码如下:
module top_module(
input x3,
input x2,
input x1, // three inputs
output f // one output
);
//assign f = (!x1&x2&!x3) |(x1&x2&!x3) |(x1&!x2&x3)|(x1&x2&x3);
assign f = (x2&!x3)|(x1&x3);
endmodule
总结:无。