微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 用FPGA产生1MHz的方波

用FPGA产生1MHz的方波

时间:10-02 整理:3721RD 点击:
小白一枚,作为入门,老师要求我用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方式不就行了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top