《基于现场可编程门阵列的数控延时器的设计.docx》由会员分享,可在线阅读,更多相关《基于现场可编程门阵列的数控延时器的设计.docx(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于现场可编程门阵列的数控延时器的设计利用硬件描绘语言结合可编程逻辑器件PLD可以极大地方便数字集成电路的设计,本文介绍一种利用VHDL硬件描绘语言结合现场可编程门阵列FPGA设计的数控延时器,延时器在时钟clk的作用下,从8位数据线输入延时量,到LATCH高电平时锁存数据,可以实现对触发脉冲TRIG的任意量的延时。由于延时范围不同,设计所用到的FPGA的资源也不同,本文具体介绍最大延时量小于触发脉冲周期的情况。该延时器的软件编程和调试均在Muxplus环境下完成,系统设计选用Altera公司的EPFl0K30AQC208-3,EPCI44l型专用电路,与DSP相结合,应用于雷达目的模拟器的控
2、制局部,实现对目的间隔的模拟。b2设计原理/b笔者设计的数控延时器采用3个串联计数器来实现。由于在触发脉冲TRIG的上升沿开场延时,使用时钟的上升沿计数,考虑到VHDL对时钟描绘的限制,设计采用计数器l产生同步脉冲SYNC,宽度为Tclk,利用SYNC的高电平触发cflag,并在延时完毕后cflag清零;计数器2计算延时的长度;计数器3计算所要产生的输出脉冲OUTPUT的脉宽,并在计数完毕时对计数器2和计数器3清零。延时器的外部接口电路如图1所示,原理框图如图2所示。整个电路的设计采用同步时钟计数以尽量减少因部分时钟不稳定所产生的毛刺和竞争冒险。img=196,225image.mcuol/N
3、ews/080227105805280.jpg/imgimg=386,127image.mcuol/News/080227105805541.jpg/img该数控延时器低电平时锁存数据,高电平时改变内部存放器的数值与AD9501型数控延时器的数据锁存端电平相反。一般情况下,触发脉冲与时钟的上升沿是一致的,假如输入的触发脉冲与时钟不一致,那么整个电路的延时将产生一定的误差。时序仿真如图3所示,延时量由dlyLH为高电平时数据总线data8上的数据决定。该数控延时器的VHDL硬件描绘语言程序如下:img=438,586image.mcuol/News/080227105810252.jpg/img
4、img=522,1038image.mcuol/News/080227105810983.jpg/img在该程序中,cntl为延时量,cnt2为输出脉冲的宽度,cflag为开场计数的标志,该段程序在触发脉冲的周期大于256xTclk时,最大延时量为256Tclk,假如触发脉冲周期小于256xTclk,那么最大延时量为Tclk-ToutputToutput为输出脉冲的宽度。img=600,168image.mcuol/News/080227105811514.jpg/img事实上,在实际应用中,延时后的输出脉冲与输入的触发脉冲的频率并不一样,譬如在设计雷达目的模拟器时要求延时后产生一连串的7分频
5、时钟,时序如图4所示延时后产生11个7分频的脉冲,占空比为2:5。img=600,188image.mcuol/News/080227105812735.jpg/img要产生上述触发脉冲,只需改变计数器2的长度,并在程序中参加case判定语句即可。img=498,163image.mcuol/News/080227105813286.jpg/imgb3延时范围讨论3.1延时范围小于触发脉冲周期这种情况只需增加数据输入端的位数,不过一般情况下,数据输入端位数是固定的,这时可以在FPGA的内部定义多位的数据存放器。以延时范围为224xTclk为例,在FPGA内部定义24位的数据存放器,并定义3条地
6、址线dlyLHl、dlyLH2和dlyLH3,通过8位数据总线分3次向数据存放器送数,送数时间应在前一脉冲延时完毕之后与下一脉冲到来之前。数据送入存放器的程序如下:img=463,306image.mcuol/News/080227105813397.jpg/imgimg=514,164image.mcuol/News/080227105813286.jpg/img3.2延时范围大于触发脉冲周期这种情况在实际应用中比拟广泛,譬如在雷达模拟器的设计中,所模拟的目的的间隔范围一般都很大,因此输出延时脉冲的延时量将大于1个触发脉冲周期,这时在考虑到FPGA资源的前提下,可以采用多路延时合并的处理方法
7、。以延时范围小于4个周期为例,详细时序如图5所示。img=403,15921ic/info/images/iie/200609/7/7i.jpg/img利用SYNC信号4分频并产生4路分频后的信号。在FPGA内部设计4个延时电路,SYNCl、SYNC2、SYNC3、SYNCA分别作为4个延时电路的触发信号,每个延时电路仿照第一种延时范围的设计方法,输出触发脉冲通过4个或者门送到输出端OUTPUT。值得留意的是每个延时电路内部都要定义1个与DATAREG位数一样的数据存放器,延时数据在延时开场时送入内部存放器。使用多路延时合并方法最关键的是要产生准确的分频脉冲,假如产生的脉冲有毛刺,或电路在设计的时候存在冒险,整个延时系统有可能都不能正常工作。b4延时误差分析/b以延时范围小于触发脉冲周期为例,分析固定延时及延时误差。该延时器在Muxplus环境下从输入时钟Tclk到dlytrig的延时为8.2ns;产生SYNC的宽度为Tclk。因此在触发脉冲上升沿与时钟信号上升沿对时,该延时电路的固有延时为8.2ns+2Tclk。但一般情况下,触发脉冲的上升沿与时钟的上升沿并不是一致的,根据二者之间的关系可知,最大延时误差T知足:O0
限制150内