用FPGA产生1MHz的方波

2019-07-15 22:32发布

小白一枚,作为入门,老师要求我用FPGA产生一个1MHz的方波,求指教。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
zhifubao
1楼-- · 2019-07-16 00:10
应该就是PWM吧。  
gxy0123
2楼-- · 2019-07-16 05:36
说的好笼统啊,首先你的晶振是多少M的,分频就可以了,计数分频or锁相环分频
未羊
3楼-- · 2019-07-16 06:16
分频
White丶旋律o
4楼-- · 2019-07-16 10:25
 精彩回答 2  元偷偷看……
ganquanlu
5楼-- · 2019-07-16 11:40
White丶旋律o 发表于 2016-9-3 07:17
好巧!我也是新手,1MHz的方波刚刚做过!我FPGA上的晶振是50MHz的,所以我拿锁相环(PLL)进行了1/50分频就得到了1MHz的方波。或者你可以用编写语言的方法,编一个计数器,当时钟上升沿来时先置为高电平,同时开始计数,当计数满25时,第26个上升沿来时置为低电平,然后当计数满50时,把计数器归零重新计数。你可以试 ...

你好,我想产生两路一样的方波,但是时间上有延迟,请问这个怎么实现
lfjd05
6楼-- · 2019-07-16 15:19
假设你的主晶振频率是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 ;


一周热门 更多>