我剛剛開始學習一些verilog,遇到了一個通常會在其他語言中使用for循環解決的問題。簡單的「分配」功能
s2 s1 s0 m
0 0 0 u
0 0 1 v
0 1 0 w
0 1 1 x
1 0 0 y
1 0 1 z
這是S2,S1,S0是開關,(U,V,W,X,Y,Z)是輸入及如果某些交換機被設置時,輸出(米問題的真值表)將被設置爲其中一個輸入。但是,這隻有1位寬,我們可以將每個m指定爲以下輸入之一,前提是s0,s1,s2匹配。如果它是3位寬的輸入和輸出,例如:(u0,u1,u2),(m0,m1,m2),但是每個變量仍然遵循相同的邏輯(例如:u0,u1,u2都將是輸出m0,m1,m2,條件是所有開關都是0)如何縮短我的代碼。我是否允許這樣做:
assign m[3:0] = (~s0&~s1&~s2&u[3:0])