XPM_CDC_HANDSHAKE(UG974)

news2024/12/24 8:33:45

Parameterized Macro: Bus Synchronizer with Full Handshake(参数化宏:具有完全握手的总线同步器)

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

1、  Introduction(介绍)
      
  此宏使用握手信令将输入总线从源时钟域传输到目标时钟域。应使用此宏的一个示例是,传输的数据与使用GRAY编码的XPM_CDC_GRAY宏不兼容。
        为了使该宏正确运行,需要进行完全握手,即确认已接收到数据传输,并重置握手信号⁠—必须在启动另一个数据传输之前完成。
        可以定义同步器中用于在时钟域之间单独传输握手信号的寄存器级的数量。还可以包含内部握手逻辑,以确认接收到目标时钟域上的数据。
        启用此功能后,当断言数据有效(dest_req)时,必须立即消耗输出(dest_out)。还可以启用仿真特性来生成消息,以报告宏的任何潜在滥用。当提供给宏的信令违反上述使用指南时,这些消息将产生错误。
        注:当XPM_CDC_HANDSHAKE模块用于设计并运行report_CDC时,此模块中同步的数据总线将报告为CDC-15类型的警告,即时钟使能控制的CDC。可以安全地忽略此警告。从2018.3开始,通过在Tcl约束文件中添加CDC-15豁免,此警告已被抑制。

2、Port Descriptions(端口声明)

端口方向宽度时钟域敏感类型如未使用处理方法功能
dest_ack输入1dest_clk高电平0如果DEST_EXT_HSK=1,则目的地逻辑确认。
DEST_EXT_HSK=0时未使用。
断言该信号表示dest_out上的数据已被目的地逻辑捕获。
一旦dest_req被解除断言,就应该解除该信号的断言,从而完成目的时钟域上的握手,并指示目的逻辑已准备好进行新的数据传输。
dest_clk输入1NA上升沿敏感激活目标时钟
dest_out输出WIDTHdest_clkNA激活与目标时钟域同步的输入总线(src_in)。
此输出是寄存器类型。
dest_req输出1dest_clk高电平激活该信号的断言指示已经接收到新的dest_out数据,并且准备由目的地逻辑使用或捕获。
•当DEST_EXT_HSK=1时,一旦源握手确认目标时钟域已接收到传输的数据,该信号将取消断言。
•当DEST_EXT_HSK=0时,当DEST_out总线有效时,该信号在一个时钟周期内断言。
此输出是寄存器类型。
src_clk输入1NA上升沿敏感激活源时钟
src_in输入WIDTHsrc_clkNA激活将被目的时钟同步的输入总线
src_rcv输出1src_clk高电平激活来自目标逻辑的已接收src_in的确认。
一旦目的地握手完全完成,该信号将被取消断言,从而完成完整的数据传输。
此输出为寄存器类型。
src_send输入1src_clk高电平激活该信号的断言允许src_in总线与目标时钟域同步。
•只有当src_rcv被取消断言时,才应断言该信号,表明
之前的数据传输已完成。
•只有在src_rcv被断言时,该信号才应被取消断言,确认src_in已被目标逻辑接收。

3、 Design Entry Method

Instantiation(实例化)
Inference(推断)
IP and IP Integrator Catalog

4、 Available Attributes

属性类型可用值默认值描述
DEST_EXT_HSKDECIMAL1,010-将在宏中实现内部握手,以确认接收到目标时钟域上的数据。
使用此选项时,必须消耗有效的dest_out输出
以避免任何数据丢失。
1-用户必须实现外部握手逻辑,以确认接收到目标时钟域上的数据。
DEST_SYNC_FFDECIMAL2 至104用于同步目标时钟域中的信号的寄存器级数。
INIT_SYNC_FFDECIMAL0,100-禁用同步寄存器上的行为模拟初始化值。
1-在同步寄存器上启用行为模拟初始化值。
SIM_ASSERT_CHKDECIMAL0,10,10-禁用模拟消息报告。与潜在滥用相关的信息将不会被报告。
1-启用模拟消息报告。将报告与潜在滥用有关的信息。
SRC_SYNC_FFDECIMAL2 至104用于同步源时钟域中的信号的寄存器级数。
WIDTHDECIMAL1至10241将同步到目标时钟域的总线宽度。

5、
5.1 VHDL Instantiation Template

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

Library xpm;
use xpm.vcomponents.all;
-- xpm_cdc_handshake: Bus Synchronizer with Full Handshake
-- Xilinx Parameterized Macro, version 2022.2
xpm_cdc_handshake_inst : xpm_cdc_handshake
generic map (
DEST_EXT_HSK => 1, -- DECIMAL; 0=internal handshake, 1=external handshake
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_SYNC_FF => 4, -- DECIMAL; range: 2-10
WIDTH => 1 -- DECIMAL; range: 1-1024
)
port map (
dest_out => dest_out, -- WIDTH-bit output: Input bus (src_in) synchronized to destination clock domain.
-- This output is registered.
dest_req => dest_req, -- 1-bit output: Assertion of this signal indicates that new dest_out data has been
-- received and is ready to be used or captured by the destination logic. When
-- DEST_EXT_HSK = 1, this signal will deassert once the source handshake
-- acknowledges that the destination clock domain has received the transferred
-- data. When DEST_EXT_HSK = 0, this signal asserts for one clock period when
-- dest_out bus is valid. This output is registered.
src_rcv => src_rcv, -- 1-bit output: Acknowledgement from destination logic that src_in has been
-- received. This signal will be deasserted once destination handshake has fully
-- completed, thus completing a full data transfer. This output is registered.
dest_ack => dest_ack, -- 1-bit input: optional; required when DEST_EXT_HSK = 1
dest_clk => dest_clk, -- 1-bit input: Destination clock.
src_clk => src_clk, -- 1-bit input: Source clock.
src_in => src_in, -- WIDTH-bit input: Input bus that will be synchronized to the destination clock
-- domain.
src_send => src_send -- 1-bit input: Assertion of this signal allows the src_in bus to be synchronized
-- to the destination clock domain. This signal should only be asserted when
-- src_rcv is deasserted, indicating that the previous data transfer is complete.
-- This signal should only be deasserted once src_rcv is asserted, acknowledging
-- that the src_in has been received by the destination logic.
);
-- End of xpm_cdc_handshake_inst instantiation

5.2 Verilog Instantiation Template

// xpm_cdc_handshake: Bus Synchronizer with Full Handshake
// Xilinx Parameterized Macro, version 2022.2
xpm_cdc_handshake #(
.DEST_EXT_HSK(1), // DECIMAL; 0=internal handshake, 1=external handshake
.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_SYNC_FF(4), // DECIMAL; range: 2-10
.WIDTH(1) // DECIMAL; range: 1-1024
)
xpm_cdc_handshake_inst (
.dest_out(dest_out), // WIDTH-bit output: Input bus (src_in) synchronized to destination clock domain.
// This output is registered.
.dest_req(dest_req), // 1-bit output: Assertion of this signal indicates that new dest_out data has been
// received and is ready to be used or captured by the destination logic. When
// DEST_EXT_HSK = 1, this signal will deassert once the source handshake
// acknowledges that the destination clock domain has received the transferred data.
// When DEST_EXT_HSK = 0, this signal asserts for one clock period when dest_out bus
// is valid. This output is registered.
.src_rcv(src_rcv), // 1-bit output: Acknowledgement from destination logic that src_in has been
// received. This signal will be deasserted once destination handshake has fully
// completed, thus completing a full data transfer. This output is registered.
.dest_ack(dest_ack), // 1-bit input: optional; required when DEST_EXT_HSK = 1
.dest_clk(dest_clk), // 1-bit input: Destination clock.
.src_clk(src_clk), // 1-bit input: Source clock.
.src_in(src_in), // WIDTH-bit input: Input bus that will be synchronized to the destination clock
// domain.
.src_send(src_send) // 1-bit input: Assertion of this signal allows the src_in bus to be synchronized to
// the destination clock domain. This signal should only be asserted when src_rcv is
// deasserted, indicating that the previous data transfer is complete. This signal
// should only be deasserted once src_rcv is asserted, acknowledging that the src_in
// has been received by the destination logic.
);
// End of xpm_cdc_handshake_inst instantiation


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/464191.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT国内可用版-国内chatGPT哪个软件好用

国内chatGPT哪个软件最好用 国内对接ChatGPT软件,让智能的对话变得更加简单便捷!ChatGPT是由OpenAI公司开发的最新一代自然语言处理技术,为聊天机器人赋予了更加真实、流畅、智能的语言表达能力。 我们是国内一家专注于人工智能和自然语言处…

手撕源码(一)HashMap(JDK8)

目录 1.使用示例2.new HashMap<>() 解析2.1 加载因子2.2 构造方法 3.put() 解析3.1 原始put(k, v)3.2 计算哈希1&#xff09;为什么要进行二次hash&#xff1f;2&#xff09;二次hash计算示例&#xff1a;3&#xff09;为什么使用 (length-1)&hash 而不是 hash%lengt…

Centos 搭建共享数据发布服务器

Centos 搭建共享数据发布服务器 1. 下载系统镜像2. 制作系统盘3. 制作系统3.1 BIOS设置3.2 安装系统3.3 重做系统 4 配置服务器4.1 挂载硬盘4.2 配置账号4.3 配置samba4.4 配置ftp1. 安装ftp2. 配置ftp 5. 验证5.1 验证ftp5.2 验证samba 共享服务器策略简述&#xff1a; smb提…

耐腐蚀高速电动针阀在半导体硅片清洗机化学药液流量控制中的应用

摘要&#xff1a;化学药液流量的精密控制是半导体湿法清洗工艺中的一项关键技术&#xff0c;流量控制要求所用调节针阀一是开度电动可调、二是具有不同的口径型号、三是高的响应速度&#xff0c;四是具有很好的耐腐蚀性&#xff0c;这些都是目前提升半导体清洗设备性能需要解决…

PXI 24位动态信号数据采集模块软硬件设计方案,支持国产

【IEPE传感器&#xff08;音频测试&#xff0c;噪音测试&#xff0c;振动分析&#xff09;】 符合PXI规范2.2版 24位Sigma-Delta ADC与DAC 采样率最高达432 KS/s&#xff0c;可软件编程 可编程输入范围&#xff1a;40 V&#xff0c;10 V&#xff0c;3.16 V&#xff0c; 1 V&…

Spring Bean的顺序

之前的文章已经讲过&#xff0c;Spring Bean的创建是通过动态代理实现的&#xff0c;防止浪费篇幅&#xff0c;我们直接看Bean的循环创建代码&#xff1b; 这里我们可以看到 Bean 的创建是通过: List<String> beanNames new ArrayList<>(this.beanDefinitionName…

Linux服务使用宝塔面板搭建网站,并发布公网访问 - 内网穿透(1)

文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 转载自远程内网穿透的文章&#xff1a;Linux使用宝塔面板搭建网站&#xff0c;并内网穿透实现公网访问 前言 宝塔面板作为简单好用的服务器运维管理面板&#…

el-input 只能输入整数(包括正数、负数、0)或者只能输入整数(包括正数、负数、0)和小数

使用el-input-number标签 也可以使用typenumbe和v-model.number属性&#xff0c;两者结合使用&#xff0c;能满足大多数需求&#xff0c;如果还不满足&#xff0c;可以再结合正则表达式过滤 <el-input v-model.number"value" type"number" /> el-i…

孙溟㠭先生篆刻欣赏——“数”

孙溟㠭篆刻作品《数》 孙溟㠭篆刻作品《数》 线条之美可见一斑。游龙戏凤&#xff0c;嬉戏又雅趣。此时溟㠭先生之心境又如何&#xff1f; 人生几多戏谑&#xff0c;世事几多无常&#xff1b;趣心对待&#xff0c;过而无痕。何必拘束&#xff1f;何必强求规矩&#xff1f;突…

测量射频器件噪声系数的三种方法盘点

本文介绍了测量噪声系数的三种方法&#xff1a;增益法、Y系数法和噪声系数测试仪法。这三种方法的比较以表格的形式给出。 在无线通信系统中&#xff0c;噪声系数&#xff08;NF&#xff09;或者相对应的噪声因数(F)定义了噪声性能和对接收机灵敏度的贡献。本篇应用笔记详细阐…

P1043 [NOIP2003 普及组] 数字游戏

题目描述 丁丁最近沉迷于一个数字游戏之中。这个游戏看似简单&#xff0c;但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易。游戏是这样的&#xff0c;在你面前有一圈整数&#xff08;一共 &#xfffd;n 个&#xff09;&#xff0c;你要按顺序…

Java List、Set、Map区别

概述 集合类存放于java.util包中。集合类存放的都是对象的引用&#xff0c;而非对象本身。常见的集合主要有三种——Set(集&#xff09;、List&#xff08;列表&#xff09;和Map&#xff08;映射&#xff09;。List和Set 都实现了 Collection 接口&#xff0c;并且List和Set也…

php执行语句在MySQL批量插入大数据量的解决方案及计算程序执行时间(大数据量、MySQL语句优化)

MySQL里批量插入大数据的解决方案 前言一、PHP计算程序执行时间二、Mysql批量插入数据1.INSERT INTO 语句2.批量插入大数据2.1 使用循环$sql的方式2.2 循环(值1, 值2,....)的语句2.3测试过程出现的错误 前言 近期在MySQL报表开发过程中&#xff0c;需要爬取多API返回JSON数据&…

MySql中执行计划如何来的——Optimizer Trace | 京东云技术团队

作者&#xff1a;京东物流 籍磊 1.前言 当谈到MySQL的执行计划时&#xff0c;会有很多同学想&#xff1a;“我就觉得使用其他的执行方案比EXPLAIN语句输出的方案强&#xff0c;凭什么优化器做的决定与我得不一样&#xff1f;”。这个问题在MySQL 5.6之前或许自己很难解决&…

真题详解(磁盘)-软件设计(五十八)

真题详解&#xff08;MTTR&#xff09;-软件设计&#xff08;五十七)https://blog.csdn.net/ke1ying/article/details/130354940 1、2021年上半年 解析&#xff1a; 哈希地址 0 1 2 3 4 5 6 7 8 9 10 构建哈希表 第一步&#xff1a;3%11 3 &#xff0c;放在哈希地址3的位置…

如何申请gpt4.0-如何接入ChatGPT4

如何接入ChatGPT4 ChatGPT-4是OpenAI公司推出的最新自然语言处理技术&#xff0c;采用深度学习算法&#xff0c;旨在提供更加高效、准确的人工智能语言处理能力。如果您想要接入ChatGPT-4&#xff0c;您可以按照以下步骤&#xff1a; 注册OpenAI账号并申请API密钥&#xff1a;…

2022年NOC大赛创客智慧编程赛道Python初赛题,包含答案

目录 一、单选题 二、多选题 三、判断题 下载文档打印做题: NOC Python 初赛考题 一、单选题 <

【c语言】typedef的基本用法 | 定义格式

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…

【图像分割】【深度学习】SAM官方Pytorch代码-Image encoder模块Vision Transformer网络解析

【图像分割】【深度学习】SAM官方Pytorch代码-Image encoder模块Vision Transformer网络解析 Segment Anything&#xff1a;建立了迄今为止最大的分割数据集&#xff0c;在1100万张图像上有超过1亿个掩码&#xff0c;模型的设计和训练是灵活的&#xff0c;其重要的特点是Zero-s…

从Domino目录导出你想要的信息

大家好&#xff0c;才是真的好。 无论出于什么原因&#xff0c;很多时候&#xff0c;我们要从Domino目录&#xff08;names.nsf&#xff09;中导出人员、群组或Domino相关的配置信息。不过更多时候&#xff0c;还没开始导&#xff0c;很多人就说Domino封闭&#xff0c;不让导出…