Entity handshake
entity handshake<T>(clk1: clock, rst: bool, data: Option<T>, clk2: clock) -> Option<T>Expand
Synchronize data from clk1 to clk2 via handshaking. Primarily to be used to cross domains of similar speed. A single pulse on data in clk1 results in a single output in clk2. If data is active for more than one cycle, the behaviour is undefined. Likewise if data occurs too frequently, i.e. within a few clock cycles in the slowest domain