FPGA原型验证

这篇具有很好参考价值的文章主要介绍了FPGA原型验证。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、ASCI RTL代码转换成FPGA RTL

原则:
(1)stdcell进行替换(时钟、memeory)
通常:
保持原时钟树关系;
clk 相关stdcell操作,但都将时钟直接输出;
采用PLL的时钟采用Vivado 的MMCM替换;
mem采用fpga的ram或手写ram实现;
(2)如果有ddr采用vivado的ip进行替换,可以直接用phy & ctrl整体替换;
(3)系统的参考钟,可以采用fpga的差分时钟经过IBUF得到,采用全局时钟网络;
(4)PCIE模块,包括ctrl和phy两大部分,ctrl可调试 phy可采用vivado 的pcie phy替换;也可以采用fmc pcie phy子卡实物代替pcie phy,也就是将ctrl与phy交互的pipe接口接出去连接到子卡上,在通过子卡将传给ctrl的pipe数据输入;(1、ctrl的targt speed在fpga上测试时需要根据phy支持的速率进行限制固定;2、rc通过phy子板输出一个ep-rst给ctrl的perst_n;3、进行测试时,有时需要用i2c对phy先进行配置,将phy子板的参考钟切换成rc时钟,并配置对应的gen速率,寄存器,PCIE才能link工作
(5)pad可以不用关注,fpga可以自动识别pad;当外设连接采用的inout类型时,需要用iopad指定
(6)JATG接口用于调试,jtag接口没有tdi跟tdo交叉互接要求

二、宏定义无法识别(包含宏定义的模块无法加载)

通常synopsis的ip编译的顺序为define,文件,undef。但vivado fpga不能以此顺序进行编译,需要调整文件顺序。以下建议:
(1)不要在代码中进行宏定义,可能造成宏定义重复,宏值使用错误。将“模块化”宏定义写到一个文件中,添加此文件路径加入filelist,在模块所有文件最后添加undefine文件。宏定义仅会在define和undefine区间的文件进行有效。
(2)作用于整体的宏定义,单独在fpga vivado中进行定义。

三、pcie ph、ctrl、rcy的连接

关于phy的几个时钟:
(1)pipe_clk:phy的输入时钟,来自ctrl,很重要
(2)ref_clk:phy与RC的参考钟,通常是同频同源(rc连差分时钟,phy连差分时钟的p端,通常为100m)
(3)soc_clk:phy给ctrl的时钟
(4)pcie_phy_clk:phy输出给ctrl的时钟(62.5m)
关于PHY的几个复位
(1)por_n
RC与phy连接
(1)RC的RX连接PHY的TX,RC的TX连接PHY的RX(通常RC是多lane,根据需求连接PHY即可)
PHY与CTRL的连接
pipe接口

三、问题总结

(1)时序不过也可以正常下板子工作,仅限时序违例很小的情况
(2)如果约束不写input/output delay,就算时序通过,也可能下板子不通过
(3)综合可能对设计进行优化,影响设计功能(需要通过仿真综合网标或与后仿进行对比进行确认)
(4)时钟复位模块对fpga时序影响较大,在处理时需要格外注意,尤其同步复位释放,最好保持。
(5)fpga由于资源和约束的问题,无法保持原ASIC设计时钟关系,可能导致复位周期发生影响,需要在处理时注意,是否影响功能,合理处理。

四、vivado常用tcl

(1)添加文件夹:add_files -scan_for_includes {D:/vivado_prj/project/temp_prj/rtl/}
(2)添加文件:add_files -norecurse -scan_for_includes D:/vivado_prj/project/temp_prj/rtl/fifo.v
(3)添加约束文件: add_files -fileset constrs_1 -norecurse D:/vivado_prj/project/temp_prj/xdc/base.xdc
时序约束:
(1)设置两个port异步:set false_path
set async

五、关于时钟

IBUFG:即输入全局缓冲,是与专用全局时钟输入管脚相连接的首级全局缓冲。所有从全局时钟管脚输入的信号必须经过IBUF元,否则在布局布线时会报错。
IBUFGDS:是IBUFG的差分形式,当信号从一对差分全局时钟管脚输入时,必须使用IBUFGDS作为全局时钟输入缓冲。
BUFG:是全局缓冲,它的输入是IBUFG的输出,BUFG的输出到达FPGA内部的IOB、CLB、选择性块RAM的时钟延迟和抖动最小。
BUFGCE:是带有时钟使能端的全局缓冲。它有一个输入I、一个使能端CE和一个输出端O。只有当BUFGCE的使能端CE有效(高电平)时,BUFGCE才有输出。(clk_gating,通常clk gating直通即可,但某些ip或应用必须使用clk gating时,用此替换)
BUFGMUX:是全局时钟选择缓冲,它有I0和I1两个输入,一个控制端S,一个输出端O。当S为低电平时输出时钟为I0,反之为I1。需要指出的是BUFGMUX的应用十分灵活,I0和I1两个输入时钟甚至可以为异步关系。
BUFGP:相当于IBUG加上BUFG。

六、 FPGA 资源

Slice逻辑资源
Slice Logic Distribution
register寄存器
Memory存储器
DSP资源
IO和GT
Clocking时钟
Primitives原语
Black Boxes黑盒子
Instantiated NetLists实例化网络
硬核
DCP:网表+xdc
ECO:check_point

(1)IOB,Input output BLOCK,不同block的电压一要求一致,每个block有固定电压
(2)CLB = LUT相当于真值表(rom),N输入M输出 (实现组合逻辑)+ 数据选择链 + 寄存器(实现时序逻辑) + 进位链(实现加法);
(3)Block RAM(BRAM,可配置成rom、ram、fifo等存储模块)
(4)互连线资源(布线资源)
(5)底层内嵌功能单元(DCM/PLL/DLL/DSP等)
(6)内嵌专用硬核(pcie/GTX高速收发器)
(7)DSP

reference:参考1http://xilinx.eetrend.com/d6-xilinx/article/2018-10/13736.html
参考2https://blog.csdn.net/weixin_30496431/article/details/97432160?utm_source=app&app_version=5.5.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
参考3https://zhuanlan.zhihu.com/p/106153830
参考4https://zhuanlan.zhihu.com/p/110043173
参考5https://blog.csdn.net/zhoutaopower/article/details/103523935 (fpga时钟)
参考6https://cloud.tencent.com/developer/article/1624688?from=article.detail.1146373 (fpga资源)
参考7—ug949https://docs.xilinx.com/v/u/2015.3-English/ug949-vivado-design-methodology文章来源地址https://www.toymoban.com/news/detail-700158.html

到了这里,关于FPGA原型验证的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【教程4>第2章>第7节】BPSK解调系统的FPGA开发与matlab对比验证

    欢迎订阅FPGA/MATLAB/Simulink系列教程 《★教程1:matlab入门100例》 《★教程2:fpga入门100例》 《★教程3:simulink入门60例》 《★教程4:FPGA/MATLAB/Simulink联合开发入门与进阶X例》 目录

    2024年04月12日
    浏览(39)
  • 【教程4>第2章>第3节】ASK解调系统的FPGA开发与matlab对比验证

    欢迎订阅FPGA/MATLAB/Simulink系列教程 《★教程1:matlab入门100例》 《★教程2:fpga入门100例》 《★教程3:simulink入门60例》 《★教程4:FPGA/MATLAB/Simulink联合开发入门与进阶X例》 目录 /

    2024年04月16日
    浏览(37)
  • 基于 ARM+FPGA+AD平台的多类型同步信号采集仪开发及试验验证(一)

    对工程结构的服役状况进行实时的监测和诊断,及时地发现结构的损伤,评估其安 全性能,预判结构的性能变化趋势与服役期限并提出改进举措,对提高工程结构的使用 效率,保障人民生命财产安全具有极其重要的意义,已经成为工程结构越来越迫切的技 术需求 [2] 。结构

    2024年02月07日
    浏览(56)
  • 基于 ARM+FPGA+AD平台的多类型同步信号采集仪开发及试验验证(二)板卡总体设计

    2.2 板卡总体设计 本章开发了一款基于 AD7193+RJ45 的多类型传感信号同步调理板卡,如图 2.4 所 示,负责将传感器传来的模拟电信号转化为数字信号,以供数据采集系统采集,实现了 单通道自由切换传感信号类型与同步采集多类型传感信号的功能(包含桥式电路信号、 IEPE 传感

    2024年02月06日
    浏览(66)
  • FPGA验证学习(四):SoC的验证与测试

    验证和测试是两个不同的概念。 前面的三篇嘞,咱们对整个开发的流程有了个了解,这里就来看看验证与测试,芯片这个东西流片一次可太贵了,所以一次芯片的开发流程有超级多的时间都花在了验证上。 一般验证是指检验电路的逻辑、功能、时序等是否满足设计者在设计

    2024年02月16日
    浏览(40)
  • FPGA 验证 why what how

    1)FPGA可以模拟真实应用场景,对芯片的性能进行验证,规避算法的风险; 2)其次可以实现和外部器件对接,验证和外部器件(尤其是模拟器件)之间的接口; 3)再者FPGA速度快,对于一些长时间、大流量场景的验证可以放在FPGA上进行 4)软硬件协同验证:主要目的是验证系

    2024年02月08日
    浏览(29)
  • FPGA验证学习(五):SoC的总线架构

    SoC的发展离不开应用领域的需求牵引。在根据需求进行片上系统设计时,不仅要考虑SoC本身,而且还要考虑SoC应用产品的需求,重点关注特定IP获取和系统总体结构(性能、功耗、成本、可靠性、适用性)的评估。 为了提高开发模块的重复利用率,降低开发成本, 用户采用

    2024年02月07日
    浏览(42)
  • FPGA(Verilog)时钟无缝切换设计与验证

    时钟切换基本模型,本文围绕“ 基本组合电路切换、解决前毛刺切换、解决后毛刺切换 ”三方面完成时钟无缝切换。 组合逻辑切换,本质就是二选一多路器 如下图,CLK_SEL 0与1分别控制时钟CLK_A CLK_B输出。 组合逻辑输出只跟当前输入状态有关,CLK_SEL异步不可控导致输出毛刺

    2023年04月10日
    浏览(49)
  • 【FPGA教程案例98】数据处理1——基于FPGA的数据线性插值verilog实现,MATAB辅助验证

    FPGA教程目录 MATLAB教程目录 ---------------------------------------- 目录 1.软件版本 2.数据线性插值原理 3.数据线性插值的matlab仿真

    2023年04月09日
    浏览(37)
  • FIR滤波器简述及FPGA仿真验证

    数字滤波器的设计,本项目做的数字滤波器准确来说是FIR滤波器。 FIR滤波器(有限冲激响应滤波器),与另一种基本类型的数字滤波器——IIR滤波器(无限冲击响应滤波器)相对应,其实就是将所输入的信号都看成是离散的,用离散的冲击信号代替实际的信号。对于FIR滤波器

    2024年02月09日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包