找回密码
 注册
关于网站域名变更的通知
查看: 291|回复: 1
打印 上一主题 下一主题

两个28MHz分频到1秒的分频程序对比

[复制链接]
  • TA的每日心情
    开心
    2019-11-19 15:19
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2019-6-3 10:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    两个28MHz分频到1秒的分频程序对比
    ! i+ Z. T, k  ?

    ) y7 c# L# D, G! M0 z$ R4 [         两个程序,一个是直接用REG时序进程单进程写的分频程序把28兆个周期分成14兆个和14兆个,其中一半输出0,另一半输出1,正好1秒。仿真结果很好,无竞争,无毛刺,下载DEII验证正常,用它来驱动16进制计数器现实也正常。
    $ u2 E7 j8 [3 Z         另外一个程序是把REG单进程分为两个进程,一个是REG进程,另一个是COM进程,设计思路如前,仿真结果是这样,当输入频率为2的幂级数时,无毛刺无竞争,但是输入频率非2的幂级数时,就会在1秒的0和1各0.5秒内产生一个正向和反向毛刺,下载DEII开发板,显示也是正常,1秒1秒的闪烁,但是用它来驱动16进制计数器,发现问题,就是计数不是一个一个的计,会显示0,4,8,C,F,0这样,很有规律。仔细研究波形仿真,发现了这个问题。就是多加的那个COM进程产生毛刺,正好多了那两个毛刺,计数才0完就计4。% \. j3 J5 k6 u  {9 b1 M
             VHDL状态机时也会有这个问题,多进程状态机会出现毛刺,要消除,就是因为COM进程存在。把COM进程和REG进程合并,写成混合进程REGCOM就可以消除毛刺了,这就是单进程状态机的优势。
    + n0 K) ^& N- J+ G: f
    2 O0 ^0 a3 W, j         两个程序里大家可以修改输入频率的大小,由于仿真时间过久,建议大家选用256Hz和280Hz进行仿真,就可以看到偶发的那三个波形了。可以看出单进程不论输入256还是280Hz都不会有毛刺,而双进程输入256Hz很好,无毛刺,但是输入280Hz时,就会出现毛刺,这就是我说的提供给16进制计数器做时钟出现计数0,4,8,C,F,0的原因了。, F' X* `1 n' y, b/ U7 ^
    一点建议,仅供大家参考。希望有所帮助。
    4 A, _! }. d; b" P, T3 Z
    ) ?' i* y. g& X; C. ^* x3 g

    该用户从未签到

    2#
    发表于 2019-6-3 17:02 | 只看该作者
    非常有帮助 顶顶
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-4 18:10 , Processed in 0.093750 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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