FPGA hold违例一般是异步信号导致的,可以通过以下几种方式解决:
1. set_false_path或者set_multicycle_path
set_false_path -from <startpoints> -to <endpoints>
set_multicycle_path <num cycles> -from <startpoints> -to <endpoints>
2. async_fifo
异步fifo,传统方法
3. xpm_cdc
xpm_cdc_array_single #(
.VERSION (),
.SIM_ASSERT_CHK (),
.DEST_SYNC_FF (),
.WIDTH (),
.SRC_INPUT_REG ()
) xpm_array_single_inst (
.src_clk (),
.src_in (),
.dest_clk (),
.dest_out ()
);
xpm_cdc_single #(
.VERSION (),
.SIM_ASSERT_CHK (),
.DEST_SYNC_FF (),
.SRC_INPUT_REG ()
) xpm_single_inst (
.src_clk (),
.src_in (),
.dest_clk (),
.dest_out ()
);