Saya mencoba menggunakan fungsi shift_left() di proyek saya, tetapi saya mendapatkan 2 kesalahan yang tidak dapat saya jelaskan:
- Kesalahan: kesalahan ketik di dekat 'shift kiri'; tipe yang diharapkan 'std_logic_vector'
tapi temp ADALAH std_logic_vector!
- Kesalahan: tidak ditemukan entri yang layak untuk subprogram 'shift_left'
sinyal yang digunakan dalam kode didefinisikan sebagai:
signal shifted_pixel, temp : std_logic_vector(15 downto 0);
signal i_data : std_logic_vector(7 downto 0);
cuplikan di bawah ini ditulis dalam suatu proses
temp <= "00000000" & i_data;
shifted_pixel <= shift_left(temp, 5);
kode lengkap di bawah ini:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.numeric_std.ALL;
entity project is
port (
i_clk : in std_logic;
i_rst : in std_logic;
i_start : in std_logic;
i_data : in std_logic_vector(7 downto 0);
);
end project;
architecture rtl of project is
signal shifted_pixel, temp : std_logic_vector(15 downto 0);
begin
process(i_data)
begin
temp <= "00000000" & i_data;
shifted_pixel <= shift_left(temp, 5);
end process;
end rtl;
shifted_pixel <= std_logic_vector(shift_left(unsigned(temp), 5));
temp
harus bertipe unsigned untuk menggunakan SHIFT_LEFT yang berlaku dalam paket numerik_std. Nilai yang dihasilkan harus kompatibel dengan std_logic_vector untuk ditetapkan keshifted_pixel
. - person   schedule 27.03.2021