lukeunderwood 发表于 2011-1-20 23:09:18

h2feo4 无机酸 请进,有个所谓“归零码”用VHDL识别的问题解决不了,实在没思路了。

学着VHDL,突发奇想想在CPLD里面实现一个芯片的功能,结果遇到这么一个问题,纠结了一天,也没什么思路,实在没办法了,求教。
问题如下:
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_612565UUBZXN.png
(原文件名:时序波形图.png)

http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_612566IX2IZT.png
(原文件名:时间.png)
上面是芯片手册里面提供的输入码型时序波形图和时间,整个系统的时钟是500KHz,每个码型的持续时间1.55us+0.78us=2.33us,比系统时钟略慢一点,这样怎么才能分辨出0、1两种码型的不同呢?难道是给系统时钟倍频然后采样判断?我觉得肯定不会这样,因为目标芯片很廉价,应该不会用到这种复杂的方法。
请 h2feo4 无机酸 能不能指点一个思路?实现成功之后,我会把整个工程上传,让大家学习。谢谢了!

zgq800712 发表于 2011-1-21 16:19:35

壹贰叁肆伍陆柒捌玖零,等专家来

                      ~~%%%%%%%%_,_,
                   ~~%%%%%%%%%-"/./
               ~~%%%%%%%-'   /`.
            ~~%%%%%%%%'.   ,__;
            ~~%%%%%%%%'   :       \O\
          ~~%%%%%%%%'    :          `.
       ~~%%%%%%%%'       `. _,      '
    ~~%%%%%%%%'          .'`-._      `.
~~%%%%%%%%%'         :   `-.   (,;
~~%%%%%%%%'             :         `._\_.'
~~%%   %%'            ;

NJ8888 发表于 2011-1-21 16:23:59

边沿触发后计数统计2us时间段,地电平计数(按你的一个时钟比如0.2us),根据计数值,能区分0 1 复位

h2feo4 发表于 2011-1-21 16:46:53

先说说我的思路吧
首先500KHz的系统时钟,即使双沿采样,也是不足以还原数据的
但用它来检测RESET还是绰绰有余的

如果我的话
首先要过采样,频率至少要比输入信号高一个数量级
第二步,用个双向计数器,在输入信号为1的时候向下计,0的时候向上计
等一个周期结束的时候,锁存结果并清零,看锁存到的计数值是大于0还是小于0就行了
更直接的说法是,计数值的最高位就是解码的结果

RESET的检测,用系统时钟计数低电平的宽度就行了

至于采样时钟从哪里来,有片上振荡器的可以直接用,没有的就搭个环形振荡器或者RC振荡器

这些东西全加起来也就二十几个MacroCell吧,¥5的CPLD足以应付了

linuxpro 发表于 2011-1-21 19:03:05

提高时钟频率,500kHz太低了。

kv2004 发表于 2011-1-21 20:05:22

时钟的上升沿和下降沿都缓存,如果与前一次相同,则低电平是0,高电平是1,三次或多次相同则reset
?

hxl_led 发表于 2011-1-21 22:45:16

lukeunderwood : 朋友是做LED显示的吧,我猜测你用的芯片不是天利就是天微

lukeunderwood 发表于 2011-1-22 15:10:23

回复【6楼】hxl_led
lukeunderwood : 朋友是做led显示的吧,我猜测你用的芯片不是天利就是天微
-----------------------------------------------------------------------

呵呵,我不是做LED显示的,这段时间一直在学VHDL,正好有人问我能不能用VHDL写出这个芯片,一时手痒,就尝试了一下。
不过这个芯片感觉还不错,过段时间没准会尝试一下。

lukeunderwood 发表于 2011-1-22 15:11:25

回复【3楼】h2feo4 无机酸
-----------------------------------------------------------------------

谢谢 h2feo4 无机酸 的点拨,我尝试一下。
页: [1]
查看完整版本: h2feo4 无机酸 请进,有个所谓“归零码”用VHDL识别的问题解决不了,实在没思路了。