CrazyBingo

Chapter 13:国产FPGA之全局时钟网络介绍

0
阅读(4116)

第十三章

国产FPGA之全局时钟网络介绍

本来想直接讲国产FPGA的内部锁相环PLL的,但是发现这个PLL比Altera的锁相环复杂多了,没办法,要讲PLL,不得不线弄明白Astro II的全局时钟电路,这根Quartus II真的有点不一样,具体见下图:

wps_clip_image-24032

在国产FPGA Astro II中,时钟电路太重要了,他关系到下面几个时钟信号的逻辑电路:

v 外部时钟电路

v 无源晶振 crystal时钟电路

v 内部osc晶振时钟电路

v PLL锁相时钟电路

v 8051 CPU时钟电路

这几个部分关系到了Astro II的命脉,息息相关,心心相印,时钟电路,基本上您就了然了Astro II的内部运行机制了。以下,我按照时钟电路从左到右的顺序,一一道来!

(1)Clk0,clk1,clk2,clk3外部时钟输入

wps_clip_image-1563wps_clip_image-10091

顾名思义,四个外部时钟四路端口,这跟Altera FPGA/CPLD一样,直接输入有源晶振时钟,如下所示:

wps_clip_image-30759

手册说支持5~350MHz,这应该说的是PLL的参数,Astro II只能跑到150MHz

wps_clip_image-8155

(2)xin无源晶振Crystal时钟

每个单片机都有一个无缘时钟,8051内核一般给的是11.0592MHz(给这个变态的频率好像是定时器的关系),当然现在的宏晶STC例外,他支持的时钟 NB了;STM32给的是8M的时候,一般都是无源时钟。我们的国产FPGA有一个8051内核,也需要给无源晶振——11.0592MHz的时钟(支持0~20MHz),如下所示:

wps_clip_image-29493

(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个不同的时钟输出

wps_clip_image-4404

wps_clip_image-18631

PLL的具体设置和应用我们在下一讲中阐述,这个比较复杂。。。

(5)Clkcpu时钟电路

这是Astro II 8051内核的时钟,可以通过选择器选择clk0~clk3直接输入,或者选择PLL输出作为8051内核的时钟,手册说支持10~350MHz,但应该是150MHz吧。。。使用8051内核的时候,必须用到PLL,因为这要选择8051内核的时钟网略等。

wps_clip_image-8268

(6)Clkout1,clkout2,clkout3时钟输出

这三个PLL输出的时钟,可以作为Astro II内部的全局时钟使用,这与Altera FPGA意义昂。

(7)Clkcpu,clkout1,clkout2,clkout3,clk1,clk2,clk3这8个时钟组成了Astro II的全局时钟网略。即“gclk”

疑问:手册上说,必须使用PLL才能为Fabric总线架构提供时钟,但实际上我直接外部时钟10M输入,然后跑的好好的,目前这一块有点不理解。。。。。。

wps_clip_image-17964