我有一个PWM输入信号,我将其分为两部分:一个分支进入与门的输入,而另一个分支则需要延迟一个可变的4位数字(例如,“ 1001” = 9个时钟周期) ),然后转到创建我最终输出的“与”门的另一个输入。
但是,我不确定使用哪种方法或如何简洁地创建此延迟过程。
当前,我在启用输入PWM信号(几乎是门控D锁存器)之前,根据预设的整数值对时钟周期进行计数。
timebase : process(clk) --clock counter
if (clk'event and clk = '1') then
counter_enable <= '0';
if ( counter < counts-1) then --counts preset integer
count <= counter + 1;
else
counter_enable <= '1';
counter <= '0'
end if;
end if;
end process timebase;
y <= counter_enable; --enable flag
aout_en : process(counter_enable) --enabling input
begin
if (counter_enable'Event and counter_enable = '1') then
hold_out <= a; --internal signal to hold values
end if;
end process aout_en;
x <= hold_out and a; --final output
我想要的是该变量存储寄存器,以在延迟后通过PWM输入信号提供时钟;我应该根据输入的内容创建15个不同长度的不同移位寄存器吗?然后简单地通过时钟?