由于要实现快速调时,所以这就要求在“计数”时用一个时钟频率,在 “较
时 ” 时 有 需 要 一 个 频 率 , 这 就 会 出 现 一 个 问 题 , 那 就 是 : 一 个 进 程 ( 即
process )中,不能出现两个时钟,否则就会出现 error(100028)……,所
以如果“较时”和 “计数”在一个 process 时,就需要避免在一个进程中采用两个
时钟输入(即将两个时钟频率作为敏感信号),所以这也就是这里需要解决的
问题了,考虑到计数和调时不是同时进行的,因此可以考虑在一个进程中,采
用一个时钟输入进行类似于分时复用的原理,即计数时 clk 信号输出计数频率,
校时时输出计数频率频率。而在设计时由于采用了 EN 信号进行计数和校时的
切换(即 EN 为 1 时计数,为 0 时校时),因此可以利用 EN 信号作为时钟分
频模块(即下图中的 CLK_TWO 模块)中的 CLK_low 输出的高低频切换。具
体程序如下(主要看一下 CLK_TWO 模块中的红色程序部分即能明白)。
顶层原理图