Я ищу правильный синтаксис для создания общего пакета задержки линии с использованием дженериков и циклов в процессе. Я понимаю, что для циклов, когда они используются с generate, используются для параллельных операторов, но, безусловно, должен быть способ его создания.Создание общего пакета задержки в VHDL
Например:
entity Delay_Line is
Generic (
CLK_DELAYS : integer := 10);
Port (
CLK : in STD_LOGIC;
i_Din : in STD_LOGIC;
o_Q : out STD_LOGIC;
o_Qnot : out STD_LOGIC);
end Delay_Line;
architecture Delay_Line_arch of Delay_Line is
signal din_dly : std_logic_vector(CLK_DELAYS-1 downto 0);
begin
din_dly(0) <= i_Din;
process(CLK)
begin
if rising_edge(CLK) then
for index in 0 to CLK_DELAYS-1 generate
begin
din_dly(index+1) <= din_dly(index);
end;
end if;
end process;
o_Q <= din_dly(CLK_DELAYS);
o_Qnot <= NOT (din_dly(CLK_DELAYS));
end Delay_Line_arch;
Как правило, я бы просто добавить кучу:
din_delay(9) <= din_delay(8);
din_delay(8) <= din_delay(7);
...
в коде, но, честно говоря, я хотел бы кое-что немного больше многоразовый как пакет.
Это не ясно, что вы хотите, что отличается от того, что вы опубликовали. При этом ваш текущий код имеет 1 или 2 ошибки (о ком ваш компилятор расскажет) –