首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

利用FPGA进行高速可变周期脉冲发生器设计

利用FPGA进行高速可变周期脉冲发生器设计

1 概括要求改变脉冲周期和输出脉冲个数的脉冲输出电路模块在许多工业领域都有运用。采用数字器件设计周期和输出个数可调节的脉冲发生模块是方便可行的。为了使之具有高速、灵活的优点,本文采用atelra公司的可编程芯片FPGA设计了一款周期和输出个数可变的脉冲发生器。经过板级调试获得良好的运行效果。
  2 总体设计思路
  脉冲的周期由高电平持续时间与低电平持续时间共同构成,为了改变周期,采用两个计数器来分别控制高电平持续时间和低电平持续时间。计数器采用可并行加载初始值的n位减法计数器。设定:当要求的高电平时间以初始值加载到第一个减法器中后,减法器开始减计数,计数到零时自动停止,同时启动第二个记录低电平持续时间的计数器计时。当第二个减法计数器也减计到零时,计数器自动停止。这样就完成一个脉冲的输出,而这个脉冲的周期控制完全可以在计数器的初始值中进行有效的设定.以达到脉冲周期可调的目的。为了控制脉冲个数的输出,在脉冲输出通道上设计一个数量控制计数器,对脉冲个数进行计数,当计到要求输出的个数时.完成输出并给出一个done信号作为该模块工作完成的标志信号。封装好的脉冲发生器设计 框图如图l所示。
[img][/img]
  引脚信号说明:
start信号:启动信号。
reset,信号:系统复位信号。
clock信号:系统时钟信号。
high信号:高电平持续时间初值。
low信号:低电平持续时间初值。
num信号:个数控制寄存器初始值。
output信号:脉冲输出信号。初始化时为低。
done信号:脉冲输出完的标志信号。
  3 高低电平计时器设计
  3.1 设计方法
  为了产生所需要时间的高电平,可以利用一个可预置数的减法计数器来达到目的,计数器设计分为两个部分,一部分是可预置数的自控制减法计数器:另一部分是减法计数器工作完成后的检测系统,检测到计数器工作完成后输出一个时钟周期宽的脉冲作为该计数器工作完成信号,并可作为下一个计数器工作的启动信号。原理框图如图2所示。
[img][/img]
  3.2 工作原理
  首先.外部的复位信号reset给出一个时钟周期宽的脉冲,复位内部各个信号及触发器。
  然后,在下一个有效时钟时刻,外部start信号给出一个时钟周期宽度的脉冲,用来启动计数器的工作。在设计中,当start信号有效时(设计为高有效),外部数据high加载到q,当q不为零时,输出信号pulse将跳变为高电平,当q减到零的时候,pulse信号再跳变回低电平。这个脉冲信号的后沿将被后面的由两个d触发器构成的检测单元捕获,并在pulse信号的下降沿后产生一个时钟周期宽的脉冲,定义为done信号,表示该信号完成输出。
  低电平计时器的设计与高电平计时器完全一样。
  3.3 时序仿真
  在quartusⅱ4.1开发平台上模拟该模块两个输出信号,时序仿真如图3所示。
[img][/img]
  从图中可以看出,done信号在pulse信号输出完成后输出一个时钟周期宽度。把这个完成信号done加到下一级类似的减法计数器的start信号上。将会启动下一级计数器的工作。如果将下一级的完成信号done加载给本级的start信号。将会重启一个脉冲的生成。如此将会自动循环以达到不间断输出一定周期脉冲的目的。
  4 数量控制计数器设计
  4.1 设计方法
  数量控制计数器设计与高低电平计数器类似.不同之处在于,减法计数器的时钟输入端接脉冲的输出信号,当要求输出脉冲的个数到达时,输出一个门控信号door,后面的两个d触发器仍然用来捕获门控信号door的后沿。一旦输出个数到达,done信号立即输出一个时钟周期宽度的脉冲作为标志。具体设计框图如图4所示。
返回列表