在进行FPGA的设计时,经常会需要在综合、实现的阶段添加约束,以便能够控制综合、实现过程,使设计满足我们需要的运行速度、引脚位置等要求。通常的做法是设计编写约束文件并导入到综合实现工具,在进行FPGA/CPLD的综合、实现过程中指导逻辑的映射和布局布线。下面主要总结一下Xilinx FPGA时序约束设计和分析。

一、周期约束

周期约束是Xilinx FPGA 时序约束中最常见的约束方式。它附加在时钟网线上,时序分析工具会根据周期约束来检查时钟域内所有同步元件的时序是否满足需求。周期约束会自动的寄存器时钟端的反相。如果相邻的两个元件的时钟相位是相反的,那么它们之间的延迟将被默认的限制成周期约束的一半。

fpga设计属于IC设计中的一个分支,在IC设计过程中,占据重要的地位。下面给出一种在FPGA中,高速串行数据流的一种处理方法。

基本原理

高速串行数据流数据处理主要包括以下几个部分:

过采样:以高速时钟对串行数据比特流进行采样,一般取4倍或以上时钟(根据选择FPGA器件进行时钟速率选取);

数据修正:对过采样的数据进行修正,目的是适应收发双方频差,使得接收方能够正确解析数据、按照标称时钟速率还原接收串行数据;

边沿对齐:根据信号编码方式进行边沿数据处理,如NRZI编解码/曼彻斯特编解码,不同编码处理其处理方式各有不同;

串-并转换:根据数据帧概念完成串行数据到并行数据转换,进行数据帧解析。

数据过采样

以xilinx器件为例,接收方主要采取IDDR/ISERDERS2源语进行数据过采样,工作模式采取SAME_EDGE_PIPELINED工作模式,采取4倍频采样。

在FPGA设计中,我们通常采用的都是“自顶向下”的设计方法,即现有顶层设计,再有细节设计。比如先有整个项目的功能框图、数据流程图等,然后再细分功能到一级模块,每个一级模块再细分到二级、三级甚至更低级别的模块。除了每个模块的设计,如何把模块连接起来?也是一个很有趣且重要的话题,这就是我们通常说的内部模块接口。这里先介绍几种常见的内部模块接口。

FIFO(First In First Out)是一种先进先出的存储结构,经常被用来在FPGA设计中进行数据缓存或者匹配传输速率。

本文主要介绍FIFO深度计算的方法,FIFO的一个关键参数是其深度,也就是FIFO能够存储的数据条数,FIFO深度设计的合理,可以防止数据溢出,也可以节省FPGA资源的消耗。

随着人工智能、深度学习在市场越来越受欢迎,除了GPU、众多独角兽公司的AI专用芯片,FPGA同样是深度学习的热门平台之一。本文将给大家介绍5款强大到不可思议的FPGA开发板,当然价格也是高的离谱,肯能对于大多数工程师来说,这些属于求而不得的高端“玩具”。

RTG4开发套件

RTG4-DEV-KIT是Microsemi公司的产品,当然目前的话已经被Microchip收购,这是一套为高端的客户提供的评估和开发平台,主要用于数据传输,串行连接,总线接口等高密度高性能FPGA的高速设计等应用 。

该开发板采用RT4G150器件,采用陶瓷封装,提供150,000个逻辑元件,具有1,657个引脚,下图是RTG4-DEV-KIT开发板的外设接口功能图。