自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 问答 (1)
  • 收藏
  • 关注

原创 vivado和modelsim 联合仿真,修改vivado中代码不重启modelsim,进行仿真

在使用modelsim时候,我们往往需要根据仿真情况来修改代码。modelsim 仿真速度高,在做图像处理算法仿真的时候,由于需要加载图片数据,并且需要大量计算,modelsim 的使用加快仿真。在modelsim的编译库里面找到xil_defaultlib ,展开列表。在展开的列表中找到修改的源文件,右击,点击recomplie,进行重新编译。

2023-08-31 12:33:07 1041

原创 C语言的常见陷阱及注意事项总结

在使用C语言开发的时候,往往会陷入某些“陷阱",这里笔者收集总结了一部分常见的陷阱和注意事项,供大家参考讨论。

2023-02-17 11:25:52 412

原创 基于FPGA的工业相机项目大赏1——cmos线阵相机

●CMOS CL0402 作为图像传感芯片,曝光后产生一定格式的图像数据;●FPGA ZYNQ7020 作为主控芯片负责cmos驱动控制、图像像素的采集、cmos寄存器的配置、cameralink协议的实现、上位机串口通信的实现;●Cameralink端子实现图像数据的高速串行发送,将数据传送至采集卡PC端。系统工作流程如下: FPGA 上电加载配置程序,计算机通过异步串口向 FPGA 发送控制信息,FPGA对接收的控制信息进行分析判断。

2023-02-07 20:47:25 4280 2

原创 FPGA图像处理——cameralink发送设计实现之改进版

本文延续上期文章对cameralink发送模块的设计探索。上期文章,用一般意义上的方法实现了速率为40Mhz/280Mhz 的图像数据传输,效果良好,这种方法由于将cameralink时钟信号一并以串行方式生成,可称之为“源同步”方式。然而这种方式下,对PCB的物理等长布线要求高,一旦改变硬件连接,可能造成部分数据失真。本文,将探究非源同步方式下的cameralink发送过程中时钟和数据的处理。这种情况下,采用时钟相位动态调整的方式,使得设计更具有灵活性。

2022-11-29 16:39:02 1840 6

原创 FPGA图像处理 —— fpga实现cameralink接口图像传输

本文利用zynq7020芯片实现了cameralink接口时序控制,将自制的测试采图上传至PC端上位机进行显示。其中,图片格式为1280@720P大小的的RGB888彩色图条。旨在进一步理解cameralink协议的传输规则,以及探究协议的实现方式。此外也起到了对现有采集卡及软件的测试调试作用。这些都为下一阶段图像处理的学习及对工业相机的研究打下基础。

2022-10-18 20:20:18 8710 46

原创 Lattice CPLD——ispMACH 4032ZE 内部晶振的使用及功耗评估

内部晶振最大输出5MHz时钟;isplever classic 2.1未给出power报告,而是官方提供了评估设计功耗的计算公式;本文档通过一个分频器的例子介绍了在设计中使用内部晶振的方法,并结合生成的设计报告计算设计的功耗;本设计实现将内部晶振时钟分频输出,有一个复位输入信号和一个分频输出信号。

2022-10-08 10:52:02 1013

原创 Fpga跨时钟域时序处理——举例说明

设计的核心部分是编码模块和串行发送模块。dout[9:0]是由clk时钟驱动的编码数据,这些数据被串行发送模块以5倍于clk速度的时钟(clkx5)采样接收。这样就涉及到两个时钟的跨时钟域问题。这样只要我们将clk的走线改变使其直连到更近的BUFR区域缓冲器上,可以减少时钟到逻辑的延时。再给clkx5这个时钟增加一些延时,将其连接到BUFH缓冲器上。经过这些操作就可以达到时序收敛的结果。

2022-09-27 17:03:51 1032

原创 ZYNQ_7020电路板测试报错:Could not find ARM device on the board for connection ‘Local‘的原因之晶振焊反

本周,之前打样的板子寄回了,开始着手搭建并测试。作为一个嵌入式开发人员,硬件调试能力还是要有的。这个JTAG过程中的提示,原因很多,除了复位、晶振问题外,经查资料还需PS_MIO。经查,晶振被焊接反了,并没有工作没,调整后报错消失,可以下载程序。各测试点电压对不对,ZYNQ的内核供电、bank电压给没给正确。2引脚拉低才可,本次样板没出现这个问题,只是晶振接反。测试时,发现某个测试点的电压对不,而且SDK报错。,请教专门的硬件人员后,建议我从三方面入手。以后拿到新板子,可按这些步骤做硬件测试。...

2022-08-14 19:57:56 2788

原创 Zynq Fpga图像处理之AXI接口应用——axi_lite接口使用

结合xilinx官方的AXI Lite设计模板,给出了灵活自定义修改的一般方法。最后通过简要的的读写模块对此自定义AXI Lite 模块进行了PS端对PL端的读写测试。测试结果表明,此自定义模块高效实用,读写准确,本文提供的方法可灵活应用到各类zynq设计架构中去。...

2022-08-03 13:10:11 4925 1

原创 几款国产FPGA系列器件参数汇总

以下是和厂商确认以及个人在各公司官网上获取的产品参数,部分产品价格可用作参考。价格实时变动,只能作参考。1.高云半导体 FPGA 器件型号 逻辑查找表 RAM资源 I/O资源 pll 触发器资源 嵌入式内核 易失性 价格 晨熙系列 GW2A_18 2073

2022-05-23 09:23:06 6296 3

原创 Lattice FPGA 开发工具Diamond使用流程总结——IP核使用、原语调用

由于前面文章已经讲解了ip的使用方式,此文讲解利用PLL核产生相位可调的时钟信号,以及IO delay原语,这些在高速接口中经常用到。注意此文针对的是ECP5系列芯片。一、利用PLL核产生相位可调的时钟信号1)配置PLL核。打开pll核配置界面如下所示,使能需要的时钟信号,设置输入时钟频率以及相应的输出时钟频率。(其中要注意CLKFB选项,待动态调整相位的时钟不能作为此选项的配置,这里我们选择CLKOS作为待调整时钟,此时CLKFB选项可选为CLKOP),点击OptionalPorts,进入

2022-05-12 18:52:23 7577

原创 Lattice FPGA 开发工具Diamond使用流程总结——仿真+debug

这里介绍了Dianmond的仿真、debug核抓取波形的操作

2022-05-12 09:08:05 9070 8

原创 Lattice FPGA 开发工具Diamond使用流程总结——工具使用

本文介绍了一般的Diamond开发流程,包括工程创建、文件输入、IP使用、约束、管脚分配、和布线布局等流程

2022-05-11 14:57:25 16561

原创 Lattice FPGA 开发工具Diamond使用流程总结——安装

Lattice的芯片价格便宜、功耗低,最近项目要用,先来一份开发使用流程。软件安装加载软件包如下,下载安装包后,点击Diamond.exe 文件,进入安装对话框。逐步点击YES或NEXT,完成路径设置等步骤。如下,到达产品加载选项页面,将以下功能模块全部勾选,点击NEXT直到完成安装。2.密钥文件安装后,在桌面将获取到的license文件复制到安装目录下的license文件夹下接着右击此电脑>属性>高级设置>环境变量>系统变量,新建如下..

2022-05-11 10:58:44 4578 3

原创 FPGA学习——带axi_stream 接口的HDMI显示控制设计

之前, 实现 HDMI 一般使用的是 HDMI 发送芯片, 典型的例如 ADV7513、 sil9022、 CH7301, 使用这些芯片实现 HDMI 发送,本质上还是将 FPGA 输出的 24 位像素数据+3 位的控制信号(HSYNC、 VSYNC、 DE) 接入这些芯片,然后由这些芯片完成数据的编码和串行发送。这样不仅增加了硬件复杂度,而且占用了较多FPGA的IO资源。为了在节约 IO 资源的同时实现 HDMI 发送, 采用 FPGA 实现HDMI 发送所需的 TMDS 编码和串行发送器。这种设计方

2022-01-22 14:46:06 4711 2

原创 fpga学习——zynq图像处理中的DVP流接口封装

之前文章介绍了基于zynq的图像处理架构问题。其中,作为开发者,需要重点关注图像传感器接口、处理算法、显示接口,这些模块。现在我们一同学习用于视频数据接口的DVP模块,并将其封装成AXI-stream接口便于直接和VDMA IP通信。DVP_AXI stream IP v1.0使用说明1.设计概述•用于cmos传感器视频数据采集,将cmos输出的8位视频数据拼接成RGB 565模式•AXI_stream主机接口,用于和PS端内存的数据交互•基于vivado 18.3软件设计2.模块分析

2022-01-22 13:17:27 3784

原创 FPGA学习——基于zynq的图像视频采集处理

在 某 些 特 定 场 景 下,如 交 通 运 输、精 密 测控、显微医学 操 作、工 业 探 伤 以 及 农 田 作 业 等 领 域,对图像有实时性和高精度 检 测 要 求,而 在 图 像 显 示 及 处 理 的过程中要占用大量资源和时间,例如,尺寸为1920×1080的8/24bit的 BMP图像大小为 5.93MB,连续的图像数据频带 较 宽,数 据 量 大,像 素 相 关 性 大。传 统 的 DSP 或ARM 处理器取样速率较低,且系统使用浮点,很难对其进行直接的处 理,且 成 本 较 高。l利用z

2022-01-22 09:16:15 6841 3

原创 自学fpga,关于流水线设计问题

流水线设计的思想来源是高流量,也就是说时间延迟固定的情况下尽可能的产生高的流量,使得整体的信号传输速率得到提升。这一概念我是最早在《高级FPGA设计——结构、实现和优化》(Steve Kilts)一书中接触到的。作者在书中提到,高流量设计的抽象术语就是“流水线”。作者指出:流水线设计的优越性是新数据在前面的数据完成之前就可以进行处理。并给出一个例子,硬件实现计算一个数的三次方。这给出设计代码,用于下文分析比较。1.类似于软件的递归算法实现(非流水线结构)`timescale 1ns /

2022-01-21 17:55:29 1562

原创 vivado ip 核 fifo的使用细节

我们在使用vivado的fifo IP时,会对其进行配置,配置成自己需求的IP参数。在配置选项中,有这样一个选项:Standard fifo 和Frist Word fall Through。这两个选项的区别是什么呢,可以通过仿真看出区别。 ...

2021-11-17 11:26:25 3708

原创 FPGA 实战项目之 cmos像素信号多通道缓存输出IP模块

最近在做cmos工业相机相关的工作。对于某些些cmos芯片,如线阵相机,同时会输出多个通道的像素数据。然而我们在实际使用过程中,这些数据往往使用串行的方式写进cpu内存,再进行下一步处理。这样以来,需要对cmos输出的像素信号进行缓存处理,根据后端模块的需要按顺序读出。据此,编写了一个cmos像素有效信号的多通道缓存处理合并输出模块,并将此封装成IP备用。本文档的格式按照工作的IP说明编写,完整代码在文末给出。 前言:通常的cmos芯...

2021-10-22 09:53:08 2384

原创 verilog 中的task语句使用注意情况

这里我们定义一个任务,并对其进行测试。具体代码如下:module task_test( input sys_clk, input rst_n, input [31:0]cntA, input [31:0]cntB);reg r_pluse_out1; reg r_pluse_out2; reg r_pluse_out3; reg r_pluse_out4; always @(*) begin if(!rst_n)begin r_pluse_ou

2021-10-11 10:19:47 774

原创 FPGA工具vivado中约束文件格式错误导致比特流生成失败

在vivado中生成比特流时,综合和实现都能成功,在最后一步bit 的生成出现报错。检查代码、约束都没发现什么错误。最后发现约束文件有一个小小的格式错误,改正后,bit流成功生成改正前(T11后少了个空格):报错改正后(T11后加上空格):bit流生成通过...

2021-08-23 16:25:02 3066 2

原创 练习一年半,菜鸟fpga工程师入职后的第一个小项目——伺服电机驱动脉冲采样计数

自学fpga,练习一年半,终于从一名车间操作工转行到fpga工程师。入职后领导鉴于我的技术水平(毕竟练习时长不到两年半),所以安排了他口中的小任务——电机信号采样并输出电机转速,任务不难,但还是慌了,下面是我的项目历程。一、任务分析。电机的驱动脉冲是一对频率相同的周期性方波,这对周期性方波在相位上相差90度,根据A、B的相位情况判断转动方向,项目使用的电机速率是4000个脉冲一转。现在要输出当前电机的转速、方向,只需对A、B信号采样计数即可。这样一个小项目,本来没啥可说的,只是一点涉及到抖.

2021-08-04 21:02:42 1427 3

原创 vivado 仿真波形出不来显示“XXX”的问题

在做仿真的时候发现计数器显示XXX的状态,检查源代码,没有给初始值,加上初始值,再仿真即可至于为何上板子调试没出问题,功能显示正常,是因为板子上会自动加载0或1的值

2021-06-22 16:38:03 7436 2

原创 vivado IP封装错误提示之[IP_Flow 19-3155] Bus Interface ‘m_axis_video_aclk‘: ASSOCIATED_RESET port ‘

在“Edit Interface”内进行参数设置,将ASSOCIATED_RESET 参数后面的value值填入相应的复位信号即可

2021-06-09 16:51:51 1243

原创 警告:[Synth 8-6014] Unused sequential element C_V_Top_Border_reg was removed. [“D:/wangsong_practice/

信号设置成12位,实际只用到了3位即可,修改后,警告没了

2021-05-21 11:10:14 7698 3

原创 2021-05-18

1.使用vivado18.3创建自定义IP的时候,在封装时“Ports and interfaces”出现错误:[IP_Flow 19-3153] Bus Interface 'tmds_clk_n': ASSOCIATED_BUSIF bus parameter is missing.点开“Ports and interfaces”出现4个错误,点击数字“4”,看到信息栏的提示:[IP_Flow 19-3153] Bus Interface 'tmds_clk_n': ASSOCIATED

2021-05-18 17:44:38 1517

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除