Нам нужно разделить два целых числа с помощью VHDL и запустить на FPGA. Ниже приведен код, который мы написали для сложения целых чисел, и он скомпилирован в Quartus, но когда мы попытались скомпилировать код деления, он выдал ошибку:
Ошибка (10327): ошибка VHDL вdivir.vhd(25): не удается определить определение оператора / -- найдено 0 возможных определений.
когда мы ищем в Интернете, мы показываем, что есть много сообщений, в которых говорится, что целочисленное деление в VHDL не выполняется. Может ли кто-нибудь дать нам несколько советов, чтобы решить эту проблему. заранее спасибо
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_unsigned.all;
entity divider is
port
(
--clock, resetn :IN STD_LOGIC;
a : in std_logic_vector (11 downto -4);
b : in std_logic_vector (11 downto -4);
Enable_FA: in std_logic;
result : out std_logic_vector (23 downto -8)
);
end entity;
architecture behaviour of divider is
begin
process(a,b,Enable_FA)
begin
if (Enable_FA='1') then
result <= a / b;
end if;
end process;
end behaviour;
std_logic_unsigned
иnumeric_std
совместимы, если нет перекрытия типов или функций. Обычно конфликт возникает из-заstd_logic_arith
иnumeric_std
, где оба пакета определяют типыsigned
иunsigned
. - person Tricky   schedule 07.04.2021std_logic_unsigned
и своиstd_logic_arith
. - person Matthew Taylor   schedule 07.04.2021