题解 | #脉冲同步电路#

脉冲同步电路

https://www.nowcoder.com/practice/b7f37e6c55e24478aef4ec2d738bbf07

单bit同步电路: 脉冲检测: 结绳法
// 结绳法: 快->慢、 慢->快
// 第一种:利用脉冲边沿做时钟;采集到的信号做异步复位;
//第二种:利用脉冲的电平做选择器、异步复位置位;
    第二种:输出Q一直维持为1,直到下一个脉冲到来;ouptu异或,在第一次q=1,reg3reg4 1,0 输出为1;q保持不变,在第二个脉冲到来q=0, 0,1输出1 会一直锁存q,因此可以检测,延长脉冲
下面是第二种方法的程序:

//  data_in==1 之后 reg_fast的输出一直为1,直到下一次data_in ==1;reg_fast==0 延长脉冲
 always@(posedge clk_fast or negedge rst_n) begin
        if(!rst_n) begin
           reg_fast <= 1'b0;
        end
        else 
            reg_fast <= fast_data;
    end
 assign fast_data = (data_in) ? (~ reg_fast) : reg_fast;
  
// B时钟域下打两拍同步
// data_out的输出 由reg2,reg3异或得到,reg_fast的输出跳变时,才会输出1
  always@(posedge clk_slow or negedge rst_n) begin
        if(!rst_n) begin
            reg1_slow <= 1'b0;
            reg2_slow <= 1'b0;
            reg3_slow <= 1'b0;
        end
        else begin
              reg1_slow <= reg_fast;
              reg2_slow <= reg1_slow;
              reg3_slow <= reg2_slow;
        end
    end
    
    assign dataout = reg3_slow ^ reg2_slow;
// clkB需要等待3个clkb,完成输出并复位
// clkA_data的频率大于clkB的1/3,则clkA的变化无法被采样到
// 慢采快,结绳法适合数据较少的控制信息




#你最想在哪个城市工作#
全部评论

相关推荐

白火同学:能。我当初应届沟通了1200,收简历50,面试10左右吧,加油投吧
点赞 评论 收藏
分享
ResourceUtilization:四六级不愧是大学最有用的证之一
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务