源同步系统设计,如何处理FPGA输出时钟和数据

来源:本站
导读:目前正在解读《源同步系统设计,如何处理FPGA输出时钟和数据》的相关信息,《源同步系统设计,如何处理FPGA输出时钟和数据》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《源同步系统设计,如何处理FPGA输出时钟和数据》的详细说明。
简介:本文主要介绍如何处理FPGA输出时钟和数据,感兴趣的朋友可以看看。

在FPGA的源同步的系统设计中,常常我们会碰到把随路时钟和数据一同输出的情形,如同下面的系统:

源同步系统设计,如何处理FPGA输出时钟和数据

在这样的系统中,要求输出时钟o_clk和o_dat要由严格的相位对齐关系,一般是边沿对齐或者中心对齐。

那么如何才能保证上述相位对齐关系呢?

(1) 第一种做法(这样用的人不少)。

对于数据,通常用系统时钟打一拍或者不打拍,组合逻辑直接输出。

对于时钟,通常直接把FPGA内部的系统时钟赋值到IO PAD的输出管脚上。

如下所示:

assign O_CLK = sys_clk;

always@(posedge sys_clk)

o_dat= data_i;

// or assign O_dat =data_i;

这样的处理方式,需要约束文件里面通过offset out(UCF,SDC类似)约束输出时钟和数据的相位关系。

上面的处理方式其实对于FPGA不是最优选择。而且对于时钟直接赋值输出的处理方式,在某些器件上还会产生错误!更好的处理方式是下面第2中:

(2) 第二种做法

对于输出的数据,无论如何都要做到最终送到IO PAD时,是寄存器输出。这样我们可以把寄存器约束到IOPAD里面的IO LOGIC里面,保证所有数据输出延迟的一致性。

对于时钟,通过类似ODDR2的元件来产生一个时钟镜像输出:

源同步系统设计,如何处理FPGA输出时钟和数据

这样的处理方式,不管是数据,还是时钟,实际上都是寄存器输出,而且都可以把它们放置到IO PAD里面,保证了时钟和所有数据相对相位关系的一致性。

提醒:《源同步系统设计,如何处理FPGA输出时钟和数据》最后刷新时间 2024-03-14 00:58:40,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《源同步系统设计,如何处理FPGA输出时钟和数据》该内容的真实性请自行鉴别。