我对VHDL有疑问。 我正在使用FPGA驱动RGB LED矩阵。 我有两个主要实体。 DRIVER和COLLECTOR。 DRIVER用于将信号发送到LED矩阵。 COLLECTOR用于收集传入的信号(来自Android设备),并在将这些信号发送给DIRVER之前进行相应的分割。
问题是,COLLECTOR中用于驱动LED矩阵的信号生成速度比驱动程序可以接受的速度快。 如何解决在需要之前生成信号的问题?
答案 0 :(得分:0)
您的问题没有提到您是否在计时过程中运行。如果你正在使用组合逻辑(没有时钟控制),那么你就会受到路由延迟的影响,而你却陷入困境。
我将假设您正在使用时钟进程。在这种情况下,您应该尝试使用移位寄存器将您的一个信号延迟'n'个时钟周期。
-- <...usual entity/architecture preamble...>
constant CLOCK_DELAYS : natural := 10;
signal sreg : std_logic_vector(CLOCK_DELAYS - 1 downto 0);
begin -- start of RTL
process(clk)
begin
if rising_edge(clk) then
sreg <= sreg(CLOCK_DELAYS - 2 downto 0) & i_signal;
end if;
end process;
o_signal <= sreg(CLOCK_DELAYS - 1);