ET创芯网论坛(EETOP)

找回密码

  登录   注册  

搜帖子
汽车电子资料大全(下载奖励300信元)
查看: 725|回复: 4

[原创] 分频电路(9分频)设计

[复制链接]
发表于 2019-8-15 10:51:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
分频电路(9分频)

本文章是自己编写,转载请加http://blog.eetop.cn/sunyuan214
附件是PlanB和planC,用更少的逻辑资源完成相同的
这次的题目是做一个等占空比(低电平时间等于高点平时间)的9分频电路(同步电路).因为大家第一能想到的就是verilog行为级描述分频电路,下面是一段行为级描述.
       原理:通过posedge clk来实现一个计数器,计数范围为0-8.(因为做的9分频,计数到8就可以,大家可以从3,5,7分频去画一下波形就可以知道规律).然后在计数器在48的时候将div_p信号线反转;同样negedge clk也实现一样的动作,产生一个div_n信号线,然后div_p||div_n就可以得到占空比为50%9分频电路。这里大概描述了9分频产生的过程,可能不是很好。后面的电路中会渗透这方面的知识。

                               
登录/注册后可看大图



因为服务器的原因,不能把.v文件下载下来,还请谅解。这里的代码就是通过设置N来实现几分频。
通过代码我们可以去仿真得到最终波形,这里我提供testbench,但是仿真大家仿一下,结果是正确的,我验证过了。


通过行为级的描述,不难发现,电路核心部分是计数器,那计数器应该怎么用DFF去搭建呢。对于一个组合逻辑,我们肯定知道组合逻辑的输入,那么通过组合逻辑的逻辑门肯定能推出逻辑电路的输出是什么,但是一个计数器电路,是通过时钟沿来计数,输入只有clk和rst,输出只有div_clk,这里大家可能就是蒙的,我也处于蒙的状态,还好上大学做过JK触发器的计数器电路,这就好办了。
       计数器也就是0-8,那计数器需要几个能,因为最大计数到8,所以24次方肯定能满足8,所以只需要4DFF就可以,我们看到计数器最终的变化是在4DFFQ端看到,这里记为cnt[3:0],第一个DFFQ就是cnt[0],后面依次类推;DFF的原理是通过clk的上升沿将D端输入输出到Q端,那么是不是只要得到D端的输入逻辑电路,就可以得到Q下次要变化的值。
       计数器计数过程
04’b0000->14’b0001->24’b0010-> 34’b0011->
44’b0100->54’b0101->64’b0110-> 74’b0111->
84’b1000-> 04’b0000
我们是不是看到Q端下一次要变化的趋势了,其实也就是真值表了。
这里我们用卡诺图来推导各个D端的表达式,也就是Qn+1
这里不会卡诺图化简的可以去这个网站学习一下,看一道例题就能学会https://jingyan.bAIdu.com/article/a681b0de6c6b223b184346d7.html

这个就是计数器8的真值表,但是对于每一个的Qn+1D)的真值表如下,并且我已经画圈。

可以得到Q0n+1 = Q3B&Q0B

可以得到Q1n+1 = Q1B&Q0+Q1&Q0B

可以得到Q2n+1 = Q2&Q1b+Q3b&Q2B&Q1&Q0+ Q3b&Q2&Q1&Q0B

可以得到Q3n+1 = Q3b&Q2&Q1&Q0
最后可以得到一组方程
D0=Q0n+1 = Q3B&Q0B
D1=Q1n+1 = Q1B&Q0+Q1&Q0B
D2=Q2n+1 = Q2&Q1B+Q3b&Q2B&Q1&Q0+Q3B&Q2&Q1&Q0B
D3=Q3n+1 = Q3B&Q2&Q1&Q0
这一组方程就是每个DFFD端组合逻辑,大家照着连接一下就行,我没有直接用DFF做计数器,用的JKFF来实现,这里用JK不太好,但是JK看起来很简便,后面再说这个坑。
想要用JKFF来做计数器,就要得到JK的输入逻辑电路,由于JKFF可以由DFF搭建出来,所以就可以将上面一组方程转换成JKFF的输入逻辑。DFFJKFF之间的关系是Qn+1=J&QB+KB&Q;所以把上面的方程转换为JKFF的逻辑,这里举例D1D2转换的过程,其他的可以类推。
D0=Q0n+1 = Q3B&Q0B是不是可以变化成
D0=Q0n+1 = Q3B&Q0B+0&Q0
这里根据Qn+1=J&QB+KB&Q是不是可以把对应的J0K0提取出来
J0 = Q3B
K0B = 0  -> K0 = 1
D2=Q2n+1 = Q2&Q1B+Q3B&Q2B&Q1&Q0+Q3B&Q2&Q1&Q0B我们整理一下D2=Q2n+1 = Q3B&Q1&Q0&Q2B+( Q1B+Q3b &Q1&Q0B) &Q2
这里根据Qn+1=J&QB+KB&Q是不是可以把对应的J2K2提取出来
J2 = Q3B&Q1&Q0
K2B= ( Q1B+Q3b &Q1&Q0B)-> K2= ( Q1B+Q3b &Q1&Q0B)B
最终我们可以得到JK的方程组
J0 = Q3B                                      K0= 1
J1 = Q0                                         K1= Q0
J2 = Q3B&Q1&Q0                    K2= (Q1B+Q3b &Q1&Q0B)B
J3 = Q2&Q1&Q0                       K3= 1



分频电路(9分频).docx

317.13 KB, 下载次数: 10 , 下载积分: 资产 -2 信元, 下载支出 2 信元

原理

planB+C.docx

60.32 KB, 下载次数: 7 , 下载积分: 资产 -2 信元, 下载支出 2 信元

优化

 楼主| 发表于 2019-8-16 08:40:07 | 显示全部楼层
如果大家觉得好,留言一下,我会继续上传最新理解的知识。
回复 支持 反对

使用道具 举报

发表于 2019-10-22 13:37:56 | 显示全部楼层
优秀,支持作者原创
回复 支持 反对

使用道具 举报

发表于 2019-10-22 13:39:02 | 显示全部楼层
楼主创建个微信公众号,同步创作~~~~~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-22 17:29:48 | 显示全部楼层


   
Thomas_Bai 发表于 2019-10-22 13:39
楼主创建个微信公众号,同步创作~~~~~~


现在我也是小白,等明年吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

关闭

小黑屋|关于我们|联系我们|ET创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2019-11-17 06:35 , Processed in 0.076903 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表