还剩1页未读,继续阅读
文本内容:
用VHDL语言设计延时电路 用VHDL语言设计延时电路时一般用计数器或计数器的级联来实现 下面以一个实例来说明如何实现任意时间量的延时 在5MHz时钟CLK控制下对同步信号SYNC进行N延时SYNC脉冲宽度为2μs,脉冲重复频率为1kHz;0μs≤N≤998μs要求每次在同步脉冲上升沿到来时开始延时,并在延时结束后产生宽度为10μs的选通信号 需要产生的延时时序如图2所示延时量N=
4.2μsHYPERLINKhttp://www.soeol.com/info/UploadFile/
2009322104938676.jpg\t_blankINCLUDEPICTUREhttp://www.soeol.com/info/UploadFile/
2009322104938676.jpg\*MERGEFORMAT 这里采用3个计数器和1个或门产生上述延时信号,如图3所示,模N计数器计延时量;模50计数器计选通信号的宽度;模N+50计数器用于产生使能信号用VHDL硬件描述语言进行硬件电路设计时,同一个进程中不能用2个时钟来触发,而时序图中又要求在同步脉冲SYNC的上升沿开始延时,为了解决这一问题,采用了模N+50计数器和1个或门 当同步脉冲为高电平时,模N计数器和模N+50计数器开始计数,并置dly_en为高电平模N计数器满,置dly_enl为高电平同时产生选通信号当模N+50计数器计满即选通信号产生完之后置dly_en为低电平当下一个同步脉冲到来时重复以上过程这种设计电路的好处是当同步脉冲的宽度改变时对时序控制并无影响因为在计数过程中只用了SYNC的上升沿,从延时开始到选通信号结束在或门的作用下SYNC对计数器不起控制作用 HYPERLINKhttp://www.soeol.com/info/UploadFile/
2009322104938377.jpg\t_blankINCLUDEPICTUREhttp://www.soeol.com/info/UploadFile/
2009322104938377.jpg\*MERGEFORMAT 上述电路的VHDL程序如下 HYPERLINKhttp://www.soeol.com/info/UploadFile/
2009322104938966.jpg\t_blankINCLUDEPICTUREhttp://www.soeol.com/info/UploadFile/
2009322104938966.jpg\*MERGEFORMAT 该程序选择N=20,即延时量是
4.2μs,由于要使用时钟来判断SYNC的上升沿情况,因此,如果令N=0,产生的delay信号仍然会有1个时钟的固有延时,在计算延时量时应充分考虑到这一点,延时量=N+1×时钟周期 。