Назначение поддиапазонов векторов в разных процессах - PullRequest
0 голосов
/ 18 июня 2019

Я хотел бы контролировать разные поддиапазоны векторов из разных процессов.

type t_regs is array (integer range <>) of std_logic_vector(15 downto 0);
...
signal regs    : t_regs(NUM_REGS-1 downto 0);
...

process (clk, nreset)
begin
    for i in 0 to NUM_REGS-1 loop
        if (nreset = '0') then
            regs(i)(15) <= '1';
        elsif falling_edge(clk) then
            -- set regs(i)(15)   
       end if;
    end loop;
end process;

process (clk, nreset)
begin
    for i in 0 to NUM_REGS-1 loop
        if (nreset = '0') then
            regs(i)(14 downto 10) <= (others => '0');
        elsif falling_edge(clk) then
            -- set regs(i)(14 downto 10)   
       end if;
    end loop;
end process;

-- Set other bits of regs
...

Несмотря на то, что поддиапазоны векторов, устанавливаемых в каждом процессе, не перекрываются, при моделировании этого кода значения reg не определены. Я ожидал, что каждый бит регистра будет рассматриваться как независимый триггер.

...