There's some VHDL code I'm going through for finals and came across some confusing syntax. I understand that it is because of type differences but don't really understand what's going on. I'll only post the relevant part of the code and the libraries used
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
count : IN std_logic;
SIGNAL qi : unsigned(w downto 0);
qi <= qi + ("" & count);
Basically my question is, what's ' "" & ' , does the concatenation with "" do an automatic conversion to the other type?
Thanks in advance
EDIT
Cause of the type conversion confusion here's the rest of the code
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;