[an error occurred while processing this directive]
|
1) При использовании generate - например когда требуется из отдельных триггеров сделать сдвиговый регистр или что-то подобное:
Delay_Reg : for i in 0 to N - 1 generate
begin
DL_DFF : DFFE
port map(
d => FF_conn(i),
Clk => Clk,
clrn => '1',
prn => '1',
ena => CE,
q => FF_conn(i + 1)
);
end generate Delay_Reg;
FF_conn(0) <= DL_In;
DL_Out <= FF_conn(N);
2) Иногда так писать меньше (в случае DFFE):
process (Clk)
if rising_edge(Clk) then
if Ena = '1' then
X <= Y;
end if;
end if;
end process;
строку вида "if rising_edge(Clk) and Ena = '1' then " Quartus воспринимает некорректно
Хотя тут есть тонкий момент - возможно правильней было бы писать так : "if rising_edge(Clk) and Ena'LAST_VALUE = '1' then "
E-mail: info@telesys.ru