VHDL语言怎么写把50MHZ分频为10KHZ 而且10KHZ可以步进可调为10K-100KHZ 谢谢
发布网友
发布时间:2022-04-24 17:50
我来回答
共3个回答
热心网友
时间:2023-10-28 09:46
library就不写了。
主要是用prescaler。
现在这个程序输出10kHz。如果你要100kHz,那么就把prescaler减少到500.。
基本上是用50MHz的时钟计算,然后prescaler加法运算的速度就是50MHz。但是只有到prescaler加到一定程度的时候才触发输出信号。
下面的这段代码输出10kHzPWM信号,占空比50%。
我直接在这里写的,有错别怪我。。
entity something is
port
{
CLK_50M : in std_logic;
outputpin: out std_logic; --这个是你的输出针脚
};
end something;
-- 中间的 architechture我就不写了
process(CLK_50M)
signal prescaler : integer in range 0 to 5000 := 0;
begin
if (CLK_50M'event and CLK_50M = '1') -- trigger event on rising edge(不知道怎么翻译。。。)
if (prescaler > 4999)
prescaler <= 0;
else
if (prescaler < 2500)
outputpin <= '1'; --输出高电平
else
outputpin <= '0'; --输出端输出低电平
end if;
prescaler <= prescaler + 1
end if;
end if;
end process;
热心网友
时间:2023-10-28 09:46
写一个可变模值的计数器,模值可变就可以了。
热心网友
时间:2023-10-28 09:47
倒数第四排少了一个分号