問題是我想使用這個sll
命令,但得到這個錯誤(在圖中)。我知道我在使用sll時出現錯誤
bp := bp(0 to 6) & '0';
聲明,但我仍然想使用這個sll。誰能幫忙?
錯誤行: 從上次
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std;
entity mul is
port(
a, b : in std_logic_vector(0 to 3);
c : out std_logic_vector(0 to 7));
end mul;
architecture mul of mul is
begin
process(a, b)
variable bp, p : std_logic_vector(0 to 7);
begin
bp := "0000"&b;
p := "00000000";
for k in 0 to 3 loop
if a(k) = '1' then
p := p + bp;
end if;
bp := bp sll 1;
end loop;
c <= p;
end process;
end mul;
什麼'圖片'祈禱告訴? – user1155120
您收到的錯誤在這裏沒有證據。如果您有權訪問-2008兼容的VHDL工具,則使用包含IEEE軟件包numeric_std_unsigned的use子句替代包含Synopsys軟件包std_logic_arith和IEEE軟件包numeric_std的使用子句將允許您的代碼進行分析,詳細說明和模擬(不對其準確性進行評論)。包numeric_std_unsigned允許您將std_logic_vector對象視爲未簽名。 – user1155120
[將n位的std \ _logic \ _vector左移或右移]的可能重複(http://stackoverflow.com/questions/9018087/shift-a-std-logic-vector-of-n-bit-to rightright或left) –