编写电路的逻辑功能

时间:2012-04-03 15:49:10

标签: architecture logic

正如我在之前的一个问题中所提到的,我对编程和计算机世界刚刚开始大学时已经很陌生。

我正在努力解决为电路编写逻辑功能的问题。

我想知道是否有人可能对这些人有逻辑功能?

http://www.flickr.com/photos/78651059@N07/7041822113/in/photostream
http://www.flickr.com/photos/78651059@N07/7041821965/in/photostream/
http://www.flickr.com/photos/78651059@N07/7041821833/in/photostream/

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

这些看起来像是非常直接的语法翻译。例如,在C中,XOR^AND&NOT~,因此您的第一个电路将以:

Y = (A & ~B) ^ C;

最大的区别在于C(像大多数普通编程语言一样)对于单个位没有任何数据类型,因此这实际上代表并行的最少8个电路副本(即,数据类型为A,B和C通常每个至少有一个字节。

我不会通过其他人,但我会注意到,在很多情况下,最简单的方法是从输出到输入,而不是从输入到输出的(可能更明显的)路径。

编辑:oops:有点忘了提及它,但在C中,OR|

编辑:为了简化事情,编写一些小函数作为逻辑门可能是最简单的(至少作为第一个):

int bitwise_and(int a, int b) {  return a & b); }
int bitwise_or(int a, int b)  {  return a | b;  }
int bitwise_not(int a)        {  return ~a;     }
int bitwise_xor(int a, int b) {  return a ^ b;  }

那么你基本上只需将逻辑图中的门转换为函数调用,例如,以A和B作为输入并将Y作为输出的OR门将变为Y = bitwise_or(a, b);

答案 1 :(得分:0)

哦,我的:)。

我在大学时常常这样做。一个好的起点是首先编写电路的布尔代数公式。刚刚开始时保持基本,不要担心减少公式,直到你写完一个完整的公式。

如果您有特定问题,或者被困在赛道的特定部分,我很乐意帮助您。找出你到底被困的地方。