欢迎光临散文网 会员登陆 & 注册

HDLBits (80) — 使用多路复用器实现的卡诺图

2022-03-22 21:27 作者:僚机Wingplane  | 我要投稿

本题链接:

https://hdlbits.01xz.net/wiki/Exams/ece241_2014_q3

对于下面的卡诺图,要求只使用一个4至1多路复用器和多个的2至1多路复用器的电路来实现,但是尽可能少使用多路复用器。必须使用a和b作为多路复用器选择器输入,此外不允许使用任何其他逻辑门,如下面的4对1多路复用器所示。

您只要实现了标记为top_module的部分,这样整个电路(包括4对1的多路复用器)就实现了卡诺图


(原题目要求只使用2对1的多路复用器,因为原试题还想考验使用卡诺图简化逻辑函数,以及如何只使用具有恒定输入的多路复用器合成逻辑函数。如果希望将其视为纯粹的Verilog练习,可以忽略此约束,并随意编写模块。)

题目

答案

输出波形

在逻辑代数中,卡诺图(Karnaugh map)是真值表的变形,它可以将有n个变量的逻辑函数的2的n次方个最小项组织在给定的长方形表格中,同时为相邻最小项(相邻与项)运用邻接律化简提供了直观的图形工具。但是,如果需要处理的逻辑函数的自变量较多(有五个或更多的时候,此时有些项就很难圈了),那么卡诺图的行列数将迅速增加,使图形更加复杂。

  • 如果表达式为最小项表达式,则可直接填入卡诺图

  • 如表达式不是最小项表达式,但是“与—或表达式”,可将其先化成最小项表达式,再填入卡诺图。也可直接填入。

  • 合并相邻的最小项,即根据下述原则画圈

    • 尽量画大圈,但每个圈内只能含有2的n次方(n=0,1,2,3……)个相邻项。要特别注意对边相邻性和四角相邻性。

    • 圈的个数尽量少。

    • 卡诺图中所有取值为1的方格均要被圈过,即不能漏下取值为1的最小项。

    • 在新画的包围圈中至少要含有1个未被圈过的1方格,否则该包围圈是多余的。

  • 写出化简后的表达式。每一个圈写一个最简与项,规则是,取值为l的变量用原变量表示,取值为0的变量用反变量表示,将这些变量相与。然后将所有与项进行逻辑加,即得最简与—或表达式。

在进行化简时,如果用图中真值为0的项更方便,可以用他们来处理,方法和真值取1时一样,只是结果要再做一次求反。

参考内容:

卡诺图 | 维基百科:

https://zh.m.wikipedia.org/zh-hans/%E5%8D%A1%E8%AF%BA%E5%9B%BE


HDLBits (80) — 使用多路复用器实现的卡诺图的评论 (共 条)

分享到微博请遵守国家法律