×
嵌入式开发 > 详情

基于CPLD的片内环形振荡器的设计方案

发布时间:2020-06-23 发布时间:
|

本文介绍一种通用的基于CPLD的片内振荡器设计方法,它基于环形振荡器原理,只占用片上普通逻辑资源(LE),无需使用专用逻辑资源(如MaxII中的UFM),从而提高了芯片的资源利用率;振荡频率可在一定范围内调整,振荡输出可以驱动内部逻辑和外部器件引脚。本设计有较大的通用性,可方便地在不同CPLD器件间移植,使一些基于CPLD的片上系统(SoC)设计无需使用外部时钟信号源,从而降低设计成本和难度,增加系统集成度。通过在Altera公司的MAX7000系列EMP7128LC84-15芯片上的实验说明实现的方法。实验实现的频率范围在8MHz~62MHz。仿真和硬件测试结果表明了该设计方法的正确性和可行性。

1 基于CPLD的片内环形振荡器

环形振荡器原理如图1所示。由奇数个非门组成的环形非门级联串使电路处于无稳定状态,静态下任何一个非门的输入和输出都不可能稳定在高电平或低电平,而只能处于周而复始的高低电平转换状态,从而产生自激振荡。振荡周期为T=2Ntpd,其中N是非门的个数,tpd是每个非门的传输延迟时间,改变电路中非门的数量可以改变电路的振荡频率。

图1所示的环形振荡器即使采用电路原理图输入,经电子设计自动化(EDA)软件综合后,也得不到对应的电路结构。实际上,EDA综合工具不是从电路结构出发,而是从电路输入和输出的逻辑关系出发给出综合结果,所以,奇数个非门的级联将被综合为一个非门,而偶数个非门的级联被综合为一个缓冲或一条联线。为能在CPLD器件中实现图1的环形振荡器结构,本文将图1中单端口输入元件改成二端口输入元件,即用二输入与非门代替图1的第一个非门,其余偶数个非门则用二输入与门代替,二端口元件的一个输入端口连接上级输出,另一输入端口作为控制端引出。振荡器正常工作时控制端全部置高电平。采用Synplify Pro 7.7综合后的原理图如图2所示。该电路完全可实现图1的功能。

为了保证正反馈,图1结构的非门级联必须是奇数个。图2中的与非门起到反相作用,其他与门则起延时缓冲的作用。可以通过改变门的数量以及选择门的种类(与门、与非门等)改变osc输出端的振荡频率,而不受"奇数"个门的限制,只要保障第一个门得到正反馈就可以产生振荡。而图1的结构必须改变偶数个非门才能达到改变振荡频率的目的,因而图2结构在CPLD芯片中实现时可以节省逻辑资源。控制端oscena[n-1,0]为振荡使能控制端,置高电平时,与非门的输入和输出在缓冲级联链的反馈作用下产生自激振荡,振荡器正常工作;控制端的任意一位置零使振荡器停振。所以oscena既可单独使用,也可互联后作为一个端使用。实验证明,图2结构能够保证门延时的等间隔特性。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
一个简单的SOCKET程序的数据包结构和封解包函数