Есть какой-то код VHDL, который я собираюсь пройти в финале, и наткнулся на какой-то запутанный синтаксис. Я понимаю, что это из-за различий типов, но на самом деле не понимаю, что происходит. Я только вывесить соответствующую часть кода и библиотеки использовалиVHDL, смущенный синтаксисом "" &
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
count : IN std_logic;
SIGNAL qi : unsigned(w downto 0);
qi <= qi + ("" & count);
В основном мой вопрос, что «„“&», делает конкатенацию с «» сделать автоматический преобразование в другой тип?
Заранее спасибо
EDIT
Причина путаницы преобразования типа вот остальная часть кода
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
ENTITY counter_alt IS
GENERIC (w : integer := 8);
PORT (clk, load, count : IN std_logic;
d : IN unsigned(w-1 downto 0);
q : OUT unsigned(w-1 downto 0);
co : OUT std_logic);
END counter_alt;
ARCHITECTURE bhv OF counter_alt IS
SIGNAL qi : unsigned(w downto 0);
BEGIN
PROCESS(clk)
BEGIN
IF rising_edge(clk) THEN
IF load='1' THEN
qi <= '0' & d;
ELSE qi <= qi + ("" & count);
END IF;
END IF;
END PROCESS;
q <= qi(w-1 downto 0);
co <= qi(w);
END bhv;
Вы уверены, что это все соответствующие библиотеки, или есть еще что-то вроде 'ieee.std_logic_unsigned.all'? – damage
программа компилируется и отлично работает с вышеуказанной библиотекой. – hops1