EDA中的综合计时电路的设计
扫描二维码
随时随地手机看文章
根据系统的设计要求,综合计时电路可分为计秒电路、计分电路、计时电路、计星期电路、计日电路、计月电路、计年电路等7个子模块,这7个子模块必须都具有预置、计数和进位功能,设计思想如下:
(1)计秒电路:以直接输入或由分频器产生的秒脉冲作为计秒电路的计数时钟信号,待计数至60瞬间,进位,计分电路加1,而计秒电路则清零并重新计秒。
(2)计分电路、计时电路:其设计思想与计秒电路类似。
(3)计星期电路:将计时电路产生的进位脉冲信号作为计星期电路的计数时钟信号,待计数至7瞬间,计星期电路返回1重新开始计数。
(4)计日电路:将计时电路产生的进位脉冲信号作为计日龟路的计数时钟信号,通过系统辨认,确定本月总天数X(包括28、29、30、31四种情况),待计数至X+1瞬间,进位,计月电路加1,而计日电路返回1重新开始计数。
(5)计月电路:将计日电路产生的进位脉冲信号作为计月电路的计数时钟信号,待计数至12瞬间,进位,计年电路加1,而计月电路返回1重新开始计数。
(6)计年电路:将计月电路产生的进位脉冲信号作为计年电路的计数时钟信号,待计数至100瞬间,计年电路返回0重新开始计数。(注:由于本系统的计年范围仅为2000~2099年,所以计年模块只对年份的后两位进行计数,年份的前两位始终保持为“20”。)
下面介绍CNT60、CNT30计数模块的设计。
CNT60计数模块是一个多用计时模块,它既可作为计秒电路调用,又可作为计分电路、计时电路调用。图7.2是其输入、输出端口图。其中,输入信号LD为置数控制信号,低电平有效;输入信号CLK为计数时钟信号;输入信号DATA为待预置数;输出信号NUM为计数结果;输出信号co为计数溢出信号。
如图1 CNT60计数模块输入、输出端口图
CNT60的主要VHDL程序段如下:
CNT30计数模块是一个计日模块。由于该计数模块涉及到大小月及闰年问题,所以CN:Γ30的计数范围并非固定不变,而是存在着1~28、1~29、1~30及1~31这四种情况。如图是其输入、输出端口图。其中输入信号LD为置数控制信号,低电平有效;输入信号CLK为计数时钟信号:输入信号DATA为待预置数;输入信号NIAN为当前计时的年份数;输入信号YUE为当前计时的月份数:输出信号NUM为计数结果;输出信号CO计数溢出信号,输出信号MAX DAYS为当前月的天数。
如图2 CNT30计数模块输入、输出端口图
CNT30的主要VHDL程序段如下:
来源:ks990次