【发布时间】:2021-04-23 01:35:09
【问题描述】:
我有一个时钟频率为 50 MHz 的 fpga 板,我有这个功能可以将信号转换为 1 秒时钟。我想知道我应该进行哪些调整才能获得 0.1 秒而不是 1 秒的输出。
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity clk_gen is
port(
clk_50M: in std_logic;
clk_1s: out std_logic
);
end clk_gen;
architecture arch of clk_gen is
signal p_reg: unsigned(31 downto 0);
constant PHA: unsigned(31 downto 0):= x"00000056";
begin
-- ddfs for 1-sec pulse (based on 50 MHz clk)
process(clk_50M)
begin
if (clk_50M'event and clk_50M='1') then
p_reg <= p_reg + PHA;
end if;
end process;
clk_1s <= p_reg(31);
end arch;
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
你了解算法,即这段代码在做什么吗?如果是,请向我解释一下,所以我确定你会这样做。因为如果你这样做了,你应该能够自己解决这个问题,如果你不这样做,你有很多东西要学。你不能指望我们为你做你的工作。
-
我认为你的代码没有做任何事情,因为 p_reg 一直保持 (others => 'U') ...你需要的是一个频闪发生器。