微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > "01"detector实现?

"01"detector实现?

时间:10-02 整理:3721RD 点击:
如何实现一个上升沿优先检测器(“01 detector”),即有5位二进制输入D1~D5,这些输入特点是一开始都是0,然后其中某一位会上升沿跳变为1,随后大概50ps后其后面的位依次跳变为1,比如是00100,则50ps后为00110或者00100,再50ps为00111或00110或00101或00100等。现在要检测第一个跳变为1的位置是第几位(D几),然后对应的输出Q几就输出为1,求解答。谢谢。

补充一下,比如最先上升沿跳变的是输入D2,则输出Q2为1,其余Q输出为0.

顶。

你加一个标志位,一旦输入不等于0就把标志位清掉,同时把输入赋值给输出,就ko


注意我只要一个输出为1,其余输出为0.而且保证时序正确。所以你的方法我没能理解怎么实现。

你试试:先初始化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



   恩,但是考虑这种清零反馈结构能够在50ps内完成吗?。因为我的上升沿是连续的。否则会产生错误



   额。能报一下你的系统时钟是多少吗?200MHZ以下都不会有问题的



   做的是ADPLL,参考频率打算10M以内,输出频率50~500M可调,这里尽量不采用带有CLOCK震荡时钟实现。那个输入两个1之间时间差会在50PS内。simlink里建模也是采用反馈清零方法,但是就考虑这个时序问题,不知道还有什么办法了



   计算一下建立时间有没有满足,可以先试试



   好的,谢谢啦!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top