PoC.misc.sync.Bits
This module synchronizes multiple flag bits into clock-domain Clock
.
The clock-domain boundary crossing is done by two synchronizer D-FFs. All
bits are independent from each other. If a known vendor like Altera or Xilinx
are recognized, a vendor specific implementation is chosen.
Attention
Use this synchronizer only for long time stable signals (flags).
- Constraints:
- General:
Please add constraints for meta stability to all ‘_meta’ signals and timing ignore constraints to all ‘_async’ signals.
- Xilinx:
In case of a Xilinx device, this module will instantiate the optimized module PoC.xil.sync.Bits. Please attend to the notes of sync_Bits.vhdl.
- Altera sdc file:
TODO
Entity Declaration:
1entity sync_Bits is
2 generic (
3 BITS : positive := 1; -- number of bit to be synchronized
4 INIT : std_logic_vector := x"00000000"; -- initialization bits
5 SYNC_DEPTH : T_MISC_SYNC_DEPTH := T_MISC_SYNC_DEPTH'low; -- generate SYNC_DEPTH many stages, at least 2
6 FALSE_PATH : boolean := true;
7 REGISTER_OUTPUT : boolean := false
8 );
9 port (
10 Clock : in std_logic; -- <Clock> output clock domain
11 Input : in std_logic_vector(BITS - 1 downto 0); -- @async: input bits
12 Output : out std_logic_vector(BITS - 1 downto 0) -- @Clock: output bits
See also
- PoC.misc.sync.Reset
For a special 2 D-FF synchronizer for reset-signals.
- PoC.misc.sync.Pulse
For a special 1+2 D-FF synchronizer for pulse-signals.
- PoC.misc.sync.Strobe
For a synchronizer for strobe-signals.
- PoC.misc.sync.Vector
For a multiple bits capable synchronizer.