在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4013|回复: 10

[求助] "01"detector实现?

[复制链接]
发表于 2014-9-13 10:30:47 | 显示全部楼层 |阅读模式

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

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

x
如何实现一个上升沿优先检测器(“01 detector”),即有5位二进制输入D1~D5,这些输入特点是一开始都是0,然后其中某一位会上升沿跳变为1,随后大概50ps后其后面的位依次跳变为1,比如是00100,则50ps后为00110或者00100,再50ps为00111或00110或00101或00100等。现在要检测第一个跳变为1的位置是第几位(D几),然后对应的输出Q几就输出为1,求解答。。。谢谢。
 楼主| 发表于 2014-9-13 10:32:10 | 显示全部楼层
补充一下,比如最先上升沿跳变的是输入D2,则输出Q2为1,其余Q输出为0.
 楼主| 发表于 2014-9-17 08:46:56 | 显示全部楼层
顶。。
发表于 2014-9-17 15:48:57 | 显示全部楼层
你加一个标志位,一旦输入不等于0就把标志位清掉,同时把输入赋值给输出,就ko
 楼主| 发表于 2014-9-18 10:12:07 | 显示全部楼层
回复 4# 成长中的原始人

注意我只要一个输出为1,其余输出为0.而且保证时序正确。所以你的方法我没能理解怎么实现。
发表于 2014-9-18 11:07:48 | 显示全部楼层
你试试:先初始化flag<=0;
              if(!flag) begin
                 dout<= din;
                 if(din != 5'd0) begin
                      flag <= 1'd1;
                 end  
                 else begin
                      flag <= 1'd0;
                 end  
            end
            else begin
                 dout <= dout;
                 flag <= flag;
            end
 楼主| 发表于 2014-9-23 15:30:21 | 显示全部楼层
回复 6# 成长中的原始人


   恩,但是考虑这种清零反馈结构能够在50ps内完成吗?。。因为我的上升沿是连续的。否则会产生错误
发表于 2014-9-23 16:01:14 | 显示全部楼层
回复 7# 土豆烧牛肉WOW


   额。。。。能报一下你的系统时钟是多少吗?200MHZ以下都不会有问题的
 楼主| 发表于 2014-9-23 21:33:12 | 显示全部楼层
回复 8# 成长中的原始人


   做的是ADPLL,参考频率打算10M以内,输出频率50~500M可调,这里尽量不采用带有CLOCK震荡时钟实现。那个输入两个1之间时间差会在50PS内。simlink里建模也是采用反馈清零方法,但是就考虑这个时序问题,不知道还有什么办法了 QQ截图20140923213846.png
发表于 2014-9-24 09:22:32 | 显示全部楼层
回复 9# 土豆烧牛肉WOW


   计算一下建立时间有没有满足,可以先试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-25 09:23 , Processed in 0.031007 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表