
FPGA
文章平均质量分 86
FPGA逻辑相关
希言自然也
记录自己遇到的问题,与君共勉。文章中若有侵权,联系删除。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
FPGA 时序分析(五)
时序例外约束,指的是告知时序分析工具对特定的路径执行特殊的时序分析方式。默认情况下,时序分析工具对于某些路径的分析可能不符合实际情况,造成时序太紧或者太松,这就需要时序例外约束,使时序分析工具做出正确的分析。通过时序例外约束,工具可以放松特定位置的时序分析,以专注于其他路径的时序分析,实现更好的时序收敛。下面的情况,可以使用时序例外约束:1、异步跨时钟路径应该予以忽略;2、通过组合单元的路径为静态路径;3、逻辑单元并不是在每个时钟周期都需要采样数据。原创 2025-08-24 11:09:31 · 437 阅读 · 0 评论 -
FPGA时序分析(四)
(Th为外部器件的保持时间,此时满足外部器件的保持时间)(此处的trce_dly_min指的是PCB走线的延时,基本可忽略)(Tsu为外部器件的建立时间,此时满足外部器件的简历时间)(此处的trce_dly_max指的是PCB走线的延时,基本可忽略)上升沿的最大延时记为 rise_max_dly = trce_dly_max + Tsu_r;(Th_r:外部器件的上升沿保持时间)这样就可以近似得到trce_dly_max=Td_pcb(max),trce_dly_min=Td_pcb(min)。原创 2025-08-24 11:08:48 · 578 阅读 · 0 评论 -
FPGA 时序分析(三)
其中skew_bfe指的skew before fall edge,skew_afe指的是skew after fall edge,skew_bre指的skew before rise edge,skew_are指的是skew after rise edge,数据可能提前到达,也可能会延时到达,可以查阅外部设备手册获取参数。在vivado进行input delay约束时,我们告知工具的是,FPGA数据引脚的数据信号相对于FPGA时钟引脚的时钟信号的发射沿,在FPGA外部延时的最大时间和最小时间。原创 2025-08-24 11:07:24 · 704 阅读 · 0 评论 -
FPGA 时序分析(二)
晶振的时钟源,输出给外部器件,外部器件在内部进行同步处理后,发送给FPGA。晶振的时钟源,输出给FPGA,FPGA在内部进行同步处理后,发送给外部器件。将FPGA外部延时从公式中提取出来。即数据的最大延迟,减去时钟的最小延迟,即得到输入的最大延迟时间。由于系统时钟同步的方式,数据和时钟来来自于不同源,且通过不同路径传输至接收端(FPGA),导致数据和时钟存在较大的时间偏移。即数据的最小延迟,减去时钟的最大延迟,即得到输入的最大延迟时间。源时钟同步指的是发送端在发送数据的同时,也发送数据的同步时钟信号。原创 2025-08-24 11:06:48 · 859 阅读 · 0 评论 -
FPGA 时序分析(一)
本部分主要参考米联客的视频教程:1 概述 - 米联客视频课程。原创 2025-08-24 11:06:04 · 951 阅读 · 0 评论 -
FPGA控制88E1512 PHY芯片完成网络通信
本文不对88E1512进行详细解析,仅对调试过程中重点使用的几个寄存器进行说明。原创 2025-06-29 11:00:31 · 1050 阅读 · 0 评论 -
FPGA生成随机数的方法
实现方式二:使用三个或以上反相器首尾互联,形成环路振荡器。使用时钟采集,得到不稳定的数据,以形成随机数(其实此种方式与方式一相类似,反相器的组合逻辑相当于高频时钟,时钟信号相当于低频时钟,同样利用亚稳态生成随机数)。上图中,gn为反馈系数,取值只能是1或者0,N个D触发器,可以提供2^(N-1)个输出状态,为了保证随机性,gn的选择必须满足一定的条件,不能全部为0,且gn必须等于1。实现方式一:通过低频时钟作为D触发器的时钟输入端,高频时钟作为D触发器的数据输入端,使用高频采样低频,利用亚稳态输出随机数。原创 2025-05-11 12:05:28 · 749 阅读 · 0 评论 -
赛灵思FPGA 封装丝印记录
注意:购买的不同芯片,可能有上面不同的丝印形式,完整的芯片信息,特别是速度等级、温度等级等信息,主要可以通过二维码进行获取,但是需要使用赛灵思的APP工具:XilinxGo(AMD Device Lookup APP)原创 2025-03-16 10:20:29 · 550 阅读 · 1 评论 -
赛灵思ZYNQ系列的启动过程分析
本文章参考ug585和ug821。原创 2024-12-20 22:00:00 · 1738 阅读 · 0 评论 -
Vitis HLS中,生成AXI接口和AXIS接口的综合仿真方法
另外需要注意的是,进行仿真时,需要使用xf::cv::cvMat2AXIvideoxf 函数和xf::cv::AXIvideo2cvMatxf 函数,进行cv::mat和hls::stream数据类型的转换。本文使用Vitis HLS 2023.1进行设计,主要分析生成AXI接口和AXIS接口使用的函数、仿真时需要的数据类型转换。关于AXIS接口,进行#pragma约束时,需要将接口约束为axis。:将图像Mat数据转化为视频流hls::stream类型数据,方便将图像处理函数的输出转化到通信接口中。原创 2024-12-01 16:09:22 · 623 阅读 · 0 评论 -
Vitis HLS 编译环境搭建
安装Vitis HLS后,需要设置windows系统的环境变量。指向编译的opencv库路径。建立工程后,需要指定相关文件的编译库和链接库。截图如下,对应着opencv库文件的位置。有时候需要重装电脑系统,需要重新搭建Vitis HLS的编辑环境,为了方便,记录如下。若上述环境变量或CFLAGS等信息设置错误,会导致Vitis HLS的C仿真失败。上述参数仅个人记录,对于不同的安装路径或者功能,设置参数或不同,需要针对更改。二、Vitis HLS工程中的设置。以下是我的环境变量的设置。原创 2024-11-29 08:51:33 · 691 阅读 · 0 评论 -
GigE Vision协议解析和实现
GigE Vision协议,主要用于相机的控制和传输。它基于以太网UDP协议,提供了一种统一的控制和传输图像的方式,被广泛应用于工业自动化、机器视觉、影像医疗等领域。本文的目的是记录自己学习的一些知识,并且按照自己的理解统筹描述一下GigE协议,希望也能够帮助大家带来一些帮助吧。原创 2024-06-23 12:16:44 · 3904 阅读 · 0 评论 -
以太网UDP协议
前面已经介绍了以太网协议()、ARP协议()和ICMP协议(),下面我们介绍一下UDP协议。UDP协议,是一种面向无连接的传输层协议。同ICMP一样,UDP协议也是基于IP协议的一种协议。其优点:消耗资源少,通信效率高,适合FPGA实现。缺点:可靠性差,数据可能出现丢包。原创 2024-05-18 15:31:37 · 1785 阅读 · 0 评论 -
赛灵思7系列 ODDR、IDDR原语 与 ultrascale系列ODDRE1 、IDDRE1 原语
一、赛灵思7系列FPGA1.1 ODDR:实现数据的双边沿发送支持两种模式:OPPOSITE_EDGE模式、SAME_EDGE模式 ODDR #( .DDR_CLK_EDGE("OPPOSITE_EDGE"), // "OPPOSITE_EDGE" or "SAME_EDGE" .INIT(1'b0), // Initial value of Q: 1'b0 or 1'b1,Q初始值 .SRTYPE("SYNC") // Se...原创 2022-05-20 13:19:18 · 8661 阅读 · 2 评论 -
xpm_memory_tdpram原语的完整使用实例
一、xpm_memory_tdpram原语介绍 当需要指定RAM内初始化数值时,可以使用原语中的参数MEMORY_INIT_FILE,指向一个尾缀为.mem的文件。该文件内的内容要求必须时十六进制的,与$readmemh函数读取的文件内容格式一致,用空格或者回车将数据隔开即可。另外需要注意的是,本着解决ultra RAM的想法,一个ultra RAM的数据位宽为72bits,因此72bits拆分为18bits,即ultra RAM的一个地址上,保存着4个18bits的像素数据。 二、如何生成.mem文原创 2022-06-17 21:01:46 · 4702 阅读 · 2 评论 -
使用matlab/C语言/verilog分别生成coe文件
之前已经写过一个如何使用matlab生成coe文件,matlab自行运算生成三角波、正弦波等数据,并保存为COE文件。可跳转下面的网址进行查阅。使用matlab生成正弦波、三角波、方波的COE文件_三角波文件.coe-CSDN博客但是,如果想直接把一个文件的二进制码流整体转化成coe文件(注意并不是文件内的内容,而是文件本身),又该怎么操作呢?所有的文件都是按照二进制码保存的,只要转换成COE文件,FPGA就能通过发送该COE文件,实现发送ZIP文件或者其他任何格式的文件。本文就是解决了这个问题。原创 2024-04-19 13:47:25 · 2342 阅读 · 0 评论 -
CRC计算流程详解和FPGA实现
CRC校验,中文翻译过来是:循环冗余校验,英文全称是:Cyclic Redundancy Check。是一种通过对数据产生固定位数的校验码,以检验数据是否存在错误的技术。其主要特点是检错能力强、开销小,易于电路实现。像网络通信上,就使用了CRC32进行数据校验。原创 2024-03-23 13:29:55 · 3344 阅读 · 2 评论 -
petalinux安装和使用过程
一、在ubuntu系统中先安装vivado、vitis、vitisHLS(可选)二、在ubuntu系统中安装petalinux1、安装依赖工具、库2、安装python和tftp server3、安装petalinux4、配置petalinux环境sudo dpkg-reconfigure dash 选择"No"在petalinux的安装路径下运行指令: source settings.sh这里需要注意的是,以后每次打开新的命令窗口,都需要重新运行source settings.sh。原创 2024-03-23 09:44:30 · 2790 阅读 · 0 评论 -
vitis HLS中实现canny算法的IP核
canny边缘检测主要用于提取图像的边缘,是最常用且有效的边缘检测算法。在AMD赛灵思提供的库函数中,使用xf::cv::Canny和xf::cv::EdgeTracing两个函数实现canny边缘提取。本文举例说明如何在vitis HLS 2023.1中实现canny算法。原创 2023-12-23 16:06:29 · 1605 阅读 · 0 评论 -
HLS实现图像膨胀和腐蚀运算--xf_dilation和xf_erosion
我们先定义,需要处理的图片为二值化图像A。图片的背景色为黑色,即像素值为0。图片的目标色为白色,即像素值为1。再定义一个结构元S,结构元范围内所有的像素为白色,像素值为1。原创 2023-12-09 16:59:05 · 1102 阅读 · 0 评论