Chapter 13:国产FPGA之全局时钟网络介绍
0赞第十三章
国产FPGA之全局时钟网络介绍
本来想直接讲国产FPGA的内部锁相环PLL的,但是发现这个PLL比Altera的锁相环复杂多了,没办法,要讲PLL,不得不线弄明白Astro II的全局时钟电路,这根Quartus II真的有点不一样,具体见下图:
在国产FPGA Astro II中,时钟电路太重要了,他关系到下面几个时钟信号的逻辑电路:
v 外部时钟电路
v 无源晶振 crystal时钟电路
v 内部osc晶振时钟电路
v PLL锁相时钟电路
v 8051 CPU时钟电路
这几个部分关系到了Astro II的命脉,息息相关,心心相印,时钟电路,基本上您就了然了Astro II的内部运行机制了。以下,我按照时钟电路从左到右的顺序,一一道来!
(1)Clk0,clk1,clk2,clk3外部时钟输入
顾名思义,四个外部时钟四路端口,这跟Altera FPGA/CPLD一样,直接输入有源晶振时钟,如下所示:
手册说支持5~350MHz,这应该说的是PLL的参数,Astro II只能跑到150MHz
(2)xin无源晶振Crystal时钟
每个单片机都有一个无缘时钟,8051内核一般给的是11.0592MHz(给这个变态的频率好像是定时器的关系),当然现在的宏晶STC例外,他支持的时钟 NB了;STM32给的是8M的时候,一般都是无源时钟。我们的国产FPGA有一个8051内核,也需要给无源晶振——11.0592MHz的时钟(支持0~20MHz),如下所示:
(3)OSC内部振荡器
现在一般的单片机都有内部振荡器,AVR,MSP430等都有,成本敏感下可以省略外部时钟(当然没有外部时钟稳定哦)。
FPGA中没有内部振荡器,必须使用外部时钟,但是CPLD有UFM,有近似10M的频率,在成本敏感但频率要求又不高的时候可以使用内部振荡器。相关设计请参考Bingo博文:
“让没有晶振的生活成为可能”
http://www.cnblogs.com/crazybingo/archive/2010/05/14/1735338.html
但是这个国产FPGA内部的OSC貌似是有生命的,他会根据温度,电压的变化而变化,典型值为15MHz,变化范围为9~20MHz。OSC为AS配置适中,一般不推介用户使用。
但若干如果你非得用,也未尝不可,还可以节约无源晶振,只不过始终没那么稳定哈。
(4)PLL内部锁相环电路
国产FPGA与FPGA一样,具有内部锁相环,索然只有一个,但是他极大的方便了我们的设计,使得我们在时钟领域有了一个比较灵活的设计。最多能支持3个不同的时钟输出
PLL的具体设置和应用我们在下一讲中阐述,这个比较复杂。。。
(5)Clkcpu时钟电路
这是Astro II 8051内核的时钟,可以通过选择器选择clk0~clk3直接输入,或者选择PLL输出作为8051内核的时钟,手册说支持10~350MHz,但应该是150MHz吧。。。使用8051内核的时候,必须用到PLL,因为这要选择8051内核的时钟网略等。
(6)Clkout1,clkout2,clkout3时钟输出
这三个PLL输出的时钟,可以作为Astro II内部的全局时钟使用,这与Altera FPGA意义昂。
(7)Clkcpu,clkout1,clkout2,clkout3,clk1,clk2,clk3这8个时钟组成了Astro II的全局时钟网略。即“gclk”
疑问:手册上说,必须使用PLL才能为Fabric总线架构提供时钟,但实际上我直接外部时钟10M输入,然后跑的好好的,目前这一块有点不理解。。。。。。