利用FPGA进行高速可变周期脉冲发生器设计
来源:电子工程世界 作者:—— 时间:2010-07-07 07:00
3.2 工作原理
首先.外部的复位信号reset给出一个时钟周期宽的脉冲,复位内部各个信号及触发器。
然后,在下一个有效时钟时刻,外部start信号给出一个时钟周期宽度的脉冲,用来启动计数器的工作。在设计中,当start信号有效时(设计为高有效),外部数据high加载到q,当q不为零时,输出信号pulse将跳变为高电平,当q减到零的时候,pulse信号再跳变回低电平。这个脉冲信号的后沿将被后面的由两个d触发器构成的检测单元捕获,并在pulse信号的下降沿后产生一个时钟周期宽的脉冲,定义为done信号,表示该信号完成输出。
低电平计时器的设计与高电平计时器完全一样。
3.3 时序仿真
在quartusⅱ4.1开发平台上模拟该模块两个输出信号,时序仿真如图3所示。
从图中可以看出,done信号在pulse信号输出完成后输出一个时钟周期宽度。把这个完成信号done加到下一级类似的减法计数器的start信号上。将会启动下一级计数器的工作。如果将下一级的完成信号done加载给本级的start信号。将会重启一个脉冲的生成。如此将会自动循环以达到不间断输出一定周期脉冲的目的。
4 数量控制计数器设计
4.1 设计方法
数量控制计数器设计与高低电平计数器类似.不同之处在于,减法计数器的时钟输入端接脉冲的输出信号,当要求输出脉冲的个数到达时,输出一个门控信号door,后面的两个d触发器仍然用来捕获门控信号door的后沿。一旦输出个数到达,done信号立即输出一个时钟周期宽度的脉冲作为标志。具体设计框图如图4所示。
4.2 时序仿真
在quartusⅱ4.1开发平台上软仿真,把脉冲发生器中产生的每个脉冲的start信号作为数量控制器的输入信号,仿真结果如图5所示。
每次输出任务完成后。由总体模块输出一个ov信号标志该批次任务结束。ov信号可再次加载到总的reset信号上,即该批次输出完成可复位进入下一批次任务的输出。图5中的door信号出现了很窄的毛刺,这是由于内部计数器的翻转不同步造成的。加同步电路可以消除,但会影响电路的工作频率。由于毛刺很窄,对整个电路工作无任何影响。所以,该模块设计中并未处理。