你好,我想取二进制数 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):rem_command.vhd(48)处的VHDL错误:无法确定 运算符“mod”的定义——找到 0 个可能的定义
也许我需要添加库?
如果您确实想使用“mod”和“rem”运算符: