Как использовать неподписанные литералы в назначениях?Неподписанные литералы в VHDL
Взгляните на этот пример:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
entity myTest is
Port (clk : in STD_LOGIC);
end myTest;
architecture Behavioral of myTest is
signal testSignal : unsigned (31 downto 0);
begin
process (clk) is
begin
if (rising_edge (clk)) then
-- this compiles fine:
testSignal <= testSignal + 1;
-- this causes an error. Why?
testSignal <= 1;
end if;
end process;
end Behavioral;
Линия:
testSignal <= 1;
приводит следующее сообщение об ошибке на Xilinx ISE:
Line 22. Type of testSignal is incompatible with type of 1.
Может кто-нибудь объяснить, почему и как это исправить?
Спасибо. Теперь имеет смысл. –
В дополнение к ответу fru1tbat вы также можете использовать прямые векторные присваивания с двоичными или шестнадцатеричными значениями, такими как 'testSignal <= x" 00023AD5 ";' или установить каждый бит в ноль, как этот 'testSignal <= (others => '0');' P.S. вы должны добавить значение инициализации к объявлению сигнала вашего счетчика :) – Paebbels