XPM_CDC_SINGLE(UG974)

2023-12-23 18:04:46

Parameterized Macro: Single-bit Synchronizer(参数化宏:单比特同步器)

  • MACRO_GROUP:?XPM
  • MACRO_SUBGROUP: XPM_CDC
  • Families: UltraScale, UltraScale+

1、 Introduction(介绍)

? ? ? ??此宏将一个一位信号从源时钟域同步到目标时钟域。为了正确操作,输入数据必须由目标时钟采样两次或两次以上。您可以定义同步器中使用的寄存器级数。可选的输入寄存器可以用于在源时钟域中的输入被同步之前将其寄存。还可以启用仿真特性来生成消息,以报告宏的任何潜在滥用。

2、Port Descriptions(端口描述)

端口方向宽度时钟域敏感类型未使用时处理方式功能
dst_clk输入1NA边沿敏感激活目的时钟域的时钟信号
dest_out输出1dst_clkNA激活要被同步到目的时钟的信号,为寄存器类型
src_clk1NA边沿敏感0当SRC_INPUT_REG = 1.时,为src_in的输入时钟,SRC_INPUT_REG = 0时未使用
src_in1src_clkNA激活要被同步到dest_clk时钟域的输入信号

3、Design Entry Method(设计输入方法)
?

实例化
引用
IP和IP Intergator Catalog

4、Available Attributes(可用属性)
?

属性类型允许值默认值描述
DEST_SYNC_FF十进制2—104用于同步目标时钟域中的信号的寄存器级数。
INIT_SYNC_FF十进制0,10

0-禁用同步寄存器上的行为模拟初始化值。

1-在同步寄存器上启用行为模拟初始化值。

SIM_ASSERT_CHK十进制0,10

0-禁用模拟消息报告。与潜在滥用相关的信息将不会被报告。

1-启用模拟消息报告。将报告与潜在滥用有关的信息。

SRC_INPUT_REG十进制1,01

0-不注册输入(src_in)

1-使用src_clk注册输入(src_in)一次

5、VHDL Instantiation Template(VHDL实例化模板)

除非它们已经存在,否则复制以下两个语句并将它们粘贴在实体声明之前。

Library xpm;
use xpm.vcomponents.all;
-- xpm_cdc_single: Single-bit Synchronizer
-- Xilinx Parameterized Macro, version 2023.1
xpm_cdc_single_inst : xpm_cdc_single
generic map (
 DEST_SYNC_FF => 4, -- DECIMAL; range: 2-10
 INIT_SYNC_FF => 0, -- DECIMAL; 0=disable simulation init values, 1=enable simulation init values
 SIM_ASSERT_CHK => 0, -- DECIMAL; 0=disable simulation messages, 1=enable simulation messages
 SRC_INPUT_REG => 1 -- DECIMAL; 0=do not register input, 1=register input
)
port map (
 dest_out => dest_out, -- 1-bit output: src_in synchronized to the destination clock domain. This output
 -- is registered.
 dest_clk => dest_clk, -- 1-bit input: Clock signal for the destination clock domain.
 src_clk => src_clk, -- 1-bit input: optional; required when SRC_INPUT_REG = 1
 src_in => src_in -- 1-bit input: Input signal to be synchronized to dest_clk domain.
);
-- End of xpm_cdc_single_inst instantiation

6、Verilog Instantiation Template

// xpm_cdc_single: Single-bit Synchronizer
// Xilinx Parameterized Macro, version 2023.1
xpm_cdc_single #(
 .DEST_SYNC_FF(4), // DECIMAL; range: 2-10
 .INIT_SYNC_FF(0), // DECIMAL; 0=disable simulation init values, 1=enable simulation init values
 .SIM_ASSERT_CHK(0), // DECIMAL; 0=disable simulation messages, 1=enable simulation messages
 .SRC_INPUT_REG(1) // DECIMAL; 0=do not register input, 1=register input
)
xpm_cdc_single_inst (
 .dest_out(dest_out), // 1-bit output: src_in synchronized to the destination clock domain. This output is
 // registered.
 .dest_clk(dest_clk), // 1-bit input: Clock signal for the destination clock domain.
 .src_clk(src_clk), // 1-bit input: optional; required when SRC_INPUT_REG = 1
 .src_in(src_in) // 1-bit input: Input signal to be synchronized to dest_clk domain.
);
// End of xpm_cdc_single_inst instantiation



?

文章来源:https://blog.csdn.net/qq_33300585/article/details/130270647
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。