Vector 我想在开始之前将向量转换为整数

Vector 我想在开始之前将向量转换为整数,vector,integer,vhdl,type-conversion,Vector,Integer,Vhdl,Type Conversion,这是我的代码,上面写的是荷兰语,但没什么大不了的 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity up_down_teller is port ( maxc_vector : in std_logic_vector(6 downto 0); -- "maximum count" : maximale telwaarde (decimaal) = aantal pos

这是我的代码,上面写的是荷兰语,但没什么大不了的

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity up_down_teller is
    port ( maxc_vector    :    in std_logic_vector(6 downto 0);  -- "maximum count" : maximale telwaarde (decimaal)   = aantal posities - 1
           minc_vector    :    in std_logic_vector(6 downto 0);
           enable         :    in  std_logic;
           up_down        :    in  std_logic;                    -- telrichting
           clk_500ms      :    in  std_logic;                    -- systeemklok
           bcd            :    out std_logic_vector(7 downto 0); -- tellerstand
           tc             :    out std_logic                     -- tc geeft aan wanneer de maximum telwaarde bereikt is (voor cascade)
         );                                                       
end up_down_teller;

    architecture Behavioral of up_down_teller is
    signal maxc_int : integer range 0 to 99;
    signal minc_int : integer range 0 to 99;

    maxc_int <= to_integer(signed(maxc_vector));
    minc_int <= to_integer(signed(minc_vector));

    -- berekening maximumwaarden voor eenheden (Emax) en tientallen (Tmaxà    
    constant Emax             :     integer     := maxc_int mod 10;            -- rest na deling mc door 10 levert maximumwaarde voor eenheden                 
    constant Tmax             :     integer     := (maxc_int - Emax)/10;    -- mc verminderd met Emax levert veelvoud van 10. Delen door 10 levert het     maximumcijfer voor de tientallen.    

    -- berekening minimumwaarden voor eenheden (Emin) en tientallen (Tmin)
    constant Emin             :     integer     := minc_int mod 10;            -- rest na deling mc door 10 levert minimumwaarde voor eenheden                 
    constant Tmin             :     integer     := (minc_int - Emin)/10;    -- minc_int verminderd met Emin levert veelvoud van 10. Delen door 10 levert het     minimumcijfer voor de tientallen.    

    -- declaratie interne signalen
    signal sEcnt_i         :     integer range 0 to 9;                        -- declaratie een terugleesbaar signaal voor het tellen van de eenheden
    signal sTcnt_i         :     integer range 0 to 9;                        -- declaratie een terugleesbaar signaal voor het tellen van de tientallen

BEGIN
tellerproces : process (clk_500ms)
.
.
.
What follows is less important.
ieee库;
使用ieee.std_logic_1164.all;
使用ieee.numeric_std.all;
实体向上\向下\出纳员是
端口(maxc_向量:标准逻辑向量(6到0);-“最大计数”:maximale telwaarde(decimaal)=A端口位置-1
minc_向量:标准逻辑_向量(6到0);
启用:在std_逻辑中;
上下:在标准逻辑中--telrichting
clk_500ms:标准逻辑中--systeemklok
bcd:out标准逻辑向量(7到0);--tellerstand
tc:输出标准逻辑——tc geeft aan wanneer de maximum telwaarde bereikt is(voor级联)
);                                                       
结束于出纳员;
上下出纳员的架构是
信号maxc_int:整数范围0至99;
信号最小值:0到99的整数范围;

maxc_int必须将
maxc_int
minc_int
定义为泛型或常量才能执行此操作。如果将它们作为信号,则它们可以在运行时更改,并且不能在运行时更改信号的大小

具有泛型的实体可以如下所示:

entity up_down_teller is
    generic(
           maxc_vector    :    integer range 0 to 99 := 10;
           minc_vector    :    integer range 0 to 99 := 10
    );
    port ( enable         :    in  std_logic;
           up_down        :    in  std_logic;                    -- telrichting
           clk_500ms      :    in  std_logic;                    -- systeemklok
           bcd            :    out std_logic_vector(7 downto 0); -- tellerstand
           tc             :    out std_logic                     -- tc geeft aan wanneer de maximum telwaarde bereikt is (voor cascade)
         );                                                       
end up_down_teller;

我修正了你的格式,应该很快就可以看到。你能描述一下你想要完成什么吗?当前代码试图基于变量属性(例如,
maxc_向量
端口)生成一个常量值(例如,
Emax
),因此错误是由此产生的。