Я пишу код на VHDL для синтеза на XilinX FPGA. Обычно я использую GHDL для моделирования своих тестовых стендов. Мне нужно использовать ядро разделения XilinX, чтобы разделить на переменную, однако я не уверен, как это сделать, поскольку в документации XilinX нет примеров. Должен ли я использовать программное обеспечение XilinX для создания компонента VHDL для делителя? Или XilinX неявно понимает, что делитель означает использование IP-ядра? Если мое второе утверждение верно, как мне смоделировать это с помощью GHDL или мне придется использовать инструмент моделирования XilinX? Мне действительно не помешал бы минимальный пример использования ядра делителя XilinX для реализации деления на переменную, например. что-то вроде этого:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_1164.all;
entity DividingExample is
port (
clk : in std_logic;
reset : in std_logic;
InputSignal : in std_logic_vector(15 downto 0);
OutputSignal : out std_logic_vector(15 downto 0)
);
end DividingExample;
architecture behaviour of DividingExample is
-- declarations
signal numerator : integer;
begin
-- behaviour
process(clk)
begin
if(rising_edge(clk)) then
if(reset = '1') then
-- reset values
numerator <= 1000;
else
-- calculate value to be output
OutputSignal <= numerator/to_integer(signed(InputSignal))
end if;
end if;
end process;
end behaviour;
Этот пример кода явно не работает, так как деление (оператор '/') не определено для целочисленного типа данных. Как я могу это сделать?