基于CPLD的片内振荡器设计

发布者:SerendipitySoul最新更新时间:2007-04-16 来源: 电子技术应用关键字:有源  无源  时钟  编程 手机看文章 扫描二维码
随时随地手机看文章

在绝大部分数字系统设计中,时钟是不可或缺的部分,通常采用外接有源或者无源振荡器来提供时钟信号。外接时钟的优点是性能稳定,设计简便;缺点是会增加电路板面积,而且高频设计时对电路板布线和加工的要求比较严格,可能增加系统成本和设计难度。基于可编程逻辑器件FPGA/CPLD的设计提供了另外一种选择,即采用片内的可编程资源实现振荡器功能。这种设计可以将振荡部分同时集成到FPGA/CPLD中,减少了外部资源的使用。

环形振荡器是最简单的振荡器设计方法,在分立器件和专用集成电路(ASIC)设计中一直受到关注[1,2,3]。但是在这类设计中,振荡频率随电压变化的特性使其应用受到限制,所以要在工艺或电路设计方面考虑振荡频率的稳定问题[2][3]。随着电路制造技术的发展,稳压电路已经物美价廉;另外,FPGA/CPLD厂商为用户在片内预设了一些特定模块,为振荡器的片内实现提供了方便。如Altera公司的MaxII系列CPLD芯片,允许用户通过软件Quartus II的MegaWizard:Plug-in Manager功能来调用系统提供的参数化模块库(LPM)。其中的IO/MAXII Oscil-lator[4]模块即是一个能在芯片内部实现片内振荡器的软核,其工作频率范围为3.33MHz~5.56MHz,用户不可以调整工作频率。在做仿真应用时,可选择3.33或5.56MHz;在实际应用中,会自动给出3.33~5.56MHz范围内的振荡频率。该片上振荡器模块只能下载在MaxII系列芯片内的用户闪存存储器(UFM)上,振荡输出可以驱动芯片引脚和内部逻辑,该UFM资源一旦作为振荡器使用,便不能再实现并联接口(PIO)、串连接口(SPI)和IIC接口等其他功能。

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

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

环形振荡器原理如图1所示。由奇数个非门组成的环形非门级联串使电路处于无稳定状态,静态下任何一个非门的输入和输出都不可能稳定在高电平或低电平,而只能处于周而复始的高低电平转换状态,从而产生自激振荡[5]。振荡周期为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结构能够保证门延时的等间隔特性。

2 CPLD片内振荡器的实现和优化

2.1 CPLD片内振荡器的实现

基于上述方法的片内环形振荡器设计有很大的通用性,可在不同CPLD芯片间方便地移植。本文以Altera公司的MAX7000S系列CPLD芯片的实现和测试为例说明。MAX7000S系列基于先进的多矩阵构架设计,采用CMOS工艺制造,容量高达256个逻辑单元LE(Logic El-ement),每16个宏单元组成一个逻辑阵列块LAB(LogicArray Block),速度达3.5ns的管脚到管脚延时,同时支持多种I/O电压标准。

从EDA软件综合后的报告可以看出,图2所示电路中每个门占用了一个逻辑单元。也就是说,电路内LE的延时将作为门的延时tpd,而且需要将振荡使能端引出到I/O引脚,当所实现振荡频率较低时,需要较多的门电路单元,这将占用一定的逻辑和引脚资源,从而降低芯片资源的利用率,所以在低频情况下使用时,要综合考虑系统需要的振荡频率,尽量用较少的门电路实现环形振荡器,以提供较高振荡频率,再设计分频电路以取得合适的振荡频率,从而提高芯片的资源利用率。综合器的这一处理,从客观上保证了设计者可以选择不同的门来实现图2的结构,仍然可以保证振荡间隔的一致性。实验也证实了这个结果。

2.2 电源电压的影响

电压会影响振荡电路的工作频率[6],电压增大会导致电路振荡频率增加,反之振荡频率减小。CPLD芯片一般有两个相对独立的供电端口,即核心电压(VCCINT)和引脚电压(VCCIO)。其中核心电压给芯片内部可编程逻辑电路资源提供电源,引脚电压为芯片的I/O引脚提供电源,以适应各种输出标准(如LVCOMOS、LVTTL、SSTL-2、SSTL-3等)。对振荡频率有影响的是CPLD芯片的核心电压,对此电压应采取稳压措施,稳压措施要视不同的应用要求而定。最简单的措施是采用高性能的稳压芯片给CPLD芯片分别提供两部分电压。随着半导体技术的发展,简单而廉价的稳压芯片已具有较高的性能,如National公司的LM2678系列芯片[7]在有效输入变化范围内,稳压输出误差在±2%以内。

2.3 CPLD片内振荡器优化

通过EDA软件对设计做优化有可能提高所设计的振荡器的性能,减少对CPLD片内资源的占用。当采用MAX+plusII10.2软件设计时,软件优化开关设置为:(1)本设计选用MAX系列芯片,故选择对该芯片的多层综合选项(Multi-Level Synthesis for Max5000/7000/9000De-vice)。(2)在面积和速度优化选项中,选择对面积的优化,使振荡器部分尽可能分配到同一个LAB中。(3)打开"Slow Slew Rate"以降低开关噪声,打开"XOR Synthesis"以减少芯片面积的占用。

3 电路仿真及测试结果

本文以Altera公司的MAX+plus II 10.2为设计工具,在MAX7000S系列芯片上实现并测试。图3为选用EMP7128LC84-15芯片的时序仿真结果。其中p0~p7分别为环形振荡电路中单个门之后的电路节点;oscena[7…0]为各延时门电路的控制端(即所有二输入门中多余的输入端)。

表1列出了以EPM7128LC84-15为目标芯片、采用Tektronic TDS2012示波器对用不同门数实现的片内振荡器的测试数据。F1和F2分别表示片内振荡器输出和二分频输出的测量数据。图4给出了测量数据的曲线。

表1数据表明,通过增加门电路的数量可以有规律地减小振荡电路的工作频率,由每个逻辑单元实现的门电路单元延时tpd在7.5~10ns之间。

本文介绍的基于CPLD的片内振荡器设计方法,在改变该振荡器电路中门电路数量时,可以有规律地将振荡频率控制在8MHz~62MHz范围内。振荡器的片内设计使基于CPLD的片上系统(SoC)设计无需外接时钟信号源,加大了系统的集成度并降低了设计成本。本方法有很大的通用性,可以方便地在不同CPLD芯片间移植。仿真和测试数据表明该设计方法具有正确性和可行性。

关键字:有源  无源  时钟  编程 引用地址:基于CPLD的片内振荡器设计

上一篇:基于CPLD控制的直流固态功率控制器的设计
下一篇:2007年度TI DSP大奖赛竞赛须知

推荐阅读最新更新时间:2024-05-02 20:35

基于nRF9E5的有源超高频RFID系统设计
射频识别(Radio Frequency Identification,RFID)技术是一种利用无线射频通信实现的非接触式自动识别技术,与目前广泛采用的条形码技术相比,RFID具有容量大、识别距离远、穿透能力强、抗污性强等特点。RFID技术已经发展得比较成熟并获得了大规模商用,但超高频RFID技术相对滞后。本文分析了射频芯片nRF9E5的功能特性,并将其用于RFID系统中,设计了一套有源超高频(UHF)RFID系统。 射频芯片的选取 目前,发展较为成熟的RFID系统主要是125kHz和13.56MHz系统,相应的RFID专用芯片也较多,主要有TI公司的S6700系列,NXP公司的MIFARE系列等。然而,用于UHF RFID的
[安防电子]
DSP的汇编程序优化
1 引言   数字信号处理器(DSP)相对于模拟信号处理器有很大的优越性,表现在精度高,灵活性大,可靠性好,易于大规模集成等方面。随着半导体制造工艺的发展和计算机体系结构的改进,数字信号处理器的功能越来越强大,对信号处理系统的研究重点又重新回到软件算法上,而不再像过去那样过多地考虑硬件的可实现性。随着DSP运算能力的不断提高,能够实时处理的信号带宽也大大增加,数字信号处理的研究重点也由最初的非实时性应用转向高速实时应用。   目前大多数DSP虽然都支持C语言编程,但是在实际工程应用中,最常用的方法是用C语言编写流程控制。搭建工程框架,具体的算法模块及比较耗时的功能模块还是采用汇编语言来编写。这是因为C语言虽然具有易读性、可
[嵌入式]
时钟闹铃控制电路原理图
  原理图说明:   1、共阳极四位一体12引脚数码管引脚号是:将数码管的数字面朝向观察者,左下角是第1脚,逆时针方向依次是2、3、4、5、6、7、8、9、10、11、12脚。   2、如果是单个的数码管或两位一体的数码管,先测出数字显示段控制引脚和公共控制引脚,再将四个数码管的相同的段控制引脚用导线并联连接在一起后(每位数码管共八段即八根连接导线),连接在电阻R5~R13上,公共控制引脚分别连接到三极管 Q1 到 Q4 的发射极上。   3、用 40 脚的集成块插座焊接在电路板上,集成块 AT89C51 写入程序后插入到集成块插座上。   4、自己设计控制程序或用黄有全老师的程序;   5、时钟控制输出由继电器执行,控
[单片机]
<font color='red'>时钟</font>闹铃控制电路原理图
三种PLC编程算法介绍
PLC编程算法(1) PLC中无非就是三大量:开关量、模拟量、脉冲量。旨在搞清楚三者之间的关系,你就能熟练地掌握PLC了。 1、 开关量也称逻辑量,指仅有两个取值,0或1、ON或OFF(开关量只有两种状态0/1,包括开入量和开出量,反映的是状态)。它是最常用的控制,对它进行控制是PLC的优势,也是PLC最基本的应用。 开关量控制的目的是,根据开关量的当前输入组合与历史的输入顺序,使PLC产生相应的开关量输出,以使系统能按一定的顺序工作。所以,有时也称其为顺序控制。 而顺序控制又分为手动、半自动或自动。而采用的控制原则有分散、集中与混合控制三种。 2、 模拟量是指一些连续变化的物理量(数字量是不连
[嵌入式]
三种PLC<font color='red'>编程</font>算法介绍
编程控制器与电源的整合应用
1 引言 电源监控是铁路信号的重要的监控系统。在此之前信号的电源监控系统基本上是采用单片机作为信号采集系统的核心。单片机监控系统一方面存在采集速度慢、界面不友好、操作不方便等技术局限,另一方面由于其中的电源模块部分的监控相对独立,对电源系统带来了诸多不便,比如维护困难、界面显示繁琐等。基于以上原因本项目配套开发了基于台达PLC作为信号采集核心、台达HMI触摸屏作为操作和监视界面的电源监控系统。监控子系统与电源模块通过工业总线网络互连实现整合的经济实用、技术先进的铁路信号的电源监控系统。 2 硬软件系统设计 2.1硬件体系设计 图1 硬件体系设计 铁路信号电源监控硬件体系设计参见图1。系统规模:4
[电源管理]
STM32 入门教程 系统时钟 SysTick
(一) 背景介绍 在传统的嵌入式系统软件按中通常实现 Delay(N) 函数的方法为: for(i = 0; i = x; i ++); x --- 对应于 对应于 N 毫秒的循环值 对于STM32系 列微处理器来说,执行一条指令只有几十个 ns,进行 for 循环时,要实现 N 毫秒的 x 值非常大,而且由于系统频率的宽广,很难计算出延时 N 毫秒的精确值。针对 STM32 微处理器,需要重新设计一个新的方法去实现该功能,以实现在程序中使用 Delay(N)。 (二) STM32 SysTick 介绍 Cortex-M3 的内核中包含一个 SysTick 时钟。SysTick 为一个 24 位递减计数器
[单片机]
Makeblock程小奔成为日本STEAM教师研修计划首选编程机器人
为推进日本大阪市中小学 STEAM 教育进程,日本大阪商工会议所向大阪市教育委员会捐赠200台  Makeblock  最新推出的 AI 智能教育 机器人 程小奔 (Codey Rocky),作为大阪市立小学教师研修计划的教学器材。捐赠仪式在大阪市政府举行,大阪商工会议所尾崎裕会长和大阪市长吉村洋文出席并参与本次捐赠活动,Makeblock 亚太区负责人也出席此次捐赠仪式。   7月份,大阪商工会议所中国考察团到访总部位于深圳的Makeblock。在访问过程中,Makeblock 的创始人兼 CEO 王建军表示:“非常感谢日本商工会议所选择 Makeblock 程小奔机器人,很高兴能为日本的 STEAM 教育事业尽一份力!一直以来
[嵌入式]
51单片机编程环境搭建方法
前言 本教程将向大家介绍KEIL C51软件的安装,通过本教程的学习,我们可以在电脑上安装一个KEIL C51 软件,为后面学习程序的开发做好铺垫。 一、KEIL C51安装 1.软件获取 要在电脑上成功安装KEIL C51,首先必须要有安装包,我们可以通过万能的百度,搜索关键字“KEIL C51 下载”,上面会有很多下载渠道,也可以在KEIL的官网上下载,打开界面如下图所示。 使用我们提供下载好的软件包,其内部含有如下图所示文件。 C51V901.exe:是KEIL C51 软件的安装文件。 keygen_new2032.zip:KEIL C51 破解软件,在KEIL C51 不破解的情况下只 能编译2K 大小文件,如果
[单片机]
51单片机<font color='red'>编程</font>环境搭建方法
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved