2
我有下面的代碼,我想盡可能使它更專業,例如使用循環。VHDL簡單優化
ENTITY cc IS
PORT (s, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, y0, y1, y2, y3, y4, y5, y6, y7, y8, y9 : IN BIT;
m0, m1, m2, m3, m4, m5, m6, m7, m8, m9 : OUT BIT);
END cc;
ARCHITECTURE cc_logic OF cc IS
BEGIN
m0 <= (NOT(s) XOR x0) XNOR (s OR y0) ;
m1 <= (NOT(s) XOR x1) XNOR (s OR y1) ;
m2 <= (NOT(s) XOR x2) XNOR (s OR y2) ;
m3 <= (NOT(s) XOR x3) XNOR (s OR y3) ;
m4 <= (NOT(s) XOR x4) XNOR (s OR y4) ;
m5 <= (NOT(s) XOR x5) XNOR (s OR y5) ;
m6 <= (NOT(s) XOR x6) XNOR (s OR y6) ;
m7 <= (NOT(s) XOR x7) XNOR (s OR y7) ;
m8 <= (NOT(s) XOR x8) XNOR (s OR y8) ;
m9 <= (NOT(s) XOR x9) XNOR (s OR y9) ;
END cc_logic ;
這可能嗎?
對於模擬使用更好的精度'std_ulogic'和'std_ulogic_vector'這將有助於你找到雙驅動器的錯誤,一個解決的類型將面膜。 – Chiggs
@Chiggs:對於VHDL-2008這聽起來很合理,但是對於VHDL-2002和之前然後'std_ulogic_vector'和'std_logic_vector'是不同的。因此不兼容的類型,所以這將是不方便使用'std_ulogic_vector'與第三方模塊,以自己的模塊組合通常使用'std_logic_vector'。此外,任何雙重驅動程序都被綜合工具識別並報告爲錯誤,因此它們不會長時間不被注意。 –