gpt4 book ai didi

cpu-architecture - 实现逻辑门的直觉

转载 作者:行者123 更新时间:2023-12-02 19:16:07 26 4
gpt4 key购买 nike

我被要求用半 HDL 语言实现逻辑门作为练习。问题是我对实现缺乏直觉,看不到将真值表“转变”为逻辑门的方法或算法,即使是更简单的方法或算法(如异或);如何将一个运算符“转变”为多个逻辑门的形式?到目前为止,这个练习感觉就像“尝试逻辑门的所有可能组合”,我想它不应该是这样的。

最佳答案

由于原始问题被标记为 nand2tetris我认为应该有一个不同的答案。

如果您正在处理 the bookthe coursera course ,那么您应该已经拥有可用于自行解决此问题的信息。然而,我也为此苦苦挣扎,因为这对我来说是新的,所以也许我理解你正在经历的事情并且可以提供帮助。 coursera 类(class)应该涵盖 Week 1 中 Xor 的实现。这本书在 Chapter 1 中介绍了 Xor。 。我将在这里阐述我对这本书解释的理解。

The authors have asked folks not to provide answers to the problems on the internet. However, the answer for Xor is worked through and provided by the authors in the book, you can find it on page 16. Given this, I'm going to go ahead and provide my own explanation here.

为了实现 Xor,您需要了解作者所说的以下内容:

  1. “...每个 bool 函数都可以使用至少一个称为规范表示的 bool 表达式来表示”第 9 页<
  2. “从函数的真值表开始,我们关注函数值为 1 的所有行。对于每个这样的行,我们构造一个通过将文字(变量或其否定)与一起创建的术语修复所有行输入的值。”,第 9 页
  3. “现在,如果我们将所有这些项(对于函数具有 value1 的所有行)组合在一起,我们将得到一个相当于给定真值表的 bool 表达式。”, < em>第9页
  4. “这......得出一个重要的结论:每个 bool 函数,无论多么复杂,都只能使用三个 bool 运算符来表达:And、Or 和 Not”, 第9页

因此,如果您尝试实现 bool 逻辑门(如异或),您可以通过写下其真值表,写下该真值表的规范表示,然后实现 bool 逻辑门来实现在 HDL 中使用规范表示指定的 And、Or 和 Not 门的组合。


以下是 Xor 的工作原理:

  1. 写出 Xor 的真值表:
a  b   out 
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 0
  • 写下异或真值表的规范表示:
  • (!a && b) || (a && !b)
  • 在 HDL 中实现规范表示:
  • CHIP Xor {
    IN a, b;
    OUT out;

    PARTS:
    // !a && b
    Not(in=a, out=nota);
    And(a=nota, b=b, out=lhs);
    // a && !b
    Not(in=b, out=notb);
    And(a=a, b=notb, out=rhs);

    // (!a && b) || (a && !b)
    Or(a=lhs, b=rhs, out=out);
    }

    就是这样。


    具体来说,我认为您可能需要学习自己解决这个问题的技术是如何写下真值表的规范表示。因此,尝试找出我是如何得到的从步骤 1 到步骤 2,如果您有疑问,请在此处提问。请记住,这本书和 coursera 类(class)都详细介绍了如何执行此操作,并且我引用了上面书中最相关的部分。

    我希望这能带来您正在寻找的直觉。祝你好运。

    关于cpu-architecture - 实现逻辑门的直觉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63694800/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com