labview程序导入到vivado作为自定义IP核调试

        labview作为图形化编程工具兼容了fpga模块,在其产品手册中明确提出可以导出其编程好的程序到vivado作为自定义IP核使用,但是在测试前我们需要验证vivado中这个IP核的功能,这个具体流程在网上根本没有,加之NI的官方中文论坛也已经关闭,求助无门,笔者还没有其他地区NI账号,只能自己摸索,现在将笔者自己的调试经验简单汇总,希望回头时再看能有所启发。

0.笔者使用的labview版本是2020,vivado是2020.2;

1.labview官方手册规定:其导出的fpga程序有两个格式,一个是加密的dcp文件+vhd文件;另一个是非加密的明文格式文件,包括所有的vhd文件,如图所示,加密文件我还没有搞明白,现在只是搞完了明文格式文件;上传的资源是双语版的NI手册(机翻),供大家参考。

2.我们以明文格式为例做讲解,导出之后,对应目标文件夹会生成图示文件:

第一个文件夹里对应的就是所有的vhd文件:

(1)下面我们开始在vivado里自定义封装IP核,这一部分理论已经有许多前辈做了详细讲解,这里仅说明我遇到的问题:

        在封装IP核的这一步,我的时钟是图示的时钟,但是我右键选择他为clk会弹出警告,

解决方法参考了知乎一位前辈的方式,但是也不是完全一样,先贴出大佬的解决方式:

知乎链接放这里:(90 封私信 / 14 条消息) FPGA充电学习 - VIVADO IP封装及可配置调用 - 知乎

我的方法是这样:总体按照大佬的思路进行,但是如果直接按照大佬的思路修改会报错,如图所示

经过详细阅读报错信息和自己思考,我发现是这个东西在作怪:

我实际使用的模块,并没有用到axi总线协议,而且我们选择的这个信号应该是时钟clk,所以要修改,具体操作如下:点开末尾的3个点,弹出一个对话框,选择signal部分,找到下拉菜单的clk_rtl,选中他,确定;

之后在这里,输入定义的名称,我习惯是时钟叫clk,所以直接改名;如果这里不定义名称,那么会进不去parameters选项卡,就无法添加clk信号了;这里修改完之后继续按照大佬的步骤走就行了。在parameters中添加ASSOCIATED_BUSIF,在最后边输入clk。

这样一通操作之后,报警就没有了,可以正常生成IP核。

生成完毕之后会在对应的目标文件夹生成对应的几个文件,如图所示;xgui里对应的是2个tcl文件,这里不再展示。

(2)在vivado新建一个工程,将我们封装好的IP核作为自定义IP核导入,编写代码验证其功能。

导入步骤省略,过于简单,不再赘述,打开ip catalog,添加自定义IP核:

这里建立IP核最好使用global模式,ooc模式有时候会出现问题。

(3)最后编写代码进行仿真测试功能,这里需要注意,我们需要运行综合后的功能仿真,直接点仿真输出是没有信号的,所以要先综合,等那个圈圈转完之后再仿真。

因为代码就是定义几个我们封装IP核的端口线,tb文件就是给几个激励,所以这里不再赘述,直接看结果:

可以看到,经过仿真测试,最下面的2个输出是有结果的,这说明我们导入的自定义IP核内部成功有信号进入和输出,仿真成功。

至此,明文格式下的labview程序导入vivado作为自定义IP核的测试流程就全部结束了。

PS:最后我还有一些问题要和大家一起讨论:

在vivado内导入labview程序输出的所有vhd文件,点开层级结构我们可以看到明显的文件缺少,如图所示:

这个问题,我不知道怎么解决,明文格式下这个问题不用管,直接跑仿真是没问题的,但加密格式下因为这个一直报警告,无法进行仿真测试,希望可以有前辈予以解答。

Read more

【Elasticsearch】高亮搜索:从原理到Web呈现

【Elasticsearch】高亮搜索:从原理到Web呈现

🧑 博主简介:ZEEKLOG博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探索科技的边界,并将理论知识转化为实际应用。保持对新技术的好奇心,乐于分享所学,希望通过我的实践经历和见解,启发他人的创新思维。在这里,我希望能与志同道合的朋友交流探讨,共同进步,一起在技术的世界里不断学习成长。 技术合作请加本人wx(注明来自ZEEKLOG):foreast_sea

因为淋过雨,所以想给前端人说点真心话

我面过很多人,也被面过很多次。 从被问到“你连原型链都说不清”,到后来坐在桌子另一边面试别人。 今天这些话,是淋过雨之后,真想端给前端人的一碗汤。 一、关于面试:你以为考的是技术,其实考的是“能不能干活” 很多前端人准备面试,一头扎进: * 手写防抖节流 * 背Vue/React生命周期 * 刷LeetCode 这些当然要会,但面试官真正想确认的是三件事: 1. 把你丢进项目里,能不能独立负责一个模块 2. 遇到线上Bug,能不能快速定位 + 止损 3. 给你一个模糊需求,能不能拆解 + 落地 所以别再只背八股文了。 面试官一旦问“你做过什么”“怎么做的”“遇到什么困难”,就是在验证你能不能干活。 二、关于空白期:别怕Gap,怕的是“Gap但什么都没留下” 我面过一个女生,简历上写着“2024年3月至今:Gap Year”。 换作以前,我会犹豫。

用GLM-4.6V-Flash-WEB打造AI教育助手,附完整流程

用GLM-4.6V-Flash-WEB打造AI教育助手,附完整流程 在当前AI技术快速落地的背景下,多模态大模型正逐步从研究走向实际应用。然而,许多开发者面临一个共同难题:模型虽强,但部署复杂、资源消耗高、中文支持弱,导致难以集成到真实业务场景中。 近期发布的 GLM-4.6V-Flash-WEB 提供了一个极具吸引力的解决方案。作为智谱AI推出的轻量级视觉语言模型,它不仅具备强大的图文理解能力,还通过标准化Docker镜像和一键脚本极大降低了使用门槛。更重要的是,该模型对中文语境进行了深度优化,在教育、内容审核等本土化场景中表现出色。 本文将围绕“如何利用GLM-4.6V-Flash-WEB构建一个可运行的AI教育助手”展开,涵盖模型原理、环境部署、Web服务搭建及性能调优等关键环节,帮助你实现从零到一的完整落地。 1. 模型特性与核心优势 1.1 轻量化设计,单卡即可推理 GLM-4.6V-Flash-WEB 是 GLM-4 系列中的“Flash”分支,专为高效推理而生。其参数规模经过精心平衡,可在单张消费级GPU(如RTX 3090)上流畅运行,

Claude Code Viewer: 打造 Web 端 Claude Code 会话管理利器

Claude Code Viewer: 打造 Web 端 Claude Code 会话管理利器 当 Claude Code 成为日常开发标配,如何更高效地管理会话历史、分析对话流程就成了开发者的新需求。Claude Code Viewer 应运而生——一个功能完备的 Web 端 Claude Code 客户端。 背景介绍 Claude Code 是 Anthropic 推出的 AI 编程助手,但其原生的会话管理能力相对基础。大多数开发者面临以下痛点: * 会话历史难以追溯和检索 * 无法在移动设备上方便地查看会话 * 多人协作时难以共享会话内容 * 缺乏对会话流程的全局视角 Claude Code Viewer 正是为解决这些问题而生的开源项目。它采用 Web 架构设计,专注于会话日志的完整分析,通过严格的数据校验和渐进式展示 UI,让每一个对话细节都清晰可见。