微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在这种情况下索引非法?

如何解决为什么在这种情况下索引非法?

以下是在总线上发送串行数据。 COUNT 在时钟的上升沿递增。在不同的过程中,如果同步信号为高,则索引到 COUNT 是什么。为什么像 23 - COUNT 这样的索引值被标记为非法

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

 entity XYZ is
 port( reset : in std_logic;
  clock : in std_logic;
  DATA_IN : in std_logic;
  SYNC_SIG : in std_logic;
  DATA_OUT : out std_logic_vector(23 downto 0));
end XYZ;

architecture rtl of XYZ is
signal COUNT : integer range 0 to 45 := 0;

begin
COUNTER: process(RESET,CLOCK)
BEGIN
If reset = '1' then 
     COUNT <= 0;
elsif rising_edge(clock) then
     COUNT <= COUNT + 1;
     if COUNT = 45 then
       COUNT <= 0;
     end if;
end if;
end process counter;

INC: process(SYNC_SIG,COUNT)
begin
if (SYNC_SIG = '1') then
  DATA_OUT(23 - COUNT) <= DATA_IN;  
end if;
end process INC;
end rtl;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。