OpenCores
URL https://opencores.org/ocsvn/wb_async_mem_bridge/wb_async_mem_bridge/trunk

Subversion Repositories wb_async_mem_bridge

[/] [wb_async_mem_bridge/] [trunk/] [src/] [sync_edge_detect.v] - Diff between revs 2 and 4

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 2 Rev 4
// --------------------------------------------------------------------
// --------------------------------------------------------------------
//
//
// --------------------------------------------------------------------
// --------------------------------------------------------------------
 
 
`include "timescale.v"
`include "timescale.v"
 
 
 
 
module sync_edge_detect (
module sync_edge_detect (
                          input async_sig,
                          input async_sig,
                          output sync_out,
                          output sync_out,
 
 
                          input clk,
                          input clk,
 
 
                          output reg rise,
                          output reg rise,
                          output reg fall
                          output reg fall
                        );
                        );
 
 
  reg [1:3] resync;
  reg [1:3] resync;
 
 
  always @(posedge clk)
  always @(posedge clk)
  begin
  begin
    // detect rising and falling edges.
    // detect rising and falling edges.
    rise <= ~resync[3] & resync[2];
    rise <= ~resync[3] & resync[2];
    fall <= ~resync[2] & resync[3];
    fall <= ~resync[2] & resync[3];
    // update history shifter.
    // update history shifter.
    resync <= {async_sig , resync[1:2]};
    resync <= {async_sig , resync[1:2]};
  end
  end
 
 
  assign sync_out = resync[2];
  assign sync_out = resync[2];
 
 
endmodule
endmodule
 
 
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.