2017-03-12 57 views
0

你好,我是編程界的新手。我有一個針對我的ece 171課程的項目,我一直試圖找出自己的東西,但不能。我之前有一個項目,我需要設計一個成功設計的2比特比較器。現在我應該採用這個2位比較器並對其進行修改,以及編寫更多的verilog代碼,這些代碼將使用我的擴展2位程序對比8位。我的問題是,我不知道從哪裏開始。我的教授說,總是從黑盒子開始,然後是真理表。我最初的直覺是創建一個我知道錯誤的16位真值表。但我甚至不知道從哪裏開始?有什麼建議麼?我覺得如果我能夠看到路徑開始的地方,它會開始向我走來。 我的2位比較代碼如下。2位比較器的Verilog 8位比較器從哪裏開始?

//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

爲什麼不簡單定義比較'[7:6],[5:4],[3:2],[1:0]位的4個2位比較器並使用'GT的邏輯','EQU'和'LT'信號? – Qiu

回答

0

你應該用你的2位比較來比較對位[7:6],[5,4],... 讓我們開始用EQU輸出 - 這是最簡單的。如果所有的雙對相等,A和B將是相等的。所以邏輯很簡單。 請注意,如果最高位(GT_76 == 1)或最高位相等(EQU_76 == 1)並且下一對會更大(GT_54 = 1)等,A會更大。 最後A會如果不是更大和不相等,則更小。