以2分频为例,2000Hz的信号,经过2分频之后变成1000Hz,处理的过程是,设计一个循环计数器,对输入脉冲进行计数,计数规则是0-1-0-1-0-1-0??这种计数器每归零一次给出一个溢出信号。就实现了2分频。
从电路结构来看,分频器本质上是由电容器和电感线圈构成的LC滤波网络,高音通道是高通滤波器,它只让高频信号通过而阻止低频信号;低音通道正好相反,它只让低音通过而阻止高频信号。
module 10clk(input clk,
output 10clk
)
reg[2:0] count
reg 10clk
always@(posedge clk)
if(count<3'b110)
count<=count+1
else
count<=3'b000
end
endmodule
没检查,大概就这么个思路,自己跑一下看看吧
LIBRARY IEEEUSE IEEE.STD_LOGIC_1164.ALL
USE IEEE.STD_LOGIC_UNSIGNED.ALLENTITY fenpq IS
PORT ( CLK : IN STD_LOGIC--输入时钟
CLK1 : OUT STD_LOGIC)--输出时钟
END fenpqARCHITECTURE behav OF fenpq IS
BEGIN
PROCESS (CLK)
VARIABLE ss,CLK11:STD_LOGIC_VECTOR(2 DOWNTO 0):="000"
BEGIN
IF CLK'EVENT AND CLK='1' THEN
IF ss="101" THEN --计数
ss:="000"CLK11:=CLK11
END IF
END IF
CLK1<=CLK11
END PROCESS
END behav
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)