Я пишу указанный компонент UART в VHDL.Как я могу создать «тик» внутри процесса в VHDL?
send: process(send_start)
variable bit_index : integer range 0 to 2 := 0;
begin
if (falling_edge(send_start)) then
if (start = '0' and transceiver_start = '1') then
bit_index := 0;
end if;
transceiver_start <= '1';
if (bit_index = 0) then
temp_data <= data.RE;
bit_index := 1;
transceiver_start <= '0';
delay_counter <= 0;
elsif (bit_index = 1) then
temp_data <= data.IM;
bit_index := 2;
transceiver_start <= '0';
end if;
end if;
end process;
Падающий край transceiver_start
сигнала вызывает подкомпонент для запуска. Я хотел вызвать его дважды, но я не знаю, как создать второй задний фронт.
Я думал об использовании параллельного процесса, который в основном сбрасывал бы сигнал transceiver_start
в его приветствие после того, как delay_counter
достигнет определенного предела. Поэтому я мог бы снести его снова в процессе send
, чтобы создать падающий фронт. Тем не менее, это заставляет меня иметь два процесса возбуждения для сигнала delay_counter
, и я читал, что функции разрешения не являются хорошей практикой для синтеза (этот код необходимо синтезировать).
Есть ли способ для создания этого падающий фронт, когда bit_index = 1
?