URL
https://opencores.org/ocsvn/wb_async_mem_bridge/wb_async_mem_bridge/trunk
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
|
|
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.