首页 > 解决方案 > 我在 TO_INTEGER 部分出现错误,任何人都有任何想法可以替换

问题描述

    LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;
USE IEEE.NUMERIC_STD.ALL;
USE IEEE.std_logic_arith.ALL;

ENTITY mult4 IS
    PORT (
        a, b : IN std_logic_vector(3 DOWNTO 0);
        cout : OUT std_logic_vector(7 DOWNTO 0)
    );
END mult4;

ARCHITECTURE behave OF mult4 IS
    SIGNAL result : std_logic_vector(7 DOWNTO 0);
BEGIN
    arith_process : PROCESS (a, b)
        VARIABLE p : INTEGER RANGE 0 TO 255;
    
    BEGIN
        p := TO_INTEGER(TO_unsigned ('0' & a)) * TO_INTEGER(TO_unsigned ('0' & b));
        result <= TO_STDLOGICVECTOR(p, 8);
    END PROCESS arith_process;
    cout <= result;
END behave;

我仍在尝试修复 to_integer 的部分,它现在给出这些错误:错误(10327):mult4.vhd(21)处的VHDL错误:无法确定运算符“”&“”的定义 - 找到0可能的定义错误(10346):mult4.vhd(21)处的VHDL错误:正式端口或参数“SIZE”必须具有实际或默认值错误(10784):numeric_std_vhdl1993.vhd(712)处的HDL错误:请参阅对象声明“尺寸”

有谁知道如何用更简单的东西替换这部分?

标签: vhdl

解决方案


推荐阅读