本文介绍设计电路板的过程,包括基本步骤和技术,以及FPGA的应用和发展方向。

FPGA(可编程门阵列)是一种功能强大的电子设备,它由多个逻辑块通过互连线连接在一起。通过按需连接逻辑块,可以创建简单或复杂的电路。你可以将FPGA想象成一个大盒子里的乐高积木,可以按照你的意愿组合出各种类型的数字电路,从简单的异或门(XOR)到中央处理器(CPU),甚至整个系统(如果你有足够的资金购买最大规模的设备)。

FPGAs已被广泛应用于许多领域,其中之一就是模拟旧系统。MiSTer就是一个例子,Jeri Ellsworth的C-One是另一个例子。但事实上,FPGAs无处不在,它们快速、稳定,并且适应大多数应用场景。

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

一、周期约束

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

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

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

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

基本原理

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

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

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

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

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

数据过采样

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

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