博客
本文以Zturnboard为例介绍如何在SDSoC中使用OpenCV,本文在Ubuntu 16 64位,SDSoC2018.2(安装在ubuntu中)中测试通过。
虽然看起来AXI Interrupt Controller的intr[0:0]位宽无法修改,但实际上,添加一个Concat IP,这个IP可以设置In0的个数,设置为2。In0连接上中断线后,再把dout和intr相连
在FPGA的开发中,对于两个异步时钟,如果我们可以在RTL的设计中保证这两个时钟域之间的处理都是正确的,那就可以让工具不分析这两个时钟域之间的交互。
在第三节中,我们成功创建了ZYNQ裸机下的SDSoC平台文件,但在实际使用中,要求使用Linux操作系统。本节介绍如何创建基于Linux系统的硬件平台。
本教程以米联客XC7A35T FGG484-2开发板为例,详细讲解一下用Xilinx Vivado 2020.1创建MicroBlaze软核工程,然后再用Xilinx Vitis 2020.1建立Hello World C程序工程的完整操作步骤。
对于Xilinx的FPGA,每一片都有一个专门的ID,就像我们的身份证号一样,每个都不一样,Xilinx也形象的把这个ID叫做DNA。7系列以及之前FPGA的DNA有57bit,Ultrascale FPGA的DNA有96bit,Zynq Ultrascale+的FPGA有两个DNA,PL端一个,PS端也有一个。
为了获得最佳精度路径覆盖信息,必须正确定义时钟。
时钟要定义在时钟树的根 pin 或 port 上,称为 source point。
时钟的边缘应该由周期和波形进行组合描述。
周期使用纳秒做为单位进行定义。它对应于波形重复的时间。
FPGA的型号为XC7A35TFGG484-2,开发板用的是米联客的。主程序hello_world运行于外部DDR3内存,SREC SPI Bootloader运行于FPGA片内BRAM。
在前面的学习中,我们已经学会了使用Vivado及SDK开发环境,熟悉了硬件开发与Linux软件驱动之间的联系及开发流程。本系列教程我们学习SDSoc的开发,在SDSoc IDE中,Xilinx为我们集成了比较流行的开发板硬件平台,如果我们使用的是其中的一个,可以直接使用。但笔者使用的是米尔科技的7z010开发板,在开发之前首先要定义我们自己的硬件平台,作为之后创建应用的模板工程
Xilinx 建议将时序约束和物理约束分开保存为两个不同的文件。甚至可以将针对某一个模块的约束单独保存在一个文件中。可以使用 USED_IN_SYNTHESIS 和 USED_IN_IMPLEMENTATION 属性指定约束文件是在综合或实现过程中使用。
本篇文章要写的是调试Xilinx网络IP时踩到的一个坑,也是控制PHY芯片时的一个坑,板卡上的PHY芯片是非常经典的88E1111,使用MDIO接口控制。
修改了代码后编译工程,有时会因为BRAM空间不足而编译失败,出现下面的错误提示,这时,需要回到Vivado工程里面,在Block Design中将分配的BRAM空间大小改大。具体方法如下。
在BSP设置中,手动添加xilisf库的引用。首先,在Platform工程(这里是microblaze_test)上点击鼠标右键,选择“Open Platform Editor”命令。在Board Support Package里面,点击Modify BSP Settings按钮,勾选xilisf复选框,然后点击OK。
本文以XC7A35TFGG484-2这款芯片为例,采用米联客FPGA开发板,用MIG核驱动DDR3内存。FPGA外接的晶振大小为50MHz,DDR3内存的驱动频率(ddr3_ck_p和ddr3_ck_n)为400MHz。选用的DDR3内存型号为MT41K128M16,内存容量为256MB。