您好我是编程世界的新手。我有一个关于我的ece 171课程的项目,我一直试图弄清楚但不能。我之前有一个项目,我需要设计一个2位比较器,我成功设计了它。现在我应该采用那个2位比较器并改变它,并编写一些更多的verilog代码,使用扩展的2位程序将8位相互比较。我的问题是我不知道从哪里开始。我的教授说总是从一个黑盒子开始,然后是真值表。我最初的本能是创建一个16位真值表,我知道这是错误的。但我甚至不知道从哪里开始?有什么建议?我觉得如果我能够看到路径开始的地方就会开始向我发起。 我的2位比较器代码如下。
//two 2-bit input Values Comparer Behavioral Dataflow
//Defining Module and Parameters
module BcompareA(A, B, GT, EQU, LT);
input [1:0] A;
input [1:0] B;
output GT;//when a is greater than b
output EQU;//when a is equal to b
output LT;//when a is less than b
//Boolean Output Descriptions
assign GT = A[1]&~B[1]
| A[1]&A[0]&~B[0]
| A[0]&~B[1]&~B[0]
assign EQU = ~A[1]&~A[0]&~B[1]&~B[0]
| ~A[1]&A[0]&~B[1]&B[0]
| A[1]&A[0]&B[1]&B[0]
| A[1]&~A[0]&B[1]&~B[0]
assign LT = ~A[1]&B[1]
| ~A[1]&~A[0]&B[0]
| ~A[0]&B[1]&B[0]
endmodule
答案 0 :(得分:0)
您应该使用您的2位比较器来比较位对[7:6],[5,4],... 让我们从EQU输出开始 - 这是最简单的。如果A和B的所有对都相等,则它们将是相等的。所以逻辑很简单。 请注意,如果A的最高位更大(GT_76 == 1)或最高位相等(EQU_76 == 1)且下一对更大(GT_54 = 1)等,则A会更大。 如果不是更大且不相等,那么A会更少。