部分分配彙總結果我想實現這樣的VHDL:(VHDL)如何在一個時鐘
a<=(b+c)/16;
我已經試過這一點,但合成沒有接受。
signal b,c : std_logic_vector(7 downto 0);
signal a : std_logic_vector(8 downto 0);
signal dummy : std_logic_vector(3 downto 0);
(a & dummy) <= ("00000" & b) + ("00000" & 'c');
然後我是用一個但它失敗了。 (操作&不能與正式的OUT相關聯。)
有什麼建議嗎? 謝謝, 傑姆
繼Martin和Brian的回答之後,強打字的目的 - 區分std_logic_vector,unsigned和signed是爲了防止在計算小於零時數學符號和無符號數的意外混合。當處理無符號數(前導零)時,您可以輸入轉換爲有罪不罰 - '(a&dummy)<= std_logic_vector(無符號(「00000」&b)+無符號(「00000」& c));'。您的代碼與某些修訂不兼容符合IEEE標準1076(<-2008),其中元素必須在合計目標中具有相同的大小(使用'sum'作爲目標,添加'a <= sum(12 downto 4);')。 – user1155120