05 FPGA具体硬件模块
Last edited by
Tags
Timing Analysis
Fpga Design
Memory Usage
Last edited time
Sep 13, 2024 08:38 AM
AI summary
文档讨论了FPGA的具体硬件模块,包括时钟边沿前后数据信号的建立和保持时间、时钟到输出的延时、输入到输出的延时、恢复和撤销数据时间、最大时钟频率及裕度(slack)等关键概念。此外,还介绍了7系列FPGA的基本时序、DDS技术的原理与应用、以及Vivado软件中的AXI4总线特性和XDC约束的使用。
第一节本次内容一、FPGA雷达工程基本存储器概述二、7系列FPGA和FPGA基本时序(一)三、fifo、block ram 、rom的使用四、基本调制信号的产生工程实例五、vivado axi4总线特性和xdc约束使用(一)第二节本次内容一、 7系列FPGA和FPGA基本时序(二)二、DDS基本原理和工程应用三、ise软件提供ip核应用四、vivado软件提供ip核应用五、vivado axi4总线特性和xdc约束使用(二)第三节本次内容一、 7系列FPGA和FPGA基本时序(二)二、ADC SPI基本原理和工程应用三、GTX/GTP基本概念四、GTX/GTP基本应用五、vivado axi4总线特性和xdc约束使用(三)
第一节
本次内容
- FPGA雷达工程基本存储器概述
- 7系列FPGA和FPGA基本时序(一)
- fifo、block ram 、rom的使用
- 基本调制信号的产生工程实例
- vivado axi4总线特性和xdc约束使用(一)
后续两节课程讲解DDS使用以及spi配置高速ADC和时钟分配倍频方法、高速串行GTX/GTP使用
一、FPGA雷达工程基本存储器概述
雷达信号处理处理带宽有限,为了满足流水线操作,必须把前端采集数据进行存储起来,大多都是利用乒乓操作进行实时处理。
适合FPGA使用的存储器有:fifo、ram、rom以及DDR和QDR等高速存储器。
考虑选择权衡:价格、功耗、速度、容量、体积、效率和体积以及国产化因素。
最全面的资料 xilinx 官方网站
其他所有专业书籍都是翻译和自己理解
Block——memory
blk_mem_gen_ds512
pg057-fifo-generator
后面会具体讲解
二、7系列FPGA和FPGA基本时序(一)
ds180_7Series_Overview.pdf
静态时序分析是采用穷尽分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的 建立和保持时间是否满足时序要求,通过对最大路径延时和最小路径延时的分析,找出违背时序约束的错误。它不需要输入向量就能穷尽所有的路径,且运行速度很快、占用内存较少,不仅可以对芯片设计进行全面的时序功能检查,而且还可利用时序分析的结果来优化设计,因此静态时序分析已经越来越多地被用到数字集成电 路设计的验证中。
- 扇入和扇出
max fanout(最大扇出)主要指的是定义该信号最多驱动多少个信号,max fanin 是指连接到该门输入的数目;扇出越大,延迟越大,解决方法:电路复制。
- 时钟歪斜( CLOCK SKEW)<时钟偏移>
时钟在经过时钟路径后,达到存储元件的时间存在差别,其时间差称为时钟偏移。计算最大时钟频率时需要减去该参数。合理的安排关键路径中相邻触发器的CI OCK SKEW ,可以大幅度提高整个电路的最高工作频率,从而优化电路的性能。
- 建立时间(Setup Time)和保持时间(Hold time)
Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time.如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。如果hold time不够,数据同样不能被打入触发器。
建立时间是指在时钟边沿前,数据信号需要保持不变的时间。保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据,将会出现stability的情况。如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
- 时钟到输出的延时
即信号通过寄存器到输出管脚后,在输出管脚上获得稳定有效的数据所需要的最大时间,计算公式为:
延时=最长的时钟延迟+最长的数据延迟+t
T即D触发器的内部要求的时钟到输出的延时
- 输入到输出延时
- 恢复数据(recovery)和撤销数据(removal)时间
在时钟有效沿跳变前,异步控制输入信号(复位、清空)必须稳定的最小时间称恢复时间;有效沿跳变后,异步控制输入信号(复位、清空)必须稳定的最小时间称撤销时间。类似于建立和保持时间。
- 最大时钟频率

- 裕度(slack)
Slack 是指时序要求满足或未满足的裕量。
正的 Slack 值(显示为黑色)表示满足要求的裕量。
负的 Slack 值(显示为红色)表示未满足要求的裕量。
Slack 时间通过以下公式计算:
slack = 要求的最大点到点时间 - 实际的最大点到点时间
- 引脚间延时tPD
- 输入引脚,
- 输出引脚,
- 双向引脚。
- 输入引脚和寄存器,
- 寄存器和寄存器,
- 寄存器和输出引脚。
从输入引脚传播到组合逻辑并在外部输出引脚出现的信号所需的时间。
在 Quartus® II 软件中,您可以为整个项目和/或以下任意部分指定所需的传播延迟 (tPD):
您还可以分配点到点的 tPD 设定,以指定以下之间所需的延迟:
三、fifo、block ram 、rom的使用
Ise、vivado
(待补充)
四、基本调制信号的产生工程实例
ise matlab
(待补充)
五、vivado axi4总线特性和xdc约束使用(一)
XDC是Xilinx Design Constraints的简写,但其基础语法来源于业界统一的约束规范SDC(最早由Synopsys公司提出,故名Synopsys Design Constraints)。
XDC的主要优势包括:
统一了前后端约束格式,便于管理;
可以像命令一样实时录入并执行;
允许增量设置约束,加速调试效率;
覆盖率高,可扩展性好,效率高;
业界统一,兼容性好,可移植性强;
思考:ucf和xdc区别?为何官方这样修改?好处?
第二节
本次内容
- 7系列FPGA和FPGA基本时序(二)
- DDS基本原理和工程应用
- ise软件提供ip核应用
- vivado软件提供ip核应用
- vivado axi4总线特性和xdc约束使用(二)
一、 7系列FPGA和FPGA基本时序(二)
目前 FPGA发展主流产品系列:7系列 ultrascale系列、ultrascale+系列等。
从28nm结构平面FET结构扩展至16nm鱼鳍式FET晶体管技术。同时还能从单芯片扩展到3D IC
Ise软件最高支持7系列 vivado支持7以及以上系列,最大的改进主要是布局布线优化算法上。
最新芯片主要也是从内部架构互联和逻辑布线两个层次解决时序收敛和生成硬件结果。
- 可配置逻辑块 CLB
Configurable logic block 是最主要的逻辑资源,主要用于实现时序和组合逻辑电路。
7系列及以上芯片主要改进在功耗和性能上
(1)真正的6输入查找表
(2)双LUT5
(3)分布式存储器和移位寄存器能力
(4)高速进位逻辑
(5)多功能的多路复用器
(6)专用的存储元素,能配置为带有控制信号的DFF
- 时钟资源
(1)专用时钟管脚GCLK,每一个IO bank有四个GC:用于连接MMCM PLL或者全局和区域时钟资源的专用通道
(2)每个CMT包含一个MMCM两个PLL
MMCM:宽范围和时钟合成、内部或者外部的时钟过滤、抖动抑制。PLL:比MMCM特性少,基本专门为存储器使用。
- 块存储器资源
BRAM:包含一个36Kb RAM 或者两个18Kb RAM
- DSP
DSP:包含一个专用的27X18位的二进制补码乘法器和一个48位的累加器
- 输入和输出逻辑IO
HP: 1.0-----1.8V
HR: 1.0-----3.3V
支持LVDS BLVDS SSTL HSTL LVCOMS 等电平 内部包含100欧姆电阻可以选择使用
IDELAY ODELAY 可以级联使用 实现两倍延迟
ULTRASCALE 最大1250ps 分辨率 5----15ps
ISERDES OSERDES 2 4 8位 串并 并串 ADC或者SGMII等
- 高速串行收发器
ULTRASCALE: GTH:0.5Gb/s-----16.3Gb/s
GTY: 0.5----32.75Gb/s
应用PCIE GEN4 100G+光纤 背板
- PCIE 模块、ETH模块、系统监控器模块
二、DDS基本原理和工程应用
DDS技术是目前最常用的波形产生技术之一,其主要优点是相对带宽较大,频率转换时间极短,频率分辨率高,输出相位连续可调,且频率、相位和幅度均可实现程序控制。目前DDS技术在雷达系统、通信系统、信号发生器等方面得到广泛应用。

图中clk 表示参考时钟,fclk 为参考时钟的频率,fout 则表示输出时钟的频率。DDS架构主要由相位累加器、正弦查找表和相位调制器组成,其中相位累加器是整个DDS的核心,输入是相位增量,与输出频率的关系如表达式。
2^N*fout/fclk=相位累加数值。
N为相位位宽,也是查找表地址位宽。
在标准正弦波形查找表中存放的是一个周期的标准正弦波的 2^N等分离散采样值。查找表就也可以理解成相位到幅度的转换,查找表的输入是相位调制器的输出,事实上就是ROM的地址值。
相位增量寄存器记录的是每个时钟周期的相位变化量即相位增量,它与上一个周期的相位值进行累加得到一个新的相位,去寻址图中所示的ROM,最后将该相位对应的幅度值输出。
简单来说,只要进行简单的相位量化值累加运算,就可以得到正弦信号的当前相位值。信号的输出频率fout 由相位增量量化值来决定,且两者之间呈现出简单的线性关系,这就是DDS技术的基本原理。ROM的容量越大,采样点数越多,则频率分辨力越高。

CLK: DDS工作的参考时钟;
CE: 时钟使能引脚;
pinc_in: 频率控制字,位宽n;
poff_in: 相位偏移控制字,位宽n;
phase_out: 相位值输出引脚。
SCLR: 同步清零引脚;
RDY: 数据准备就绪引脚;
sine: 同相输出引脚;
cosine : 正交输出引脚。
时序:

三、ise软件提供ip核应用
(待补充)
四、vivado软件提供ip核应用
(待补充)
五、vivado axi4总线特性和xdc约束使用(二)
添加(Entering )XDC 约束
在设计的不同节点,有三种方法添加XDC 约束:
- 将约束保存成可以加入到工程约束集(project constraints set )的一个或者多个文件(GUI 方式);
- 使用read_xdc命令读取约束文件(批处理方式);
- 打开工程的时候(即将设计导入内存),在Tcl 控制台中直接调用约束命令(命令行方式);
第三节
本次内容
- 7系列FPGA和FPGA基本时序(三)
- ADC SPI基本原理和工程应用
- GTX/GTP基本概念
- GTX/GTP基本应用
- vivado axi4总线特性和xdc约束使用(三)
一、 7系列FPGA和FPGA基本时序(二)
从一个工程实现案例说起:FPGA下载bit文件,加载不进去,同一个产品准备量产,PCB设计一样,软件程序都是固化进去的,问题原因?
解决问题思路:
一 、硬件已经设计好了,改动硬件浪费资源和资金,所以先从软件着手
- 软件都是MCS 或者BIN文件,固化的,我们使用ARM读取bit,一位一位比较,发现验证后是正确的。说明软件是对的,并且这个软件事先做好验证的。
- 把本版软件下载到实验板卡验证 发现功能正常,说明功能也没有错误。
二、 软件已经成熟,开始从硬件下手
- 首先检查电源供电,纹波,电压负载能力,正确。
- 检查时钟 ,频率的稳定性,也正确
- 检查电路元器件型号和焊接问题 正确
最后发现 有一个0402表贴电阻没有焊接?
原因:类似RC组合,延迟FPGA 上电顺序的
FPGA上电顺序 :官方推荐L
VCCINT ->VCCAUX-> VCCIO
有些芯片不按照这个上电问题也不大
但是严格来说:最好按照这个上电 防止问题出现
二、ADC SPI基本原理和工程应用
该模块主要负责完成一路数据的采集。该路采样率为1.6GHz,位宽为8bit,采集中频为1.2GHz的信号。FPGA将AD采集到的数据进行排序及一些预处理后送到外部双口RAM存储。AD采集工作顺序如图。

AD采集模块工作方式如下:
(1)ADC12D1800的SPI配置根据其芯片手册对相应的寄存器进行赋值,选用NO-DES_1:2DEMUX工作模式进行采集。
(2)结束配置后,FPGA将AD采集到的数据接收并进行拼接截位,然后根据界面选择数据送给双口RAM存储。ADC12D1800的数据处理是将一个通道的两路12位数据I,Id拼接。其中每一路数据率为800MHz,用12个串转并(ISERDS)模块将1路转成4路,数据率降为200MHz,变为I1,I2,I3,I4,Id1,Id2,Id3,Id4,最后根据采集顺序Id4,I4,Id3,I3,Id2,I2,Id1,I1拼接。
该模块使用的是ADC12D1800高速AD采集芯片。此芯片是双12位1.8GSPS高速AD转换芯片

三、GTX/GTP基本概念
GTX收发器采用的是差分信号对数据进行传输,其中LVDS(Low Voltage Different Signal)和CML(Current Mode Logic)是常用的两种差分信号标准。差分信号时有两根几乎完全相同的线路来组成一对等值、反相信号,接收端通过比较两端电压差值来确定传输的是“0”还是“1”,如果正参考电压比负参考电压低,则信号为高;如果负参考比正参考电压高,则信号为低。
因为线路上受到的噪声干扰几乎完全相同,在计算差值时相减从而达到抵消的效果,这就使得差分信号抗干扰能力特别强,高速传输时不易出错。
除了利用差分信号外,GTX采用自同步技术来解决时钟同步问题。
目前常用同步方式有系统同步,源同步和自同步。
系统同步利用片外的晶振进行同步,由于板间线路的长度不一致,以及片内延迟不一致,在时钟速度较高时可能存在较大误差。源同步是在发送数据时同时发送一个时钟副本,这种设计需要更多的时钟端口。自同步将时钟包含在数据流中,从数据流中进行时钟恢复,不仅端口使用较少,而且不论是在高速还是低速,时钟延迟与数据延迟都保持一致,可以保证采样的正确性。
自同步接口主要包含三个模块分别是并串转换、串并转换和时钟恢复。时钟恢复是利用锁相环(PLL)合成出一个与输入串行信号的时钟频率一致的时钟,供采集数据用。
GTX线路驱动器最重要的特性可能就是预加重的能力。预加重是在电平翻转开始前的有意过量驱动。如果串行流包含多个比特位时间的相同数值数据,而其后跟着段比特位(1或2)时间的相反数据数值时,会发送符号间干扰。介质(传输通道电容)在短时间过程中没有足够的充电时间,因此产生了较低的幅度。
在符号间干扰的情况下,长时间的恒定值将通道中的等效电容完全的充电,在紧接着的相反数据值位时间内无法反相补偿。这样就会导致相反数据的电压值有可能不会被检测到。
解决这种现象的方法是:转变开始时加入过量驱动,而在任意的连续相同数值时间内减少驱动量,减少驱动量的过程也称作去加重。经过预加重后,眼图的睁开度将会得到极大改善。
时序和结构:
ug476_7Series_Transceivers.pdf
基本开始:
ug769_gtwizard.pdf
四、GTX/GTP基本应用
vivado
五、vivado axi4总线特性和xdc约束使用(三)
- 主时钟
Primary clock main clock
约束 一个 时钟 周期10ns
从 一个端口gclk_my进来 默认占空比50%
10ns周期 占空比25%
上升沿 在 2.5ns 下降沿在5ns
- 某个具体资源模块采用的主时钟(比如说GT)
- 分频时钟
EX VIVADO
Loading...