首页 > 编程知识 正文

d触发器二分频电路图(D触发器实现分频器)

时间:2023-05-06 19:19:25 阅读:121970 作者:4222

用d触发器实现分频器最常见的方法是用计数器实现。 具体实现可以看到前面的报道,但很少看到d触发器实现。 本文介绍了基于d触发器的分频器的实现。 这里以9分频为例。

我们要实现的是用d触发器和组合逻辑实现占空比为50%的9分频电路。 首先,用d触发器实现可编程控制器,输出000001111循环序列。 接着,用下降沿的d触发器一拍,将两个信号相或后输出即可。

根据以上想法,首先绘制相应的波形图。 其中,clk1是由可编程控制器生成的序列脉冲,clk2是clk1在系统时钟clk的下降沿一拍而得到的信号,div_clk是得到的9分频信号。

这里重要的是如何生成000001111循环序列。 此循环序列有九种状态,因此至少需要四个触发器。 因此,首先使用四个触发器列出对应的状态。

q3q2Q1 q000100110011001101111110110110110110011001000100100000? 0此时,让我们来看看使用了4个触发器的情况。 在生成循环序列时,我们发现在生成第五个0时,触发器所取的值与生成第一个1时所取的值相同。 因此,不能通过四个触发器生成此循环序列。 为了满足条件,使用五个触发器,如下表所示。

4 q3q2Q1 d 00001000110001100111011011011011001100110011000011000000110000001可以看出,有五个触发器可以满足条件。 确定触发器数量后,根据上表创建相应的卡诺图,并通过简化获得状态方程,相应的卡诺图如下:

退化时,没有数据的地方,我们可以同时视为1和0。 最后的降级结果为d=Q4‘Q3’=[ q4q3],可以根据状态方程设计电路图。 电路图如下。

得到电路图后,以下是完整的代码。

-----------------------请参阅--------------- -文件: div9_----。 revise :2021-04-2711336046336024//edito or tabsize---------------------- - reg Q0、Q1、Q2、Q3、Q4; wireD0; regout_reg; Always@(Posedgeclk ) Beginif ) rst ) beginQ0=1'b0; Q1=1'b0; Q2=1'b0; 问题Q3=1'b0; Q4=1'b0; endelse beginQ0=D0; Q1=Q0; Q2=Q1; Q3=Q2; Q4=Q3; endendalways@(negedgeclk ) beginif ) rst ) beginout_reg=1'b0; endelse beginout_reg=Q4; endendassignD0=~(Q3|Q4 ); assign div_clk=out_reg | Q4; 结束模块TB文件如下:

-----------------------请参阅--------------- -文件: TB _ didity revise 33602021-04-2711336047336034//revise 3360 tabsize---------------------- - regclk; regrst; wirediv_clk; 初始begin clk=0; rst=1; #100rst=0; endalways #10 clk=~clk; div9_clkinst_div9_clk(.clk )、 rst )、 div_clk ); endmodule的模拟图如下。

这里,clk是系统时钟,div_clk是9分频的时钟。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。