
如何将10M时钟,倍频到20M输出,时钟由晶振提供。芯片是actel公司的FPGA A3P125,应用软件是Libero9.0. 5
网上说用pll锁相环,但我不知道怎么调用,也不知道怎么编写vhdl,分频我用vhdl程序能实现,就是倍频不知道怎么弄,希望哪位大神给详细讲讲。...
网上说用pll 锁相环,但我不知道怎么调用,也不知道怎么编写vhdl,分频我用vhdl程序能实现,就是倍频不知道怎么弄,希望哪位大神给详细讲讲。
展开
1个回答
展开全部
哈哈,我遇到同样的问题,不过终于解决了。其实是很简单的:
1、首先你要先建立一个工程,例如最简单的一个分频的工程;
2、配置需求(接下来我们要用到的两个触发源):1)PLL的输入时钟clk0;2)复位信号areset(切记是高电平有效的)。都设置为 input.3)c0:PLL输出时钟,即你倍频之后的20M 4)locked信号,高电平表示稳定输出。
3、PLL的配置过程:1)、打开Qusartus>tools>Megawizard Plug-in Manager.
2)选择第一项,create a new .....点击NEXT
3)打开左边的select a ...中的I/O下拉框,找到ALPLL,右边有PLL内核编译语言的选择。中间是工程存放默认目录,地址在最后加上\PLL_ctrl (意思是把PLL_ctrl这个文件存放在工程目录里面)。点击NEXT
4)接下去会出现ALPLL的输入时钟,配置控制信号,配置输出时钟,仿真库文件,输出文件的设置,输出文件的设置你要看清楚里面的东西,里面有个PLL_CTRL_inst和PLL_CTRL的文件要打钩。其他的配置很简单自己应该看的懂。配置完点击FINISH(你点击finish之后它会提示是否ADDto工程,选择是)
5)接下去就将PLL_CTRL_inst例化到工程:将PLL_CTRL_inst文件里面的内容拷贝到工程目录里面,修改()里面的内容,其实就是把它当做一个子函数来调用。选择正确的输入信号和输出信号的引脚分配。
这样就完成了一个简单的PLL时钟倍频。具体倍频多少(或者分频)可以修改PLL_CTRL文件中的系数。还有一点,烧录程序之后要将实际的晶振时钟引到你PLL输入信号端。
有什么不明白的再一起讨论,互相学习。
1、首先你要先建立一个工程,例如最简单的一个分频的工程;
2、配置需求(接下来我们要用到的两个触发源):1)PLL的输入时钟clk0;2)复位信号areset(切记是高电平有效的)。都设置为 input.3)c0:PLL输出时钟,即你倍频之后的20M 4)locked信号,高电平表示稳定输出。
3、PLL的配置过程:1)、打开Qusartus>tools>Megawizard Plug-in Manager.
2)选择第一项,create a new .....点击NEXT
3)打开左边的select a ...中的I/O下拉框,找到ALPLL,右边有PLL内核编译语言的选择。中间是工程存放默认目录,地址在最后加上\PLL_ctrl (意思是把PLL_ctrl这个文件存放在工程目录里面)。点击NEXT
4)接下去会出现ALPLL的输入时钟,配置控制信号,配置输出时钟,仿真库文件,输出文件的设置,输出文件的设置你要看清楚里面的东西,里面有个PLL_CTRL_inst和PLL_CTRL的文件要打钩。其他的配置很简单自己应该看的懂。配置完点击FINISH(你点击finish之后它会提示是否ADDto工程,选择是)
5)接下去就将PLL_CTRL_inst例化到工程:将PLL_CTRL_inst文件里面的内容拷贝到工程目录里面,修改()里面的内容,其实就是把它当做一个子函数来调用。选择正确的输入信号和输出信号的引脚分配。
这样就完成了一个简单的PLL时钟倍频。具体倍频多少(或者分频)可以修改PLL_CTRL文件中的系数。还有一点,烧录程序之后要将实际的晶振时钟引到你PLL输入信号端。
有什么不明白的再一起讨论,互相学习。
追问
呃,我用的是Libero9.0.不是Qusartus,不过应该都是一样的步骤,如果仁兄能把Libero9.0软件的锁相环的用法给我详细讲解,我将感激不尽。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询