FPGA Base Xilinx跨时钟域宏XPM_CDC

FPGA Base Xilinx跨时钟域宏XPM_CDC

最近看手底下的小伙子们写代码,对于跨时钟域的处理极度的不规范,还是放下这句话基础不牢,地动山摇

其实Xilinx公司已经为用户提供了宏定义,实现跨时钟域处理,见截图

在这里插入图片描述

XPM_CDC在命名上已经告知用户不同的XPM_CDC用于处理不同场景下的跨时钟域处理。

如果对于截图中的CDC用法不是很了解,建议在bing上搜索,会有很丰富的资料讲解。

Verilog HDL 核心在于Hardware Description Language,掌握基础后通过搭积木的方式来形成你的设计,在底层的处理与细节上不要试图去发挥,违背原则

习惯养好,不说称为优秀的FPGA工程师,至少不拉跨。

在Xilinx的UG949中,CDC章节中两张图指导工程师如何思考CDC

单比特跨时钟域
在这里插入图片描述

多比特跨时钟域
在这里插入图片描述

疫情期间,希望大家各自安好。。。

来自你们的Tony老师

  • 9
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
xpm_cdc_array_single是Xilinx的一个函数,用于生成一个时钟域交叉域转换(CDC)单口RAM,其使用方法如下: ``` xpm_cdc_array_single #( .ADDR_WIDTH(ADDR_WIDTH), // 地址位宽 .DATA_WIDTH(DATA_WIDTH), // 数据位宽 .INIT_FILE(INIT_FILE), // 初始化文件名 .WRITE_MODE(WRITE_MODE), // RAM写模式 .READ_MODE(READ_MODE), // RAM读模式 .RAM_STYLE(RAM_STYLE), // RAM类型 .READ_LATENCY(READ_LATENCY), // 读取延迟 .WRITE_LATENCY(WRITE_LATENCY), // 写入延迟 .CLK_POLARITY(CLK_POLARITY), // 时钟极性 .ASYNC_READ(ASYNC_READ), // 异步读使能 .USE_MEM_INIT(USE_MEM_INIT), // 使用内存初始化 .MEMORY_INIT_FILE(MEMORY_INIT_FILE) // 内存初始化文件名 ) ( input wire CLK, // 时钟信号 input wire RST, // 复位信号 input wire CE, // 使能信号 input wire [ADDR_WIDTH-1:0] DINA, // 写入数据 input wire [ADDR_WIDTH-1:0] ADDRA, // 写入地址 output reg [DATA_WIDTH-1:0] DOUTB, // 读取数据 input wire [ADDR_WIDTH-1:0] ADDRB, // 读取地址 input wire WE, // 写使能信号 input wire [DATA_WIDTH-1:0] DATAB // 读取数据 ); ``` 其中,各个参数的含义如下: - `ADDR_WIDTH`:地址位宽 - `DATA_WIDTH`:数据位宽 - `INIT_FILE`:初始化文件名 - `WRITE_MODE`:RAM写模式 - `READ_MODE`:RAM读模式 - `RAM_STYLE`:RAM类型 - `READ_LATENCY`:读取延迟 - `WRITE_LATENCY`:写入延迟 - `CLK_POLARITY`:时钟极性 - `ASYNC_READ`:异步读使能 - `USE_MEM_INIT`:使用内存初始化 - `MEMORY_INIT_FILE`:内存初始化文件名 - `CLK`:时钟信号 - `RST`:复位信号 - `CE`:使能信号 - `DINA`:写入数据 - `ADDRA`:写入地址 - `DOUTB`:读取数据 - `ADDRB`:读取地址 - `WE`:写使能信号 - `DATAB`:读取数据 使用xpm_cdc_array_single生成的RAM是一个时钟域交叉域转换(CDC)单口RAM,可用于FPGA设计中的异步数据传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值