verilog hdl的for語句問題
我想說的是i,size應該是打錯了,應該是在打“<”符號忘按Shift鍵了,因為","和“<”都是同一個鍵,并且for語句中也不能這這樣寫","除非是賦初值。
順便說下如果你for語句后加了那個分號的話,循環體是個空語句而不是bin[i]=^(gray>>1)不加“;”并且按“<”來說的話,循環體bin[i] = ^(gray>>1)展開的話就是gray右移一位然后進行縮減異或然后賦值給bin[i];看這個定義變量就知道想實現格雷碼轉二進制碼,不過這樣寫完全就實現不了這個目的,首先gray沒有用i,并且如果要實現格雷碼轉二進制碼,異或也不能用縮減異或這不是C語言。順便說下這誰寫的代碼這么短這么多錯誤的地方。
Verilog HDL 中for語句for(i=0;i<=7;i=i+1) if(A[i]) Y=Y+1這段語句主要實
前邊是定義,A定義為8位,所以循環八次。
主題是for循環語句。for(i=0;i<=7,i++){循環體語句;}這樣的循環體會執行8次(分別是i=0,i=1,····i=7的情況)它的執行流程是這樣的:首先給變量i賦初值0,然后判斷,若滿足條件i<=7(是),就執行循環體的語句,如果A[0]=1則Y=Y+1.完成后再i++,即i = i + 1; i 變成1,然后再次判斷是否滿足條件i<=7(仍是),就再執行循環體的語句,判斷A[1]=1則Y=Y+1,完成后再i++,即i 成為2, 再次判斷是否滿足條件i<=7。
直到i=8不再滿足,于是就退出循環。這樣就把A的每一位都判斷是否等于1,Y統計的是A中含1的數量。
轉載請注明出處華閱文章網 » verilogfor語句