vhdl吧 关注:4,583贴子:17,613
  • 1回复贴,共1

采用频率较大的750khz进行分频,为什么能以近似得到14hz,13hz和1hz的时钟频率。是怎么分的。
下面是分频代码,看不懂。
Library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
entity fenpin is
port(clk_750k:in std_logic; --系统时钟
clk_14:buffer std_logic; —14分频 缓冲
clk_13:buffer std_logic; --13分频
clk_1 : buffer std_logic); --1分频
end fenpin ;
architecture rt1 of fenpin is
signal q_14:integer range 0 to 53570; --定义中间信号量
signal q_13:integer range 0 to 57691;
signal q_1:integer range 0 to 749999;
begin
process(clk_750k)
begin
If(clk_750k' event and clk_750k='1')then
If q_14=53570 then q_14<=0;clk_14<=not clk_14;
else q_14<=q_14+1;
end if; --得14hz频率信号
If q_13=57691 then q_13<=0;clk_13<=not clk_13;
else q_13<=q_13+1;
end if; --得13hz频率信号
If q_1=749999 then q_1<=0;clk_1<=not clk_1;
else q_1<=q_1+1;
end if; --得1hz频率信号
end if;
end process;
end rt1;


1楼2015-04-22 14:25回复
    这个分频结果不对,实际频率只有目标的一半,修改方法1:删除进程里面第一个判断上升沿的if语句,这样激励信号上升沿下降沿都能激励后面的程序;修改方法2:你设置的终值= (75000÷输出频率×2)-1。你自己改改仿真看看对不对


    来自Android客户端2楼2015-04-24 23:04
    回复