[source]

Entity sync_Command

BITSINITSYNC_DEPTHClock1std_logicClock2std_logicInput[BITS - 1 downto 0]std_logic_vectorOutputstd_logic_vector[BITS - 1 downto 0]Busystd_logicChangedstd_logic

Block Diagram of sync_Command

This module synchronizes a vector of bits from clock-domain Clock1 to clock-domain Clock2. The clock-domain boundary crossing is done by a change comparator, a T-FF, two synchronizer D-FFs and a reconstructive XOR indicating a value change on the input. This changed signal is used to capture the input for the new output. A busy flag is additionally calculated for the input clock-domain. The output has strobe character and is reset to it's INIT value after one clock cycle.

Constraints:

This module uses sub modules which need to be constrained. Please attend to the notes of the instantiated sub modules.

Generics

Name

Type

Default

Description

BITS

positive

8

number of bit to be synchronized

INIT

std_logic_vector

x"00000000"

SYNC_DEPTH

T_MISC_SYNC_DEPTH

low

generate SYNC_DEPTH many stages, at least 2

Ports

Name

Type

Direction

Description

Clock1

std_logic

in

<Clock> input clock

Clock2

std_logic

in

<Clock> output clock

Input

std_logic_vector

in

@Clock1: input vector

Output

std_logic_vector

out

@Clock2: output vector

Busy

std_logic

out

@Clock1: busy bit

Changed

std_logic

out

@Clock2: changed bit