首页 > 文章中心 > 时钟电路

时钟电路

开篇:润墨网以专业的文秘视角,为您筛选了八篇时钟电路范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

时钟电路范文第1篇

[关键词] 单片计算机 中央处理器 随机存储器 只读存储器

本文通过用对一个能实现定时,时钟,日历显示功能的时间系统的设计学习,详细介绍了51 单片机应用中的数据转换显示,数码管显示原理,动态扫描显示原理,单片机的定时中断原理、从而了解单片机相关指令在各方面的应用,文章后附有电路图,以供读者参考。本系统由AT89C51、LED 数码管、按键、发光二极管等部分构成,能实现时间的调整、定时时间的设定,输出等功能。系统的功能选择由SB0、SB1、SB2、SB3、SB4 完成。其中SB0为时间校对,定时器调整功能键,按SB 0 进入调整状态。SB1 为功能切换键。第一轮按动SB1 依次进入一路、二路、三路定时时间设置提示程序,按SB3 进入各路定时调整状态。定时时间到,二极管发亮。到了关断时间后灭掉。如果不进入继续按SB1 键,依次进入时间 年位校对、月位校对、日位校对、时位校对、分位校对、秒位校对状态。不管是进入那种状态,按动SB2 皆可以使被调整位进行不进位增量加1 变化。各预置量设置完成后,系统将所有的设置存入RAM 中,按SB1 退出调整状态。上电后,系统自动进入计时状态,起始于00时00分。SB4 为年月日显示转换键,可使原来显示时分秒转换显示年月日。

一、电路原理分析

1、显示原理

由6 个共阴极的数码管组成时、分、秒的显示;P0 口的8 条数据线P0.0 至P0.7 分别与两个CD4511 译码的ABCD 口相接,P2 口的 P2.0 至P2.2 分别通过电阻R10 至R13 与VT1 至VT3 的基极相连接。这样通过P0 口送出一个存储单元的高位、低位BCD显示代码,通过P2 口送出扫描选通代码轮流点亮LED1 至LED6,就会将要显示的数据在数码管中显示出来。从P0 口输出的代码是BCD 码,从P2 口输出的就是位选码。这是扫描显示原理。

2、数码管结构及代码显示

共阴LED 数码管结构、字段及引脚排列见图2 图2;共阴LED 数码管由8 只发光二极管VD1 至VD8 共阴连接并按8字形结构排列而成。这样,我们将这些二极管的正极接高低不同的电位,把所有的负极接地,当正极为高电位时相应的二极管就会导通而发光,从而使数码管呈现不同的字符。而只有P2 相应呈现高电位,VT 个管导通,LED1 的GND 与地相接,LED 位被选中才具备发光的使能条件;可见,在利用P2 口送出位选码,使各位轮流得到发光使能条件的同时,通过P0 口分别送出不同的段选码,就会在LED1 至LED4 中显示出不同的数字来。

3、键盘及读数原理

键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电。平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动,延时时间20ms。

4、连击功能的实现

按下某键时,对应的功能键解释程序得到执行,如操作者没有释放按键,则对应的功能会反复执行,好象连续执行,在这里我们采用软件延时250ms,当按键没释放则执行下一条对应程序。利用连击功能,能实现快速调时操作。

二、程序设计思想和相关指令介绍

本系统的主程序主要完成时间显示和定时输出判断功能。而年月日显示和各时间单元进位,时间设定时,调定时间设定时等功能全部在中断服务程序中完成。

1、数据与代码转换

由前述可知,从P2 口输出位选码,从P0 口输出段选码,LED 就会显示出数字来。但P0口的输出的数据是要BCD 码,各存储单元存储的是二进制数,也就是和要显示出的字符表达的含义是不一致的。可见,将要显示的存储单元的数据直接送到P0 口去驱动LED 数码管显示是不能正确表达的,必须在系统内部将要显示的数据经过BCD 码行转换后,将各个单元数据的段选代码送入P0 口,给CD4511 译码后去驱动数码管显示。具体转换过程如下:

Created with novaPDF Printer (省略).

Please register to remove this message.

我们先将要显示的数据装入累加器A中,再将A中的数据转换成高低两位的BCD 码,再放回A中,然后将A 中的值输出。如:有一个单元存储了45 这样一位数,则需转换成四位的BCD码:(0100)(0101)然后放入A 中。A中BCD码,高位四位代表4低四位代表5同时送给两个译码器中,译码后45字就在两个LED 中显示出来。

2、计时功能的实现与中断服务程序

时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。计数器T0 打开后,进入计时,满100 毫秒后,重装定时。中断一次,满一秒后秒进位,满60 秒后即为1 分钟,分钟单元进位,60 分到了后,时单元进位,24 小时满后,天单元进位。这样然后根据进率,得到年、月、日、时、分、秒存储单元的值,并经译码后,通过扫描程序送LED 中显示出来,实现时钟计时功能。累加是用指令INC 来实现的。进入中断服务程序以后,执行PUSH PSW 和PUSH A 将程序状态寄存器PSW 的内容和累加器A 中的数据保存起来,这便是所谓的保护现场。以保护现场和恢复现场时存取关键数据的存储区叫做堆栈,在软件的控制之下,堆栈可在片内RAM 中的任一区间设定,而堆栈的数据存取与一般的RAM 存取又有区别,对它的操作,要遵循¡ 后进先出¡ 的原则。

3、时钟误差分析

开启定时器/计数器0,使之开始计时,中断后进入中断程序。自停止计数到、计数又开始,中间执行了7 条指令,也就是延迟了13 个单周期共用时间26us,这样,每个中断的总时间应为为100.026sm,而原来定时是100ms,,所以,也就是说每次中断定时多了26um.这样,可改变计数重装值,使每次中断定时时间为99.974sm,加上原来的7 条指令所用的时间,正好100sm.计数10 次得1s.这样就可得到较精确的计时秒数,然后根据进率,得到时、分的值。

4、时间控制功能与比较指令

系统的另一功能就是实现对执行设备的定时开关控制,其主要控制思想是这样的:先将执行设备开启的时间和关闭时间置入RAM 某一单元,在计时主程序当中执行几条比较指令,如果当前计时时间与执行设备的设定开启时间相等,就执行一条 CLR 指令,将对应的那路P3 置为高电位,开启;如果当前计时时间与执行设备设定的关闭时间相等,就执行SETB对应的P3 置低电位,二极管截止,。实现此控制功能用到的比较指令为CJNE A,#direct,rel,其转移条件是累加器A 中的值与立即数不等则转移。

参考文献:

[1]谢自美,《电子线路设计、实验、测试 》武汉:华中理工大学出版社,2000.

时钟电路范文第2篇

【关键词】CDR 过采样 速率选择 二阶数字滤波器 相位插值

1 引言

时钟数据恢复电路是高速串行通信系统中的关键模块,主要作用是从串行数据流中提取出时钟与恢复出数据。常见的CDR结构为反馈相位跟踪型,通过鉴相器判断时钟和数据之间的相位变化,及时反馈给电路进行相位校准。反馈相位跟踪型CDR根据时钟产生和相位调整方式不同,分为三种基本类型:基于锁相环型、基于延时锁定环型和基于相位插值(Phase Interpolation,PI)型。

对电路进行MATLAB行为级建模首先是为了确定影响电路性能的因素,有利于电路的系统设计,其次是利用系统模型仿真速度比电路仿真速度快几个数量级的特点,缩短系统设计周期。为了确定CDR电路中二阶数字滤波器的频率跟踪环路和相位跟踪环路的系数、加快电路设计周期,本文采用了MATLAB中Simulink工具对CDR电路进行行为级建模及仿真分析。

2 CDR系统框架

2.1 系统框架

本设计是基于PI型CDR,工作原理是通过选择一组正交时钟进行加权组合,得到需要的时钟相位,从而完成对数据相位校准跟踪。该结构的优点是采用数字电路实现相位跟踪,通过对数字电路编程,可以调整抖动传输带宽及确定性抖动。本文分别运用了时域和相位域的方法对CDR进行建模,采用时域方法建模可以准确理解及掌握CDR系统中每部分具体的运行过程,测出CDR的抖动、微分非线性(DNL),误码率等;采用相位域方法建模,能够快速测出CDR的抖动传输带宽、锁定时间、频差容忍等参数。时域模型的总体框架分为以下几部分:采样模块、分频模块、速率选择器、数字滤波器、PI控制器、相位插值模块(PI)、延迟模块。

2.2 工作原理

采样器用同频率四相位时钟对接收端发送过来的数据进行采样,输出两位数据信息和两位相位信息。分频器将采样器传送过来的数据与相位信息进行四分频,目的是为了降低后面数字模块的工作频率,以及提供八位数据供速率选择器进行投票选举。数字滤波器对时钟超前与滞后信息进行累加,输出七位超前(early[0:6])和滞后(late[0:6])信息。PI控制器对七位时钟超前和滞后信息进行编码,高两位用来选择相位插值的象限,每个象限等分为25个区间,即低五位用来选择插值区间。经相位插值模块调整时钟后,输出四相位时钟供采样模块对数据进行采样。

模型可及时分析仿真结果,调整二阶数字滤波器的参数,优化设计。本文设计的CDR是封闭的二阶环路,将模型抽象为基本的数学模型,如图1所示,采样、分频、速率选择模块的数学系数为KPD,PI的系数为KPI,其中KPD和KPI值固定,二阶数字滤波器中相位跟踪环路的系数为ph,频率跟踪环路的的系数为fr。通过调整二阶数字滤波器ph和fr,可以改变整个CDR环路的带宽、抖动情况、频差跟踪能力。等式(1)展示了CDR的传递函数。

3 MATLAB建模和仿真

3.1 高速采样模块和速率选择器

高速采样电路的模型是搭建四个触发器,用时钟上升沿对数据进行采样。从PI中恢复出相差90o的四相时钟clk0、clk90、clk180、clk270。clk0和clk180对数据中心进行采样,得到数据信息,clk90和clk270对数据边沿进行采样,得到数据的相位信息。

在分频器中用触发器将采样得到的两位数据信息和相位信息四分频,得到八位数据和相位信息,并用四分频后的时钟clk3/4将八位数据和相位信息对齐。

3.2 可编程数字滤波器

前面已经简单地描述了整个CDR的传输函数,本设计的难点在于分析及选择合适的数字滤波器参数。本设计采用了二阶数字滤波器,与传统的一阶数字滤波器相比较,二阶CDR的频差跟踪能力远远大于一阶CDR。如图2所示数字滤波器模型,KP环路实现相位积分,最高累加11位信号,舍弃低4位,KP取值为8、4、2;Kf环路实现频率积分,最高累加13位信号,舍弃低8位,Kf的取值为4、2、1。结合图分析可得到系数ph=KP*2-4,系数fr=Kf*2-12。

3.3 相位插值模块

本文设计的PI为7比特,一个UI范围内能插值27种不同的相位。下面提出PI的插值原理及各参数含义。

i:高两位选择(sel)四个象限,低五位(k)将每象限分割成32个区间,每个PI的精度=360o/27=2.8125°。

ii:设相差90°的正交时钟为I、Q,a(k)=k/25=0.03125*k为时钟I的权重值,0≤k≤25。

iii:ф(k)是PI代码为K时,插值后的时钟(clkIQ)相位,PI的线性度指标有微分非线性(DNL)和积分非线性(INL)。其中DNL=ф(k+1)-ф(k)-,INL=ф(k)-k*。

PI插值后的时钟:

clkIQ=a*I+(1-a)*Q (2)

根据以上提出的PI插值原理和公式(2)的算法,建立模型,输入信号分别为u(1)―u(7):u(1)=sel,u(2)=1-(0.03125*k+0.015625),u(3)=1-u(2),u(4)=clk0,u(5)=clk180,u(6)=clk90,u(7)=clk270。函数模块用如下所示的c语言程序实现。其中clk0/90/180/270是锁相环提供的参考时钟,CK0/1/2/3是PI插值后的四相位时钟。

4 仿真结果

在半速,全速,倍速模式下,CDR能够正常恢复1.25 Gb/s-6.25 Gb/s的数据。在半速模式下,测试结果如表1所示,不同ph值对应不同的确定性抖动、频差跟踪能力和抖动传输带宽。在抖动传输测试中,设置ph=1/4,在3.125 Gb/s数据中加入幅值为0.1UI的正弦抖动(Jitter),测试结果体现了CDR低通特性,取不同的ph和fr值,分别测得抖动传输带宽为2.3 MHz-10 MHz。

5 结束语

本文通过对6.25Gb/s时钟数据恢复电路进行MATLAB建模与仿真分析,确定了二阶数字滤波器的系数,为后续电路设计节省了大量的时间。最终对抖动传输带宽、确定性抖动和频差容忍进行折中,选定相位积分环路系数ph的值为1/2,1/4,1/8;频率积分环路系数fr的值为2-10,2-11,2-12。仿真结果表明,该CDR能恢复出1.25 Gb/s-6.25 Gb/s的数据,抖动传输带宽能实现2.3 MHz-10 MHz可调,确定性抖动为1-5,在半速模式下,频差容忍为3000ppm。

参考文献

[1]张长春,王志功,郭宇峰,施思.高速时钟与数据恢复电路技术研究[J].电路与系统学报,2011,17(3):60-65.

时钟电路范文第3篇

【关键词】日历时钟;MCU;单片机;DS1302

一、MCU日历时钟概述

时钟系统是微控制器(MCU)的一个重要部分,它产生的时钟信号要贯穿整个芯片。时钟系统设计得好坏关系到芯片能否正常工作。在工作频率较低的情况下,时钟系统可以通过综合产生,即用Verilog/VHDL语言描述电路,并用EDA工具进行综合。然而,用工具综合存在电路性能低、优化率不高的问题,不适合应用在各种高性能微处理器芯片上。而采用人工设计逻辑并手工输入电路图甚至物理版图的方式,能使设计的电路灵活,性能更好。基于这些考虑,设计了一个MCU时钟系统。

二、MCU时钟设计原理

MCU时钟采用89C51单片机来实现系统的控制。用按键实现对时钟的设置和调整,时钟芯片采用DS1302,频率可采用测周期法间接测得。日历时钟系统由以下几部分组成:时钟分频模块、计时模块、按键模块、显示模块、闹钟模块五部分。

1.时钟分频模块:

分频器电路将32768Hz的高频方波信号经32768次分频后得到1Hz的方波信号供秒计数器进行计数,分频器实际上也就是计数器。

2.计时模块:

时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器,而根据设计要求,时个位和时十位计数器为12进制计数器。

3.按键模块:

三个按键用来调时间的,按下K1年在闪烁,继续按K1分闪烁,不段地按K2 年、月、日、秒、分、时、周切换着闪烁,在某位闪时按下K2相应位加一,确认调整,按K3相应位减一。在K1按下以后才有调时的功能,如果K1没有按下,按别的键没有反映。这为了在加点按键功能留着用。

4.显示模块:

用夜晶显示器LCD12864来显示能够显示清晰,并且电路连接容易。

5.闹钟模块:

可以用单片机实现闹钟设置,或者在整点时报时。

三、MCU时钟硬件电路和系统软件设计

1.硬件电路设计

本设计以单片机AT89C51为控制核心,时钟分频模块、计时模块、按键模块、显示模块、闹钟模块五部分。可实现时间显示、闹钟设置、节假日提示、阴阳历转换、12/24小时转换等功能。闹钟模块采用蜂鸣器通过高低电平来控制闹钟的工作。实时时钟模块采用时钟芯片DS1302,可以进行时分秒的计数,具有100年日历,可编程接口,并且可以对其方便的进行程序控制,能很好的符合要求。此系统硬件简洁,将复杂的硬件功能用软件实现,因此系统控制灵活,能很好地满足本设计的基本要求和扩展要求。硬件电路图如图1所示:

图1 硬件电路图

硬件设计是整个系统的基础,要考虑的方方面面很多,除了实现此设计基本功能以外,主要还要考虑如下几个因素:

①系统稳定度;

②器件的通用性或易选购性;

③ 软件编程的易实现性;

④系统其它功能及性能指标;因此硬件设计至关重要。现从各功能模块的实现逐个进行分析探讨。

2.系统软件设计

为实现系统功能,系统软件共设七个运行状态和一个中断处理程序(SR)。各部分功能描述如下:

S1:时钟日期显示状态,89c51从ds1302读取时间日期值并显示,时间值与闹钟设置值比较,若定时到,则进入闹铃状态(S8);S2:时间设置状态。进行时间和日期的设置,写入ds1302中。S3:温度显示状态。S4:闹钟设置。显示选择菜单,可选择闹钟开、闹钟开、闹钟时间设置。S5:时制选择。按1键选择24小时时制,按2键选择12小时时制。S6:设置闹钟时间状态。S7:闹铃状态。接通音乐芯片。SR:中断服务程序。读取键盘按键值并根据系统所处的不同的状态设置标志位。

主程序流程图如图2所示:

图2 系统主程序流程图

3.系统调试

根据电路原理图连接好电路进行电路调试。检查各主要芯片的电源部分是否接好,以及有没有遗漏。根据所查芯片资料检查各芯片引脚连接是否正确。检查电路连接好后,关闭电源连接电源线准备调试。根据电路实现结果进行调试,调节电位器使夜晶显示屏显示正常。

四、结束语

时钟系统以89C51为核心部件,利用软件编程,通过键盘控制和液晶显示实现了时钟功能、闹钟功能,设计中能很好的显示时间和日期,通过按键的设置来调节闹钟,修改时间日期的显示以及时间格式的显示功能,另外还具节假日提示、12/24小时制的转换功能。在设计中尽量做到了硬件电路简单稳定,减小电磁干扰和其他环境干扰,充分发挥软件编程的优点,减小因元器件精度不够引起的误差。

参考文献

[1]武庆生,仇梅.单片机原理与应用[M].电子科技大学出版社,1998,12.

[2]朱定华.单片机原理与接口技术[M].电子工业出版社,2001,4.

时钟电路范文第4篇

关键字:约束设计;布局规划;时钟树设计

1芯片结构及物理实现流程介绍

该芯片主要由32位处理器、静态随机存储器、以太网MAC接口、SPI接口、USB1.1设备接口、USART同异步通信接口、SCI智能卡接口、片外存储器控制器等模块组成。该芯片具备高处理能力、低功耗等特点。其结构框图如图1所示。

我们采用以Magma工具为主,Mentor、Cadence、Synopsys工具为辅的工具套件来完成RTL2GDSII的整个后端流程,如图2所示。

逻辑实现阶段:用Magma Blast Rtl 来进行逻辑综合,综合完成后利用Mentor DFT进行扫描链的插入。

某算法模块在进行物理综合时,无论采取何种措施(包括优化宏模块位置,添加blockage,加大库单元的outline尺寸等),std cell 部分的Congestion都很严重,如图3所示。而采用Magma Blast Rtl进行逻辑综合,再采用Magma Talus Vortex来进行物理综合时,std cell部分的congestion可以消除。

物理实现阶段:用Magma Talus Vortex来进行布局规划和电源网络规划、物理综合、时钟树插入及布线工作。

在整个实现过程中,我们采用Magma工具内嵌的静态时序分析引擎和RC参数提取引擎来进行MMMC(Multi-Mode Multi-Corner,多模式多功能角)时序分析,参数提取,信号完整性的分析、避免和修复工作;使用Quartz Rail工具来进行功耗分析,以及包括电子迁移和电压降在内的电源完整性分析。

2时序约束设计

本SoC芯片时序约束设计的关键在于功耗管理控制模块的时序约束。

2.1 功耗管理控制(Power Management Controller, PMC)模块简介

整个设计中首先考虑的是PMC模块的约束。PMC模块是系统用来控制系统功耗的的控制器,可以通过寄存器配置,使SoC芯片在不同工作模式之间进行切换:Slow、Normal、Idle 和Sleep。这些工作模式可以让用户根据芯片不同的应用,通过动态地管理芯片内部各子模块的时钟源供给和系统的工作频率来控制芯片的整体功耗。另外,PMC 还包含了各个子模块的初粒度的时钟门控电路,通过寄存器配置可以集中控制、关闭不必要打开的模块,从而达到降低功耗的目的。模块具有以下性能指标:

内置锁相环、可动态变频;

支持Slow、Normal、Idle、Sleep等4种工作模式;

支持模块工作时钟集中控制策略,芯片各模块的时钟可以通过PMC来关闭和打开;

低功耗sleep模式下支持DRAM/SDRAM 的数据自刷新,使得DRAM 中的数据可以得到保持;

内部具有完整的reset 解决方案,提供3 种reset 选择:hard reset、soft reset、watchdog reset;

内部具有完整的唤醒功能。

PMC模块包含了异步时钟动态选择电路、同步时钟动态选择电路、时钟分频电路、时钟门控电路、跨时钟域电路,既存在输入时钟,又存在输出时钟,是一个与时钟高度相关、时序违例集中、时序分析较为复杂的电路。PMC模块的时钟生成电路结构示意图如图4所示。

系统时钟经过可配置参数的系统PLL和动态选择逻辑后分频(有1:1、1:2、1:3、1:4四种)。选择默认的2分频为CPU 提供时钟,动态选择默认的3分频为高速总线提供时钟,高速总线时钟通过分频后(有1:1、1:2、1:4、1:8四种),动态选择默认的2分频为低速总线提供时钟。

2.2 时序约束的一些策略

一个完整的时序约束文件包含时钟的创建、时钟的约束、输入输出端口的约束及时序违例等。SDC格式的约束可以采用丰富的语法表达出上述内容。而Magma后端工具可以比较容易地识别出该格式的约束。我们采用SDC v1.7格式编写时序约束,这样既能为后端实现工具blast、Talus识别,又能被静态时序分析工具PrimeTime识别。

首先根据设计规格要求确定时钟周期,在整个后端设计过程中的不同阶段加以调整和修改。为保守计,我们采取冗余设计,最终设定的周期值比规格要求的值更加严格。Clock latency和clock skew的设置也要根据实际的时钟树结构不断地进行调整和修改。最终合理的时序约束文件是经过反复地实验不断地修正而得到的。

复杂的时钟,复杂的功能模式,必然带来复杂的时序约束。对其正确、完备的约束施加,是保证后端设计时序分析和优化有效的关键所在。

而PMC模块的主要电路,如时钟门控电路、分频电路,动态选择电路等,采用例化的标准单元以网表的形式直接给出,在用Magma Blast Rtl进行逻辑综合前,将这些以网表形式存在的单元使用force keep命令,保证时序约束施加点的固定。

在Fix Time前设置时序约束时,采用的方法是3分频PLL后的源时钟作为高速总线上的时钟,低速总线时钟与高速总线时钟频率一致,这样在逻辑综合阶段时因为还没有真正的时钟树,而设置的约束又比较保守,使综合结果的时序有较大的冗余,又加快了综合的速度。

在时钟树优化时,采用MMMC来进行。我们仅以功耗模式中Normal模式里的两种在应用时较常用的时钟使用模式来设置MMMC:一种是3分频PLL后的源时钟作为高速总线上的时钟,低速总线时钟是高速总线时钟的2分频;另外一种模式是使用 1分频PLL后的源时钟作为高速总线时钟,低速总线时钟与高速总线时钟频率及PLL后的源时钟频率一致,此时低速总线时钟频率高于前一种模式下的时钟频率,达到低速总线上模块能达到的最高频率。其他模式仅用来分析及优化。这样可以有效加速时钟树创建的时间及分析效率。

在约束设计过程中,不可避免地会涉及到各种模式下时钟间异步关系的设置,我们采用SDC v1.7里面的set_clock_group命令来进行,该命令能有效地表征各个时钟之间的异步关系,避免了set_false_path繁琐的设置,并且能够被Magma Talus软件转换为force timing clockgroups命令。下面是该设计中的两个clock group设置的例子:

set_clock_group -name func_async_ck1 -logically_exclusive

-group [get_clocks "fck2_n"]

-group [get_clocks "hck3_n hck2anu3_n"]

-group [get_clocks "hck2anu4_n"]

set_clock_group -name func_async_ck2 -asynchronous

-group [get_clocks "usb_dev_ck"]

-group [get_clocks "usb_pll_ck"

另外分频时钟与源时钟关系的设置上,我们根据仿真波形来确定分频时钟与源时钟之间的相位关系,从而为create_generated_clock命令在-divide_by,-edges,-invert,-combinational间选择不同的选项,使分频时钟和源时钟之间的source latency关系很容易就能确定下来,简化了时序分析。 下面是该设计中几个分频时钟约束的例子:

create_generated_clock -name usb_dev_ck

-divide_by 4 -invert

-source [get_pins "…/OR2CLK_Inst/Z"]

-master_clock [get_clocks "pllout48m"] -add

[get_pins "…/clk_1x_reg/Q"]

create_generated_clock -name rngck8

-edges "7 15 23"

-source [get_pins "…/OR4CLK_Inst/Z"]

-master_clock [get_clocks "pck_n"] -add

[get_pins "…/CLK_CNT_reg[2]/Q"]

create_generated_clock -name pck8_n

-edges "3 11 19"

-source [get_pins "…/OR4CLK_Inst/Z"]

-master_clock [get_clocks "hck3_n"] -add

[get_pins "…/PCLK_DIV8_reg/Q"]

create_generated_clock -name hck_out

-combinational

-source [get_pins "…/OR2CLK_Inst/Z"]

-master_clock [get_clocks "hck3_n"] -add

[get_ports "hclk"]

2.3非时序逻辑时序弧(data-to-data timing arc)的处理

SoC中使用到的EE模块是一个异步IP,时序模型存在非时序逻辑的时序弧(non-sequential library arc,也即data-to-data timing arc):输入的数据或控制信号与输入pin――CEN、WEN之间有data-to-data 的时序弧存在、其中的控制信号CHER、CHWR、ER_ONLY、WR_ONLY与输出pin――READY之间也存在着data-to-data 的时序弧。综合工具并不区分时序逻辑与非时序逻辑的时序弧,只要设计中有时序弧的单元存在,综合工具就认为应该在相应pin脚设置时钟,因此在综合的过程中会认为在CEN、WEN、READY这几个信号pin应设置时钟。如果不设置,在综合过程中,综合工具的时序分析引擎是报不出任何经过或到CEN、WEN、READY的路径。而一旦设置为时钟,就会产生很多false path。我们最后的做法是不在逻辑综合阶段将其设为时钟,而是将该问题留到时钟树优化时,使用config timing check data_to_data on 将data-to-data check选项打开,并使用force timing check命令约束相应的时序关系。

3布局规划

该设计采用flatten的方式进行布局规划,使用2P/6MEE工艺,包含Hard Macros 94个,共占面积50.3 mm2。其中有13种81个由memory compiler生成的memory、7个定制模拟/数模混合模块、2个PLL以及其它IP模块。为两个同为1.8 V相互隔离的电压域创建两个floorplan,并使用polygon相关的命令为primary flloorplan创建多边形形状。另外,以data create cluster region命令将PMC模块中除PLL部分外的其他逻辑以region的形式固定到布局的中央位置。

在IO布局上,除了由memory compiler生成的memory IP不需单独供电,其余宏模块均需单独供电,其中为RTC供电定制的电源切换模块所需的电源PAD的隔离还更加复杂。

由于需要单独供电的模拟/数模混合模块较多,电源域较多,在布局规划阶段就确定了各模拟/数模混合模块在芯片中的大致位置及其供电pad在pad环上的顺序。

7个定制的模拟/数模混合模块及2个PLL均位于pad环和电源环之间;位于内部的存储器模块和CPU core由于数量众多,其位置的摆放首先考虑的是固定几个尺寸较大的IP模块的位置,并使用force plan clearance添加blockage;然后使用Magma Talus Vortex中的run place cluster命令来自动摆放余下较小存储器,确定初步的布局规划,而后微调各存储器的相对位置,做到规则规整,控制各个存储器模块之间的布线通道的布局利用率,在较窄的地方不允许任何标准单元摆放,在一些较宽的布线通道我们设置了50%-100%不等的blockage利用率。最后的布局规划如图5所示。

4时钟树设计

时钟树设计的内容包括时钟树约束的设置、MMMC、OCV(On Chip Variation)及 CPPR (Clock Path Pessimism Removal,或称 Clock Reconvergence Pessimism Removal)的考虑等。

本芯片时钟树设计的难点在于基于latch的时钟门控单元、时钟分频电路以及动态选择电路带来的时钟树平衡问题而导致的时钟树约束的复杂性。

4.1 分离时钟门控单元的时钟树约束

由于PMC模块中存在大量的由latch和and标准单元构成的非集成的时钟门控单元,latch的D端具有endpoint属性,如果不做特殊处理,在时钟树生成时会与其它具有endpoint属性的触发器、锁存器一起进行平衡。这不是我们想要的结果,我们想要的平衡是把latch和and一起构成的时钟门控单元看成一个组合门电路,仅需要其后的触发器和其它没有受时钟门控控制的触发器一起进行平衡,而将latch排除在外。如图6所示。

为了达到上述目的,我们将分离分控时钟的latch和and置于一个skew group之内,并将and门的时钟输入端设置为skew anchor。以下面的SoC芯片中的一个分离门控时钟电路为例,约束如下:

force plan clock $m -pin "

.../PmcHCLKGate_Inst/i_latch/GN

.../PmcHCLKGate_Inst/i_and/A" -skew_group 49

force plan clock $m -pin

.../PmcHCLKGate_Inst/i_and/A -skew_anchor

4.2 分频电路时钟树约束

SoC芯片的PMC模块中分频时钟之间,以及分频时钟和源时钟之间,存在非例外的时钟路径,因此,我们将分频电路时钟域和未分频电路时钟域内的触发器置于一个skew group之内。分频电路本身由于是孤立的逻辑,与其它功能逻辑电路的触发器之间在逻辑上不存在有效数据路径,因此可以单独做成一个skew group。但由于它处于分频时钟域路径上,为使置于同一skew group之内的分频时钟域和源时钟域内的触发器之间的skew在规定的范围内,必须控制分频电路的时钟路径,如图7所示。

我们以某三分频电路为例,下面的命令是对其时钟树创建时的相关约束:

force plan clock $m -pin "

…/PmcFHClkDiv3/QQ_reg[0]/CK

…/PmcFHClkDiv3/QQ_reg[1]/CK"-skew_group 54

force plan clock $m -pin "

…/PmcFHClkDiv3/QQ_reg[1]/CK" -skew_anchor

force plan clock $m -pin "

…/PmcFHClkDiv3/DQ_reg/CKN

…/PmcFHClkDiv3/OR2CLK_Inst/A" -skew _group 55

force plan clock $m -pin

…/PmcFHClkDiv3/OR2CLK_Inst/A -skew _anchor

4.3 动态时钟选择电路的时钟树约束

另外,PMC模块中使用动态时钟选择电路用来消除异步时钟间及同步时钟间动态切换过程中的毛刺,其中动态异步时钟选择电路结构如图8所示。

同样,我们针对该电路也做了如下约束:

force plan clock $m -pin "

…/PmcSysClkSel_Inst/AND_Inst1/B

…/PmcSysClkSel_Inst/Q1_reg/CK

…/PmcSysClkSel_Inst/Q3_reg/CK"-skew_group 1

force plan clock $m -pin "

…/PmcSysClkSel_Inst/AND_Inst2/B

…/PmcSysClkSel_Inst/Q2_reg/CK

…/PmcSysClkSel_Inst/Q4_reg/CK"-skew_group 2

5总结

在本文中,我们介绍了一种SoC芯片架构,探讨了在0.18μm CMOS工艺上以Magma Talus为主导EDA工具的物理实现中的3个难点问题:时序约束设计、布局规划以及时钟树约束设计。鉴于篇幅限制,其它在本SoC物理实现过程中涉及到的诸如信号完整性问题分析与避免、电源完整性分析与避免、与signoff工具间参数相关性的设置、ECO、模拟及数模混合模块建模及其在Magma Talus数字流程中的运用等方面在本文中未能涉及。

该SoC芯片包含41个时钟域,4种低功耗工作模式,2个相互隔离的1.8 V内部电源域,约有65万个标准单元,94个宏模块,250个pad,合计约900万个逻辑等效门,3600万个晶体管,芯片面积10.5 mm×10.5 mm。

该芯片既有多个复杂的数字算法电路,也有多个定制的模拟/数模混合模块,宏模块众多,布局规划和电源规划较为复杂;在前仿真验证过程中方面,功能bug,性能不达标等问题,使RTL迟迟不能冻结,给后端留下的时间不多。我们借助Magma公司Talus软件在后端实现方面的强大能力,集中时间攻关,解决了复杂时序约束、大规模宏模块情况下布线拥塞的技术、多电压域下的电源规划技术以及复杂时钟树设计等难题,节省了大量的后端运行时间和手工工作,同时也实现了较好的时序、面积结果。

时钟电路范文第5篇

关键词: 串并转换; 并串转换; VHDL; FPGA

中图分类号: TN919⁃34; TP391文献标识码: A文章编号: 1004⁃373X(2014)08⁃0151⁃02

Design of high⁃speed serial parallel / parallel serial converter based on FPGA

SUN Zhi⁃xiong, XIE Hai⁃xia

( College of Electronics and Information Engineering , Qiongzhou University, Sanya 572022, China)

ABSTRACT:In data transmission of digital communications, the majority of communication data is transmited in serial mode, but data storage and processing of most processors are required in parallel, so a serial to parallel or parallel to serial converter is needed to transform data serial transmission into parallel transmission, or transform data parallel transmission into serial transmission. The basic principles of serial parallel and parallel serial converters are introduced in this paper. The serial parallel and parallel serial converters was verified with VHDL language on Quartus II. The design of the serial parallel and parallel serial converter was implemented with The programming data files downloaded to FPGA chip EP1K30QC208⁃2. The simulation and experiment results indicate that this design scheme is feasible.

Keywords: serial parallel conversion; parallel serial conversion; VHDL; FPGA

随着信息技术的高速发展与通信方式的多样化,为了满足数据通信的需要,出现了各种各样的电子通信设备,这些电子通信设备中的数据传输有并行和串行传输。这样在数据传输过程中,就需要将串行传输的数据变换成并行传输,或者将并行传输的数据变换成串行传输,这时就需要串并/并串转换器。串并/并串转换器实现串并转换和并串转换的功能。串并转换是在时钟驱动下,将单比特的位数据流输入寄存器,并依次逐位移动,直到寄存器满了为止,然后直接读取并行输出。并串转换是载入并行的数据,在同步信号为有效电平时,寄存器内的数据被逐位移出。一般实现串并、并串转换的功能可用数字电路的移位寄存器、数据选择器等集成电路完成,但是其不利于扩展。本文通过VHDL语言编程与原理图设计相结合,通过现场可编程门阵列FPGA进行实现,对改变串并转换的数据位宽、数据存储与处理等都比较方便,也便于对电路进行改进与扩展[1⁃6]。

1串并转换电路设计及仿真

在串并转换电路设计中,设输入数据为8 b位宽,由输入端输入到串并转换电路中,将其转换为连续并行输出且位宽为16 b的数据流,见图1。其中的模块均为基于VHDL语言设计的电路符号,freqdiv为时钟的分频电路,对输入时钟clock进行2分频。lpm_ff0为8bit位宽的D触发器,lpm_ff1为16 b位宽的D触发器。图2为串并转换的仿真图,其中clock为输入时钟信号,在串并转换电路中,由于输出数据位宽16 b是输入数据位宽8 b的2倍,因此数据的输入时钟频率和输出时钟的频率之比为2∶1,这就需要分频器模块freqdiv对输入时钟进行2分频。在输入时钟clock的上升沿对输入数据data进行操作,第一个lpm_ff0的输出为qo[15..8],是输入数据data[7..0]延时一个时钟周期的输出,第二个lpm_ff0的输出为qo[7..0],是输入数据data[7..0]延时两个时钟周期的输出,这两个D触发器的输出并置后,就组成了位宽为16bit的输出数据qo[15..0]。模块lpm_ff1为16bit位宽的D触发器,它的工作时钟是输入时钟clock的1/2,在时钟的上升沿,对数据qo[15..0]进行触发输出,得到串并转换后的输出数据q[15..0],从仿真图(见图2)可看出其实现了串并转换的功能[7⁃8]。

图1 串并转换电路的结构

图2 串并转换的仿真图

2并串转换电路设计及仿真

并串转换电路是在输入时钟的作用下,将16 b位宽的输入数据转换为连续输出的8bit位宽的串行数据输出。其电路结构见图3,其中lpm_mux0为二选一的数据选择器,工作时钟为clock,模块lpm_counter为计数器,工作时钟为输入时钟clock的两倍。

图3 并串转换电路结构图

图4为并串转换电路的仿真图,clock为输入时钟,data为位宽为16 b的输入数据,clk_en为计数器使能端,当其为高电平时进行并串转换,q为并串转换的输出,从仿真图可以看出其实现了并串转换的功能。

3串并/并串转换电路总体设计与仿真

将串并转换电路和并串转换电路两个模块连接起来,就可以实现串并/并串转换电路。在串并/并串转换电路的整体设计中,首先是数据的输入,对于不同的数据格式将进行不同转换。如果输入的数据为串行数据,将进入串并转换模块,将串行数据转换成并行数据输出。如果输入的数据为并行数据,将进入并串转换模块,将并行数据转换成串行数据输出。图5为是串并转换电路和并串转换电路总体电路,其中stp为串并转换电路模块,pts为并串转换电路模块。

图4 并串转换的仿真图

图5 串并/并串转换电路总体结构图

图6为串并/并串转换电路总体仿真图,clock为输入时钟,data为位宽为8 b的输入数据,clk_en为计数器使能端,当其为高电平时进行并串转换,po为串并转换的输出,q为串并转换和并串转换后的输出,从仿真图可以看出其实现了串并/并串转换的功能。

图6 串并/并串转换电路总体仿真图

4结语

串并转换和并串转换在很多电路系统中都有广泛的应用,而基于VHDL硬件描述语言设计,FPGA可编程实现的方法,具有设计周期短、速度快、可靠性高、方便修改及易于大规模集成的优点。

参考文献

[1] 仲建锋,胡庆生,孙远.基于FPGA的多路高速串并转换器设计[J].电子器件,2008(2):657⁃660.

[2] 焦键,郑雪娇.基于VHDL的16位串入串出移位寄存器设计[J].科技信息,2011(16):612.

[3] 景兴红,刘陈,王泽芳.基于VHDL的移位寄存器设计[J].科学咨询(科技・管理),2011(9):78⁃80.

[4] 胡远望,廖冬初.基于VHDL的高速串行AD转换器控制设计与实现[J].常州信息职业技术学院学报,2007(1):28⁃31.

[5] 伊鑫,黄利彬,吴克启.基于PLD与VHDL的多路输入多路输出数据选择器的设计[J].信息化研究,2010,36(9):43⁃45.

[6] 季晓松,李正生.一种基于CPLD的串行码发生器设计[J].电子测量技术,2010,33(9):70⁃72.

时钟电路范文第6篇

其中定时器0和定时器1的组成基本一致,以5个触发器(其中4个触发器处理正常计数功能,一个触发器处理进位、置数使能)作为“定时单元”。4个“定时单元”构成16位定时器,通过对“定时单元”定时过程中置数使能的产生和置数值的设定来设置不同的定时状态(如十进制定时则“定时单元”在从9减到0这个过程的下一个时钟周期为置数周期,产生置数使能信号,同时置数值设定为1001:而如果是六进制定时则“定时单元”在从5减到O这个过程的下一个时钟周期为置数周期,产生置数使能信号,同时置数值设定为0110。其他进制的定时过程同理)。通过对4个定时单元的不同设置,可产生全十进制定时方式,二进制定时方式,六十进制定时方式(应用于北京时间的分、秒处理)、二十四进制定时方式(应用于北京时间的小时处理)、三十进制定时方式(应用于北京时间的目处理,因为没有“0天”这种说法,故该处理需要在定时单元的结构上增加一个判定)。

在此结构上,如果需要增加新的定时进制处理,只需要对置数rom逻辑进行增加即可。

定时器T2的设计是针对北京时间二进制表示的定时设计,同时具备基本的二进制定时。它主要处理北京时间小时级及小时以上的数据处理。做为基本二进制定时时,它可单独使用、也可以与定时器T0和定时器T1做级联使用。当它需要处理北京时间二进制表示高位信息处理时,和定时器T1组成32位定时器,定时器l处理“秒”、“分”信息,定时器T2处理“小时”、“天”“月”“年”数据。T2+T1的级联方式,主要用于处理从某一时刻到另一时刻的定时方式。

精度控制

电路提供两种可选择时钟源输入:内部集成硅振荡器和外部晶体振荡器输入。电路设计了两种精度控制方法,其一是时基脚准,时基校准就是解决因定时时钟误差引起的定时累计误差的办法。如果我们能得到一个精确的定时时钟,则没有这部分定时误差。但是不管怎么样的校准,始终是无法得到一个完全精确的定时时钟的,我们要做的是最大可能的得到一个精确定时时钟。

其二是定时校正,指在定时过程中,电路根据设定的某一固定值对定时过程进行校正或者接受外部校正信号对定时过程进行校正。这一方法旨在解决引非时钟误差问题引起的定时误差。同时,该校正方法也可以用于解决因时钟规律性偏差所引起的误差问题,比如时钟的温度漂移偏差问题。

硅振荡器的精度调整方法总的来说有两种:模拟方法和数字方法。模拟调整方法主要是在电路中测过程对电路中的电容阵列进行熔丝处理,调整电容值大小,得到一个较为精确的时钟,但是这种方法需要很大的成本,并且调整后的精度范围为1%左右,如果要得到更高精度的硅振荡器,则需要付出更大的成本,并且给电路设计带来很大的挑战。本电路提供一种更高精度的数字调整方法,该方法可以在电路正常工作前对电路进行在线校准,也可以在测试过程中对批电路进行一次性校准。

本电路的时基校准方法是通过外部端口输入标准S12ms时间长度,以振荡器输出频率对512ms时间进行采样计数,得出一个计数值。然后把该计数值除以512,得到商值和余数。商值做为1ms时钟的基本长度,然后通过判断再次基本长度上增加或者不增加1个计数脉冲来得到最终的1ms时钟信号,这样每一个1ms输出时钟最大误差为1T(硅振荡器输出时钟周期),而s12ms时间最大误差也为1T。上述判断过程以512位周期,即每一个512ms对商和余数做同样的处理。

那么,在不考虑温度等条件的情况下,以该方案得到的时钟进行Nms(N=512X+Y,x=0,1,2,3,……;0≤Y≤5lI)时间长度定时,最大误差为(X+Y/4),T。我们通过分析,可以得出以下几句数据:

438s时间长度定时误差为103T(T为内建振荡器输出时钟周期,当设计值为1us时,此时的定时精度约为2ppm)。

82m时间长度定时误差为104T(T为内建振荡器输出时钟周期,当设计值为1us时,此时的定时精度约为2ppm)。

142h时间长度定时误差为106T(T为内建振荡器输出时钟周期,当设计值为1us时,此时的定时精度约为2ppm)。

在不考虑硅振荡器的温度特性条件下,利用本方法产生时钟进行的定时精度为2ppm,可以等同于压控制式晶体振荡器频率精度的10-6~10-5量级。

本电路给出的定时校正方法主要是用以解决定时过程中因外部环境所引起的定时偏差,或者解决因控制需要而改变定时时间长度的问题。电路在定时过程中,接受外部信号,对定时过程进行实时校正。

图4为定时器的结构示意图,以减计数器为核心,同时接受定时数据和修正数据。定时数据做为减计数器的定时起点,而修正数据主要是用来对进入定时器的定时时钟进行调整。定时器的修正功能模块可以保证,在任何一时刻,处理一帧数据,缓存一帧数据,让进入修正模块处理的数据完成后,缓存器中的数据立刻进入修正模块,而修正总线上的数据进入缓存器。

修正方法是根据外部修正数据的符号位进行增减判断,如果是增长定时过程N个时钟周期,则,在对定时时钟进行N个时钟周期的上升沿磨平处理;如果是缩短N个时钟周期,则在N个时钟周期内,定时器进入双沿触发定时过程。

图5为定时修正波形图,从ADJUST端口输入具体修正时间,图中第一帧为定时增长7个时钟周期,第二帧为定时缩短7个时钟周期。CLKIN为定时时钟,CLKOUT为修正后时钟。T0counter[15:0]为定时器的数据。

功耗考虑

根据电路的工作状态,可以把电路分为配置工作状态和定时状态。任意工作状态下,并非所有的模块都处于工作状态下。在设计模块间接口信号时,同时设计模块电源控制信号。在进行配置工作状态下,通信模块和储存单元处于工作状态,而整个定时处理工作模块处于等待状态。在这段时间,定时处理工作模块一直处于清零状态,而且对定时器时钟信号进行锁定不工作。当处于定时状态下,大部分的通信模块及存储单元不会发生数据变化,此时可以关断EEPROM的参考电流源来降低电路功耗。

时钟电路范文第7篇

关键词: 信号发生器; 分频技术; 脉冲信号; FPGA; DDS

中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2016)13?0072?05

Abstract: To obtain different modulating and driving signals suiting for optical fiber sensing and optical fiber communication system, a design scheme of the multipurpose signal generator based on FPGA is proposed. In the scheme, the FPGA device is taken as the hardware platform, and the frequency division technology and DDS technology are used to generate the arbitrary low and medium frequency signal, and output a pulse signal, a DDS signal and DC signal at the same time. Both pulse width and repetition frequency of the pulse signal can be regulated by control keys. The minimum pulse width of pulse signal can reach up to 8 ns, the minimun pulse width deviation is less than 0.5 ns, and the repetition frequency is adjusted from 0.05 Hz to 100 MHz. The output frequency range of the DDS signal is 0.058 2 Hz~100 kHz, and the minimum frequency can reach up to 0.058 2 Hz. The experimental results show that all signals generated by the signal generator have good stability and high precision, and the generator is suitable for various fields.

Keywords: signal generator; frequency division technology; pulse signal; FPGA; DDS

0 引 言

在光纤传感与光纤通信技术中,常需要对在光纤中传输的光载波信号做相应的调制处理以便能在信号接收端接收到按一定规律变化的光信号,以便有利于在信号接收端容易进行信号解调。例如,在分布式光纤传感技术中,常需要在AOM或EOM的射频端加载脉冲调制信号对窄线宽激光器输出的连续激光做脉冲宽度调制以便获得脉冲激励光信号[1?2];此外,在光纤通信领域的信道监测技术中,常需要在发射机发出的信号上叠加一个小幅度的低频正弦信号作为标记,对于不同的信道采用不同的调制频率,通过在各中继端检测不同频率的调制信号辨别相应光信号的功率电平变化[3?4]。

然而,无论是对在光纤中传输的光载波做相应的信号调制处理,还是对相关的调制器加载驱动信号以使调制器正常工作,都必须解决调制信号和驱动信号的产生问题,尤其是产生稳定性好、高精度以及频率和幅度等参数可调的各种脉冲信号、正弦信号、锯齿波和方波等调制和驱动信号,对在信号接收端做信号的接收、转换与解调处理至关重要。而传统的信号发生设备往往功能单一、可产生的信号类型少或者仪器体积大而笨重且价格昂贵、使用环境受限制。鉴于近年来蓬勃发展的FPGA器件具有低成本、高度集成化与小型化、灵活的接口方式和控制方式、高速的运算能力和高性能等优势,采用FPGA为硬件平台,借助Quartus Ⅱ开发软件和Verilog HDL硬件描述语言设计信号发生器更显灵活和方便,且可用于多种工作场合,同时也缩减了相应仪器的体积和成本[5?6]。

1 多功能信号发生器的总体设计

该多功能信号发生器是基于FPGA设计的,以Altera公司生产的CYCLONEⅣE系列 EP4CE15F17C8芯片为设计核心,在QuartusⅡ13.0开发环境下采用Verilog HDL硬件描述语言编写模块化程序设计和实现各模块化电路。信号发生器的基本功能是能够产生任意中低频调制信号和驱动信号,并能同时输出一种脉冲信号和一种DDS信号及直流信号,脉冲信号的类型、重复频率、脉冲宽度和DDS信号的类型、输出频率、相位、幅值以及是否产生并输出直流信号都可通过键控方式调节。设计方案中同时应用分频技术和DDS技术可产生单脉冲信号、双脉冲信号、直流信号及各种形式的DDS信号,脉冲信号的脉冲宽度能分别以4 ns和5 ns为最小步进量进行键控调节;直流信号则通过让FPGA的外部引脚按实际需要持续输出高电平获得,并通过外接可调放大电路对直流电压信号进行幅值调节;DDS信号则通过外接12位D/A转换器和低通滤波器进行D/A转换和滤波处理后输出模拟波形。多功能信号发生器的结构框图如图1所示。

2 主要组成电路

该信号发生器主要由晶振单元电路、PLL倍频电路、键控模块、直流信号产生电路、脉冲信号产生电路、DDS信号发生模块以及外接的直流信号滤波放大电路、脉冲信号滤波放大电路、D/A转换器和低通滤波器构成,其中PLL倍频电路、键控模块、直流信号产生电路、脉冲信号产生电路、DDS信号发生模块及D/A转换器的驱动电路是基于FPGA设计的。

2.1 PLL倍频电路

为了达到设计要求和设计目标,以FPGA开发板上的晶振电路输出的50 MHz时钟信号为基准时钟,在QuartusⅡ13.0开发环境下编程设计PLL倍频电路模块,并调用PLL宏功能模块进行倍频参数设置,实验中对50 MHz的晶振时钟信号同时做4倍频和5倍频处理以便同时获得200 MHz和250 MHz的参考时钟信号,对其做时序约束处理后将250 MHz的倍频时钟信号同时作为键控模块、直流信号产生电路、DDS信号发生模块和D/A转换器的参考输入时钟信号,而将250 MHz和200 MHz两个倍频时钟信号同时作为脉冲信号产生电路的输入时钟信号,其对应的最小时钟周期分别为4 ns和5 ns。

2.2 键控模块

键控模块主要包括按键滤抖电路和按键编码电路,其目的是对FPGA开发板上的按键资源进行抖动消除和按键的功能编码,以便能通过按键对FPGA输出的脉冲信号和DDS信号进行各参数的调节控制,以及控制直流信号产生电路是否产生并输出直流信号。按键滤抖电路以PLL倍频电路输出的250 MHz倍频时钟信号作为输入参考时钟,并以计数器对该参考时钟信号的时钟周期进行计数延时的方式完成按键的抖动滤除。各按键滤抖后再对其进行功能编码,使各按键在单击时分别调节DDS信号的波形、输出频率、相位和幅值参数及直流信号的产生与输出,按键长按时调节脉冲信号的类型、脉冲宽度和重复频率。

2.3 直流信号产生电路及其放大电路

PLL倍频电路输出的250 MHz倍频信号用作直流信号产生电路的参考输入时钟信号,在此倍频时钟信号的作用下,被指定的FPGA输出管脚在直流信号控制键允许输出直流电压信号的状态下将会连续地输出逻辑高电平,从而将FPGA内部集成电路的3.3 V?LVTTL电平信号转换成稳定的直流电压信号输出,通过外接可调放大电路对此直流电压信号进行电压幅值的连续调节。直流信号放大电路选用ADI公司的低噪声、低漂移、高精度OP37G集成运放芯片,采用±18 V直流电源供电,采用同相比例放大电路对FPGA输出的直流电压信号进行放大。直流信号放大电路的电路原理图如图2所示。

由式(4)可知,调节的阻值便可改变直流电压的放大倍数,调节的阻值亦可改变输出直流电压的幅度。实验中采用±18 V直流电源电压供电时,运放电路实际输出的直流电压值为0~16 V可调。在直流放大电路输出端设置固定电阻和可调电阻不仅在同相放大电路中实现了输出电压从零到最大值全域可调的目的,同时也能在运放电路的输出端起到限流及分压的作用。

2.4 脉冲信号产生电路

脉冲信号产生电路以PLL倍频电路输出的250 MHz和200 MHz两路倍频时钟信号同时作为输入参考时钟信号,采用分频技术对两路参考时钟信号进行分频,以获得重复频率和脉冲宽度均可键控调节的单脉冲信号及重复频率、双脉冲宽度与双脉冲间距均可键控调节的双脉冲信号。分频技术的核心是利用计数器对参考时钟信号的时钟周期进行计数,使分频电路按实际需要的重复频率和脉冲宽度输出相应的高电平。单脉冲信号的脉冲宽度通过下式确定:

式中:与同式(5);为分频计数器的初始计数值;为脉冲信号的重复频率调节参数且为整数且为自然数,重复频率的最小步进量与和有关,越大且越小,则重复频率的最小步进量越小,重复频率的单位为MHz。在确定时,当取时,重复频率向逐渐增大的趋势调节,当取时,重复频率向逐渐减小的趋势调节。

对于双脉冲信号的获取,当倍频系数取5时,同时采用两个计数器对250 MHz倍频信号的时钟周期进行计数并输出两路单脉冲信号,其中一个计数器在倍频时钟的上升沿开始计数,另一个计数器则在倍频时钟的下降沿开始计数,使两个计数器的计数周期相同但让两路单脉冲信号在不同的时钟位置处输出高电平且两路单脉冲信号的脉宽相同,再将两路单脉冲信号进行或逻辑运算;当倍频系数取4时,只用一个计数器对倍频信号的时钟周期进行计数,并使其在两个不同的时钟位置处输出高电平并让两个高电平所占的时钟周期相等,对两个不同倍频系数的倍频时钟信号的切换则通过按键控制实现。实验中为保证脉冲信号具有较高的保真度[7?8],双脉冲信号的两个近邻单脉冲之间的时间间隔需不低于10 ns且可调节。双脉冲信号的两个近邻单脉冲宽度同样可由式(5)确定,而二者之间的时间间隔则由下式确定:

式中:参数同式(5);为双脉冲信号的两个近邻单脉冲之间的间距调节次数;的单位为ns,其最小步进量依而定,分别为4 ns和5 ns。双脉冲信号的远邻重复频率同样可由式(5)确定。

经过FPGA管脚直接输出的脉冲信号在未做信号处理时,往往伴随有超限噪声、下过冲和振铃[9],且脉冲信号的幅值通常较小,常常不能直接将其用作调制信号,因此,需要对脉冲信号进行滤波和放大处理。实验中选用TI公司的THS3001C运放芯片设计脉冲信号放大电路,它是一款-3 dB带宽为420 MHz、具有6 500 V/μs的电压转换速率、差分增益误差低于0.01%的高精度、高速和大带宽的电流负反馈式运算放大芯片,经过以此芯片为核心设计的信号滤波放大电路处理后,脉冲信号的超限噪声、下过冲及振铃均可被有效抑制,且脉冲信号的峰值将被适当放大以满足使用要求。

2.5 DDS信号发生模块

2.5.1 DDS的基本原理

DDS信号发生模块是基于直接数字频率合成技术(Direct Digital Frequency Synthesis,DDS),利用全数字的方法先产生和频率相对应的波形相位量化序列,再完成相位到幅度的转换,对DDS信号发生模块输出的数据进行D/A转换并由低通滤波器滤波后输出期望的模拟波形[10?11]。

DDS信号发生模块主要由位的相位累加器、相位调整器、波形选择器、ROM波形存储表和乘法器构成,其中,DDS信号发生模块以相位累加器为核心,用于接收频率控制字及反馈值并完成相位累加运算,它由位的加法器和位的寄存器构成[12?13]。DDS信号发生模块的结构示意图如图3所示。

2.5.2 DDS信号发生模块的工作过程

相位累加器的加法器接收到当前参考时钟作用下的频率控制字时,将其与相位累加器在上一个参考时钟作用下产生并输出的相位数据进行累加运算,在参考时钟作用下,运算结果一方面被再次反馈到相位累加器的加法器输入端用作下一个参考时钟周期下的相位数据输入量继续和频率控制字做线性累加,相位累加器加满时便产生一次溢出形成一个周期,此周期就是DDS合成信号的一个周期。另一方面,相位累加器每次输出的运算结果也将作为相位调整器的输入量之一,当有相位调整字输入相位调整器时,相位调整器将二者进行加法运算并截取其运算结果的高位作为ROM波形表的取样地址,每个ROM波形存储表中存有一个完整波形的幅值信息,因此,通过地址寻址方式对ROM表进行查表即可从ROM波形数据表中读出相应的波形数据,从而完成波形相位到幅值的转换,通过D/A转换器对读出的波形数据进行数模转换后输出阶梯波形,为提高模拟信号波形的幅度精度,实验中选用TI公司的12位宽的TLV5618芯片,其波形幅度分辨率可达D/A转换器输出的阶梯波形经过低通滤波器平滑滤波输出期望的模拟波形。

2.5.3 DDS信号的频率扫描

相位累加器将接收到的相位增量作为步长进行相位的线性累加,而相位增量的量化值又决定了DDS信号的输出频率,因此,相位增量也被称作DDS信号的频率控制字,频率控制字和DDS信号的输出频率之间呈简单的线性关系:

式中为DDS信号的最小输出频率,即频率分辨率,因此,实验中DDS信号的最小输出频率可达0.058 2 Hz。DDS信号的输出频率通过键控模块中的频率控制键进行调节。

2.5.4 DDS信号相位、波形及幅值的改变

DDS信号输出相位的改变通过位的相位调整器实现,相位调整器将位相位累加器输出的高位数据和输入的位相位控制字做加法运算,再将此运算结果重新作为ROM波形存储表的采样地址对ROM波形存储表进行查找即可;DDS信号波形的切换则通过编写程序设计状态机的方式在ROM查找表的前面设置一个波形选择器即可实现;对波形幅值的改变则通过在ROM查找表后设置一个乘法器,对ROM表中读出的波形数据按比例做行缩减即可实现。

3 实验结果

4 结 语

本文以FPGA为硬件平台设计多用途信号发生器,不仅设计方式更为灵活,结合分频技术和DDS技术可同时输出直流信号和一种脉宽及重复频率可调的脉冲信号以及一种波形、相位、频率及幅值均可调的DDS信号,该信号发生器输出的各种信号稳定可靠、精度高,尤其适合在光纤传感及光纤通信系统中作为调制信号及驱动信号使用,且可用于多种工作场合,同时也缩减了相应仪器的体积和成本。

注:本文通讯作者为万生鹏。

参考文献

[1] 胡佳成,陈福昌,林尊琪.基于布里渊光时域反射的分布式光纤传感入侵定位检测系统[J].光电子・激光,2012,23(5):944?949.

[2] 张旭苹.全分布式光纤传感技术[M].北京:科学出版社,2013.

[3] 杨东,蒋华勤.WDM在光纤通信实验中的设计与实现[J].实验室研究与探索,2014,33(6):36?39.

[4] 杨英杰,赵小兰.光纤通信原理及应用[M].北京:电子工业出版社,2011.

[5] ATHANAS P, CUMPLIDO R, FEREGRINO?URIBE C, et al. Introduction to special issue on FPGA devices and applications [J]. Microprocessors and microsystems, 2014, 38(8): 843?844.

[6] 杨海钢,孙嘉斌,王慰.FPGA器件设计技术发展综述[J].电子与信息学报,2010,32(3):714?723.

[7] 郭利文,邓月明,莫晓山.FPGA/CPLD的管脚设置对信号完整性的影响分析研究[J].现代电子技术,2015,38(17):61?64.

[8] ZHANG H Q, KROOSWYK S, OU J. PCB design for signal integrity [M]// MITZNER K. High speed digital design. Amsterdam: Elsevier, 2015: 27?39.

[9] 佟星元,朱樟明,杨银堂,等.信号完整性设计中的抖动与振铃消除技术[J].西安电子科技大学学报(自然科学版),2012,39(6):136?140.

[10] 杨东霞,巨永锋.基于FPGA和DDS的数字调制信号发生器设计与实现[J].电子设计工程,2013,21(6):90?93.

[11] SHI Yanbin, GUO Jian, CUI Ning. High precision digital frequency signal source based on FPGA [J]. Physics procedia, 2012, 25(27): 1342?1347.

时钟电路范文第8篇

关键词:MPC8640; LRM;RapidIO交换;以太网交换

中图分类号:TP273 文献标识码:A 文章编号:1009-3044(2014)20-4922-04

Hardware Design of General-purpose Processing Module Based on MPC8640 Processor

ZHOU Hong, SHEN-hua

(Aeronautical Computing Technique Reaearch Institute,Xi’an 710119,China)

Abstract: High-performance processor is an aspect of modern avionics and applied in more and more application. This document describes the hardware design of general-purpose processing module based on MPC8640 processor. The module is constructed by four high-performance processors .Each of them has large capacitance main memory, Flash memory , NVRAM memory and high-speed serial bus interface. Four processors connect to each other with the RapidIO technology. Besides, module also supports board ethernet-switch function.

Key words: MPC8640; LRM; RapidIO Switch; Ethernet-switch

随着微电子水平的迅速发展,处理器的性能成指数级上升。当前,主流嵌入式处理器已经达到GIPS的处理能力,运用也越来越广泛。该文介绍一种基于MPC8640处理器的通用处理模块的硬件设计。该模块运用于航空电子系统,采用标准化、通用化的设计思路。由于采用现场可更换模块(Line Replace Module,LRM)结构,使得模块的维护非常便捷。

1 模块系统结构

通用处理模块(简称模块)应用于机载电子设备中,其使用领域必须具备可靠性高、维修性好、体积小、重量轻等特点。因此在设计时采用功能模块划分的思想,各个功能模块相互独立[1]。为了实现更高的数据处理能力,模块采用多处理器并行工作的模式。处理器之间通过高速总线进行互联。同时,模块还提供高速串行接口,用于与外部的接口板进行数据通信。

基于前面的设计思想,模块设计时选用4片MPC8640处理器作为数据处理的核心。MPC8640处理器是Motorola推出的一款高性能RISC处理器,采用e600内核,属于G4代产品,峰值处理性能2.3GIPS。处理器支持32KB的L1级数据和指Cache ,L2级Cache的容量达到了1MB。为了支持向量运算,MPC8640处理器引入了Altivec技术。除了支持高性能的内核之外,MPC8640处理器还具有高性能的DDR2控制器、高速Serdes接口等外部设备[2] [3]。

设计时每片处理器的主频设置为1GHz,包括主存储器、局部存储器以及温度监控电路。四片处理器采用RapidIO交换实现数据共享。除此以外,模块还包括复位电路、看门狗电路、电压转换电路、板级逻辑控制电路、时钟电路、高速串行接口电路、以太网交换电路。模块的系统结构如图1 所示。

2 模块硬件设计

从上述的图1可以看到,模块四个处理器以SMP的模式工作,处理器之间相互独立,执行程序的功能也一样。按照功能划分,模块硬件设计主要包括:处理器电路设计、RapidIO交换电路设计、以太网交换设计、逻辑控制电路、复位电路、时钟电路以及电压转化电路。每部分电路遵循通用化、标准化的设计思路,具体描述如下。

2.1 处理器电路设计

模块的每个处理器节点包括三个部分:DDR2电路、局部存储资源电路以及温度监控电路。模块工作之前,处理器首先进行上电初始化配置,所有硬件接口初始化为确定的工作状态。设计时处理器的配置信息如表1所示。

每片处理器主存采用4片DDR2芯片实现,总容量1GB,设计参考时钟200MHz。DMA工作模式下的传输带宽为700MB/s以上,拷贝传输测试的性能达到130MB/s以上。

每片处理器的局部存储资源电路包括Flash芯片和NVRAM芯片,访问宽度分别为16位和8位,存储容量分别为128MB和128KB。Flash芯片存储处理器的启动程序、操作系统程序以及用户程序等代码;NVRAM芯片存储模块的重要数据。两种存储资源的片选信号分别挂接到LBC的不同片选输入上,Flash的读带宽可以达到5MB/s以上,写带宽可以达到120KB/s以上;NVRAM的读写带宽可以达到3MB/s以上。

为了监控处理器内部及其附近的温度,MPC8640处理器提供了温度监控引脚,采用ADT7461AR芯片用于温度采集。ADT7461AR是一个双通道数字温度计,工作电源3.3V,具有低/超温报警功能,采用I2C接口实现主机对远程/本地温度数据的采集,远程结温测量精度[±]1℃,本地温度测量精度[±]3℃。芯片默认的测温范围为0℃至+127℃,宽温模式下可调整为-55℃至+150℃[4]。ADT7461AR通过I2C总线与处理器连接。

2.2 RapidIO交换电路设计

模块内部采用高速串行RapidIO总线实现互连通信,RapidIO交换芯片采用TUNDRA公司的第三代RapidIO Switch芯片Tsi578。其主要特点是:支持高达80Gb/s的聚合带宽,符合RapidIO互连规范V1.3,支持硬件广播,具有8个4x端口或16个1x端口的交换能力;端口的频率可以配置为1.25 Gbps、2.5 Gbps、3.125Gbps;支持混合的速率和带宽配置[5]。

模块四个处理器节点分别连接到Tsi578芯片的四个偶数端口上,每个端口配置为2.5G,4x工作模式,芯片参考时钟为156.25MHz。通过RapidIO交换芯片,四个处理器实现全交叉互联。单处理器节点的读带宽达到200MB/s以上,写带宽超过600MB/s。

2.3 以太网交换电路设计

以太网交换电路包括两大部分:处理器PHY电路和交换电路。PHY电路芯片选用VSC8641XKO-03,与处理器的以太网控制器端口相连接,如图1所示。处理器的以太网端口和PHY芯片都配置为GMII模式。

四路处理器的PHY芯片之间采用交换芯片实现互连。芯片选用VSC7428XJG,支持8个千兆以太网端换,同时内部采用兼容MIPS架构的处理器用以管理芯片的工作,处理器工作频率为416MHz[6]。设计时交换芯片工作模式配置为非管理模式,芯片通过SI接口读取外部EEPROM的数据完成上电初始化。

2.4 电源电路设计

模块功能复杂,元器件种类较多,各种芯片的供电电源也较多。为了给芯片供电,模块设计了多路电源电路,以完成电源的转换。

模块的电源种类如表2所示。

2.5 时钟电路设计

模块需要多种频率的时钟信号源,主要包括:处理器时钟、以太网时钟、RapidIO参考时钟以及PCI-E参考时钟。模块时钟结构如图2所示。

如图所示,66MHz晶振通过高速时钟驱动器驱动,产生四路时钟,分别输入到四片处理器的外部时钟引脚上,通过处理器的内部PLL作用分别产生内核时钟、MPX时钟以及DDR2时钟。125MHz晶振也通过高速时钟驱动器驱动,产生四路时钟,分别接入到四路PHY芯片的参考时钟引脚上。每个处理器的RapidIO端口参考时钟分别由100MHz的差分晶振产生。

模块选用25MHz晶振作为外部时钟源,采用PLL芯片通过倍频产生4路100MHz的差分输出信号送至4片MPC8640处理器,作为PCI-E的参考时钟。

2.6 复位电路设计

模块支持三种复位方式:上电复位、手动复位和JTAG复位。上电复位采用MAX706TESA芯片监控FPGA_DONE信号,当被监控信号电平达到3.3V时,芯片产生200ms的复位信号;手动复位信号用于模块的调试阶段,通过测试台输入到模块上;JTAG复位信号由仿真器输出,用于仿真器调试模式下的复位实现。三种复位信号在FPGA中进行逻辑处理,输出作为处理器和其他芯片的硬件复位信号输入。模块复位电路结构如图3所示。

2.7 FPGA设计

模块采用Xilinx公司的XC3S400AN-FGG400来实现内部控制逻辑以及局部总线接口转换,XC3S400AN-FGG400具有400K的系统门电路资源,11776个CLB单元,372个IO接口[9]。芯片的接口电压3.3V,辅助电压2.5V,内核电压1.2V。FPGA实现的功能如下:

1) 产生处理器以及其他硬件资源的复位;

2) 实现看门狗电路;

3) 完成处理器局部总线控制器(LBC)的地址译码;

4) 实现Flash、NVRAM芯片的读写控制信号;

5) 内部实现寄存器,用于测试和存储外部离散量信号,处理器可以通过LBC实现对寄存器的读写操作;整个逻辑采用可综合的VHDL语言实现,逻辑通过了功能和时序仿真。

3 设计验证

模块的设计验证主要通过软件测试程序进行,包括DDR2验证、Flash验证、NVRAM验证以及RapidIO验证。

1) DDR2验证:DDR2验证分为系统内存区验证和保留区内存验证,分别对内存区域按照8位、16位和32位的方式进行内存写,再依次读出内存中的数据与写入的数据进行对比。

2) Flash验证:由于Flash中存放处理器运行的代码数据,不能进行Flash擦除操作,故采取读校验和的方式进行测试。体现为采用读三次校验和进行数据比较。

3) NVRAM验证:分别对NVRAM写入8位、16位、32位的数据,然后再依次读出每个地址位的数据与写入的数据进行比较。

4) RapidIO验证:模块每个处理器节点都向其余三个节点写入8位、16位、32位数据,每个处理器的访问地址分开。然后每个处理器依次读出每个地址的数据与写入的数据进行比较。

4 结束语

本文介绍了一种高性能通用处理模块的硬件设计方法,从系统结构、各功能模块的硬件设计方面进行了详细的描述。模块运用于新一代机载电子设备上,与系统中其他设备共同作用,使机载电子系统的性能达到最佳。模块经过测试验证与环境试验条件,满足机载电子系统的使用要求。

参考文献:

[1] 汤艳飞,文敏华.基于MPC8640D处理系统的技术研究[J]. 航空计算技术,2012(1):120-122.

[2] MPC8641D Integrated Host Processor Family Reference Manual [EB/OL]. Freescale Semiconductor Inc, 2008.

[3] MPC8641 and MPC8641D Integrated Host Processor Hardware Specifications[EB/OL].Freescale Semiconductor Inc, 2009.

[4] ADT7461 Datasheet [EB/OL]. Analog Devices Inc,2004.

[5] Tsi578 Serial RapidIO Switch User Manual [EB/OL]. Tundra Semiconductor Corporation,2007.

[6] VSC7428 and VSC7429 Caracal Family of Carrier Ethernet Switches Datasheet[EB/OL]. Vitesse Semiconductor Corporation,2010.

[7] TPS51116 Datasheet [EB/OL]. Texas Instruments Corporation, 2004.