用FPGA产生1MHz的方波
应该就是PWM吧。
说的好笼统啊,首先你的晶振是多少M的,分频就可以了,计数分频or锁相环分频
分频
好巧!我也是新手,1MHz的方波刚刚做过!我FPGA上的晶振是50MHz的,所以我拿锁相环(PLL)进行了1/50分频就得到了1MHz的方波。或者你可以用编写语言的方法,编一个计数器,当时钟上升沿来时先置为高电平,同时开始计数,当计数满25时,第26个上升沿来时置为低电平,然后当计数满50时,把计数器归零重新计数。你可以试试
你好,我想产生两路一样的方波,但是时间上有延迟,请问这个怎么实现
假设你的主晶振频率是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 ;
8254方式不就行了。