假设你的主晶振频率是50MHz,分频到1MHz就是差了50倍,之后我们需要用一个计数器来分频,当时计数器记满的时候,改变一次信号电平,频率就等于慢了50倍,因为是一个周期需要改变两次电平,所以计数器需要有50/2=25个计数。贴一个VHDL的伪代码
PROCESS(clock)
VARIABLE half_counter: INTEGER RANGE 0 TO 24 :=0; --设置计时器把50MHz半分频,设计的时序频率是1MHz,分频应该为50M/1M/2=25个计数
BEGIN
IF clock'EVENT AND clock='1'THEN --如果输入的50MHz出现下降沿
IF half_counter=24 THEN
temple_CLK<=NOT temple_CLK; --计数满了改变电平
END IF;
IF half_counter=24 THEN --计数器记满了清零
half_counter:=0;
ELSE
half_counter:=half_counter+1;
END IF;
END IF;
END PROCESS ;
你好,我想产生两路一样的方波,但是时间上有延迟,请问这个怎么实现
PROCESS(clock)
VARIABLE half_counter: INTEGER RANGE 0 TO 24 :=0; --设置计时器把50MHz半分频,设计的时序频率是1MHz,分频应该为50M/1M/2=25个计数
BEGIN
IF clock'EVENT AND clock='1'THEN --如果输入的50MHz出现下降沿
IF half_counter=24 THEN
temple_CLK<=NOT temple_CLK; --计数满了改变电平
END IF;
IF half_counter=24 THEN --计数器记满了清零
half_counter:=0;
ELSE
half_counter:=half_counter+1;
END IF;
END IF;
END PROCESS ;
一周热门 更多>