Riffa PCIe核简单应用综合和报错处理-FPGA常见问题社区-FPGA CPLD-ChipDebug

Riffa PCIe核简单应用综合和报错处理

导言

 

之前发过riffa的PCIe核,很多朋友反应不会综合,或者出现很多报错,常见的报错就是无法处理,这里出一个简单的教程教大家怎么使用这个IP核,最近有计划在出PCIe的基础教程,已经在收集资料和做PPT。

这次这个简单教程主要教大家怎么综合好这个PCIe核以及处理一些奇怪的报错。

 

版本信息

 

软件版本:Vivado2018.3

riffa版本:2.2.2

编辑器:VsCode

平台:Win10

 

操作步骤

 

第一步

在方便的位置新建一个文件夹,并使用Vivado2018.3在该文件夹下建立一个新的空工程,芯片自己选,我这里选的是K7325.

 

第二步

将riffa-master(从公众号下载的PCIe 的IP核)目录下下载的riffa_hdl文件夹拷贝到你自己的工程目录下,路径如下。

 

Desktopriffa-masterfpgariffa_hdl

 

拷贝完后,打开自己工程下的riffa_hdl件夹,删除掉两个文件,如下:

 

altera.vhtranslation_altera.v

 

将你从公众号下载的riffaip核复制3个文件至你的工程下,因为我是使用K7,所以打开xilinx的kc705,路径如下:

 

Desktopriffa-masterfpgaxilinxkc705riffa_wrapper_kc705.v

 

Desktopriffa-masterfpgaxilinxkc705KC705_Gen2x8If128hdlKC705_Gen2x8If128.v

 

Desktopriffa-masterfpgaxilinxkc705KC705_Gen2x8If128constrKC705_Gen2x8If128.xdc

 

第三步:

打开你新建的空工程,开始配置赛灵思的PCIe IP,选择第一个IP核,配置按照自己的需求以及板子和上位机的设计进行选择,不多讲解,以后会讲。

 

图片[1]-Riffa PCIe核简单应用综合和报错处理-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

图片[2]-Riffa PCIe核简单应用综合和报错处理-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

图片[3]-Riffa PCIe核简单应用综合和报错处理-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

图片[4]-Riffa PCIe核简单应用综合和报错处理-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

值得注意的是,你配置的赛灵思IP和KC705_Gen2x8If128文件里面的参数应该有一致性。如下图:

 

图片[5]-Riffa PCIe核简单应用综合和报错处理-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

第四步:

添加之前复制过来的两个文件到Vivado的Design Sources里面,将之前复制过来的riffa_hdl文件夹下所有文件一并添加到该位置。

 

KC705_Gen2x8If128.vriffa_wrapper_kc705.v

 

将之前的约束文件添加到Vivado的Constraints目录下。

 

第五步:

开始例化赛灵思的PCIe的集成IP,打开文件KC705_Gen2x8If128,到197行将PCIeGen2x8If128替换成赛灵思IP的名字,这里没有改过,是默认的名字,即pcie_7x_0,不清楚也可以打开例化模板复制过来,然后保存。Vivado设计文件中从第一幅图状态变为第二幅图状态。

 

图片[6]-Riffa PCIe核简单应用综合和报错处理-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

图片[7]-Riffa PCIe核简单应用综合和报错处理-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

第六步:

修改报错,这个时候如果直接综合会出现如下报错,网上也找过很多解决方案,不太成功,也比较麻烦,定位是一个取log的函数没有被包含,所以解决的方法是,按照网上,改为sv类型文件,直接调用sv的取对数函数,但都比较麻烦,所以我放弃网上的方案,自己写一个取对数的函数放到头文件,结果发现重复定义,最终定位到function.vh中已经有这个函数,但没有被全局包含,这是由于Vivado2017之后对做了一个文件包含的改变导致的,Vivado2017之前的版本都不会遇到这样问题。

这里把function.vh这个头文件设置为全局包含即可。右键function.vh点击Set Global Include即可通过编译。

 

图片[8]-Riffa PCIe核简单应用综合和报错处理-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

图片[9]-Riffa PCIe核简单应用综合和报错处理-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

 

 

 

 

B站账号:

图片[10]-Riffa PCIe核简单应用综合和报错处理-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

请登录后发表评论

    没有回复内容