请教一下大家,我需要将一个输入频率为1-4MHZ的时钟,倍频4倍呢,即输出频率随输入频率在4~16M的范围内变化。
可是PLL的XILINX 的IP核需要填上输出时钟,那输出频率不是被固定死了吗?
Fatal error: Uncaught TypeError: Cannot access offset of type string on string in /www/wwwroot/chipdebug.com/wp-content/themes/zibll/inc/functions/shop/widgets/widgets-product.php:652 Stack trace: #0 /www/wwwroot/chipdebug.com/wp-content/themes/zibll/inc/csf-framework/classes/widget-options.class.php(676): zib_shop_widget_ui_oneline_product_lists() #1 /www/wwwroot/chipdebug.com/wp-includes/class-wp-widget.php(394): CSF_Widget->widget() #2 /www/wwwroot/chipdebug.com/wp-includes/widgets.php(847): WP_Widget->display_callback() #3 /www/wwwroot/chipdebug.com/wp-content/themes/zibll/inc/functions/bbs/inc/template.php(42): dynamic_sidebar() #4 /www/wwwroot/chipdebug.com/wp-content/themes/zibll/inc/functions/bbs/page/posts.php(36): zib_bbs_page_template() #5 /www/wwwroot/chipdebug.com/wp-includes/template.php(880): require_once('...') #6 /www/wwwroot/chipdebug.com/wp-content/themes/zibll/inc/functions/bbs/inc/class.init.php(426): load_template() #7 /www/wwwroot/chipdebug.com/wp-includes/class-wp-hook.php(353): zib_bbs->template_redirect() #8 /www/wwwroot/chipdebug.com/wp-includes/class-wp-hook.php(377): WP_Hook->apply_filters() #9 /www/wwwroot/chipdebug.com/wp-includes/plugin.php(523): WP_Hook->do_action() #10 /www/wwwroot/chipdebug.com/wp-includes/template-loader.php(23): do_action() #11 /www/wwwroot/chipdebug.com/wp-blog-header.php(19): require_once('...') #12 /www/wwwroot/chipdebug.com/index.php(17): require('...') #13 {main} thrown in /www/wwwroot/chipdebug.com/wp-content/themes/zibll/inc/functions/shop/widgets/widgets-product.php on line 652


xilinx 的dcm可以用来干这个事情,
以Spartan-3系列为例其DCM的输入(CLKIN):1-280MHz。
1MHz的输入频率太低了,没有哪一家的pll可以支持这个输入。这个只能高频采样,或者用一大堆lut自己做dll,或者用外部电路倍频,不保证占空比,且需要先2倍频,再修正占空比,然后再倍一次。
外部倍频法其实很简单,利用门电路或rc电路的延时,使得原信号与延时后的信号异或。但是它要求外部信号的占空比是50/50。否则出来的就不是方波,而是毛刺了。
PLL的输入和输出可以抽象为是一个比例关系,例如你就填2M输入,8M输出,实际上你输入1-4M,那么输出就会在4~16M内变动。不过我没试过,不确定1-4M这么低的频率PLL能不能锁定,另外,锁定时间未知。
我的做法是用一个标准的系统时钟(用内部PLL倍频到100MHZ)然后将另一个1-4M时钟输入到FPGA的管脚。 FPGA可以计算出它的频率 然后 FPGA内部用100MHZ 分频到那个时钟的4倍