VHDL: как использовать команду rem и mod в VHDL?(проблема синтаксиса) - PullRequest
0 голосов
/ 20 ноября 2018

привет. Я хочу взять двоичное число 23. И в двоичном виде это: 010111

, так что если, например, 23 mod 10, я получу 3.как сделать эту команду в VHDL?это то, что я написал до сих пор:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY rem_command IS
  GENERIC (display_resolution : INTEGER :=23;   -- counter to get to the loest ferquncy 
  display_counter: INTEGER :=8);        -- counter to get to 97KHz ferquincy 

PORT (
    CLK_IN :IN STD_LOGIC;
    PWM_LIMIT :IN STD_LOGIC_VECTOR(display_counter downto 0);
    COUNTER_VECTOR :IN  STD_LOGIC_VECTOR(display_counter downto 0);
    number_out: OUT  STD_LOGIC 
    );
END rem_command;

ARCHITECTURE testing_reminder_command  OF  rem_command  I
    signal number : std_logic_vector(5 downto 0):="010111"; -- this is 23 in binary form 
BEGIN
        process(COUNTER_VECTOR,PWM_LIMIT,CLK_IN,number)
        BEGIN
                number <= 10 MOD number;                                                
        end process;

    number_out<=number;

END testing_reminder_command ;

ошибка, которую я получаю:

Ошибка (10327): ошибка VHDL в rem_command.vhd (48): can 't определение определения оператора "" mod "" - найдено 0 возможных определений

возможно мне нужно добавить библиотеку?

1 Ответ

0 голосов
/ 20 ноября 2018

Если вы определенно хотели использовать операторы "mod" и "rem":

  • Они не определены ни в одном из используемых вами пакетов.
  • FIX: использовать ieee.numeric_std.all package
  • mod и rem не работают на std_logic_vector .Таким образом, вам нужно реализовать преобразование типов в ваших std_logic_vector сигналов
...