以2分频为例,2000Hz的信号,经过2分频之后变成1000Hz,处理的过程是,设计一个循环计数器,对输入脉冲进行计数,计数规则是0-1-0-1-0-1-0??这种计数器每归零一次给出一个溢出信号。就实现了2分频。
从电路结构来看,分频器本质上是由电容器和电感线圈构成的LC滤波网络,高音通道是高通滤波器,它只让高频信号通过而阻止低频信号;低音通道正好相反,它只让低音通过而阻止高频信号。
假设你的clk就是1s周期的时钟那么10s的应该是这么写
reg
[3:0]
cnt_10
reg
clk_10s
always
@
(posedge
rst
or
posedge
clk)
begin
if
(rst)
begin
cnt_10
<=
0
clk_10s<=
0
end
else
begin
if
(cnt_10==4)
begin
cnt_10
<=
0
clk_10s<=~clk_10s
end
else
begin
cnt_10
<=
cnt_10
+1
clk_10s<=
clk_10s
end
end
60的,cnt就在29归零,同时clk_60s反向
是在半周期反向才是占空比1:1。
这是一个将1MHZ的分频1HZ的,你看下程序,改下下面的参数就是你要的了library ieee
use ieee.std_logic_1164.all
use ieee.std_logic_unsigned.all
entity fenpin is
port(clk:in std_logic
clock:out std_logic)j
end
architecture art of fenpin is
signal count:integer range 0 to 500000
signal clk_data:std_logic
begin
process(clk)
begin
if clk'event and clk='1' then
if count=500000 then-------频率多大,你可以改这个 计算公式为
count<=0 f1=2*count*f2,f1为分频前的频率
clk_data<=not clk_data f2为分频后的频率
else count<=count_1
end if
end if
clock<=clk_data
end process
end art
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)