位置:51电子网 » 技术资料 » 模拟技术

基于现场可编程门阵列的数控延时器的设计

发布时间:2008/5/27 0:00:00 访问次数:625

        

    

    

    作者:孙建东

    

    1引言

    

    利用硬件描述语言结合可编程逻辑器件(pld)可以极大地方便数字集成电路的设计,本文介绍一种利用vhdl.硬件描述语言结合现场可编程门阵列(fpga)设计的数控延时器,延时器在时钟clk的作用下,从8位数据线输入延时量,到iatch高电平时锁存数据,可以实现对触发脉冲trig的任意量的延时。由于延时范围不同,设计所用到的fpga的资源也不同,本文详细介绍最大延时量小于触发脉冲周期的情况。该延时器的软件编程和调试均在muxplus ii环境下完成,系统设计选用altera公司的epfl0k30aqc208-3,epc1441型专用电路,与dsp相结合,应用于雷达目标模拟器的控制部分,实现对目标距离的模拟。

    

    2 设计原理

    

    笔者设计的数控延时器采用3个串联计数器来实现。由于在触发脉冲trig的上升沿开始延时,使用时钟的上升沿计数,考虑到vhdl对时钟描述的限制,设计采用计数器1产生同步脉冲sync,宽度为tclk,利用sync的高电平触发cflag,并在延时结束后cflag清零;计数器2计算延时的长度;计数器3计算所要产生的输出脉冲output的脉宽,并在计数结束时对计数器2和计数器3清零。延时器的外部接口电路如图1所示,原理框图如图2所示。整个电路的设计采用同步时钟计数以尽量减少因局部时钟不稳定所产生的毛刺和竞争冒险。

    

    

    

    

    

    该数控延时器低电平时锁存数据,高电平时改变内部寄存器的数值(与ad9501型数控延时器的数据锁存端电平相反)。一般情况下,触发脉冲与时钟的上升沿是一致的,如果输入的触发脉冲与时钟不一致.则整个电路的延时将产生一定的误差。时序仿真如图3所示,延时量由dlylh为高电平时数据总线data8上的数据决定。

    

    

    

    该数控延时器的vhdl硬件描述语言程序如下:

    

    

    

    

    

    

    

    在该程序中,cnt1为延时量,cnt2为输出脉冲的宽度,cflag为开始计数的标志。该段程序在触发脉冲的周期大于256*tclk时,最大延时量为256*tclk,如果触发脉冲周期小于256*tclk,则最大延时量为tclk一toutput (toutput为输出脉冲的宽度)。

    

    事实上。在实际应用中,延时后的输出脉冲与输入的触发脉冲的频率并不相同,譬如在设计雷达目标模拟器时要求延时后产生一连串的7分频时钟,时序如图4所示(延时后产生11个7分频的脉冲,占空比为2:5)。

    

    

    

    要产生上述触发脉冲,只需改变计数器2的长度,并在程序中加入case判断语句即可。

    

    

    

    3 延时范围讨论

    

    3.1 延时范围小于触发脉冲周期

    

    这种情况只需增加数据输入端的位数,不过一般情况下,数据输入端位数是固定的,这时可以在fpga的内部定义多位的数据寄存器。以延时范围为224*tclk为例,在fpga内部定义24位的数据寄存器,并定义3条地址线dlylh1、dlylh2和dlylh3,通过8位数据总线分3次向数据寄存器送数,送数时间应在前一脉冲延时结束之后与下一脉冲到来之前。数据送入寄存器的程序如下:

    

    

    

&nbs

        

    

    

    作者:孙建东

    

    1引言

    

    利用硬件描述语言结合可编程逻辑器件(pld)可以极大地方便数字集成电路的设计,本文介绍一种利用vhdl.硬件描述语言结合现场可编程门阵列(fpga)设计的数控延时器,延时器在时钟clk的作用下,从8位数据线输入延时量,到iatch高电平时锁存数据,可以实现对触发脉冲trig的任意量的延时。由于延时范围不同,设计所用到的fpga的资源也不同,本文详细介绍最大延时量小于触发脉冲周期的情况。该延时器的软件编程和调试均在muxplus ii环境下完成,系统设计选用altera公司的epfl0k30aqc208-3,epc1441型专用电路,与dsp相结合,应用于雷达目标模拟器的控制部分,实现对目标距离的模拟。

    

    2 设计原理

    

    笔者设计的数控延时器采用3个串联计数器来实现。由于在触发脉冲trig的上升沿开始延时,使用时钟的上升沿计数,考虑到vhdl对时钟描述的限制,设计采用计数器1产生同步脉冲sync,宽度为tclk,利用sync的高电平触发cflag,并在延时结束后cflag清零;计数器2计算延时的长度;计数器3计算所要产生的输出脉冲output的脉宽,并在计数结束时对计数器2和计数器3清零。延时器的外部接口电路如图1所示,原理框图如图2所示。整个电路的设计采用同步时钟计数以尽量减少因局部时钟不稳定所产生的毛刺和竞争冒险。

    

    

    

    

    

    该数控延时器低电平时锁存数据,高电平时改变内部寄存器的数值(与ad9501型数控延时器的数据锁存端电平相反)。一般情况下,触发脉冲与时钟的上升沿是一致的,如果输入的触发脉冲与时钟不一致.则整个电路的延时将产生一定的误差。时序仿真如图3所示,延时量由dlylh为高电平时数据总线data8上的数据决定。

    

    

    

    该数控延时器的vhdl硬件描述语言程序如下:

    

    

    

    

    

    

    

    在该程序中,cnt1为延时量,cnt2为输出脉冲的宽度,cflag为开始计数的标志。该段程序在触发脉冲的周期大于256*tclk时,最大延时量为256*tclk,如果触发脉冲周期小于256*tclk,则最大延时量为tclk一toutput (toutput为输出脉冲的宽度)。

    

    事实上。在实际应用中,延时后的输出脉冲与输入的触发脉冲的频率并不相同,譬如在设计雷达目标模拟器时要求延时后产生一连串的7分频时钟,时序如图4所示(延时后产生11个7分频的脉冲,占空比为2:5)。

    

    

    

    要产生上述触发脉冲,只需改变计数器2的长度,并在程序中加入case判断语句即可。

    

    

    

    3 延时范围讨论

    

    3.1 延时范围小于触发脉冲周期

    

    这种情况只需增加数据输入端的位数,不过一般情况下,数据输入端位数是固定的,这时可以在fpga的内部定义多位的数据寄存器。以延时范围为224*tclk为例,在fpga内部定义24位的数据寄存器,并定义3条地址线dlylh1、dlylh2和dlylh3,通过8位数据总线分3次向数据寄存器送数,送数时间应在前一脉冲延时结束之后与下一脉冲到来之前。数据送入寄存器的程序如下:

    

    

    

&nbs

相关IC型号

热门点击

 

推荐技术资料

泰克新发布的DSA830
   泰克新发布的DSA8300在一台仪器中同时实现时域和频域分析,DS... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!