首页 > 其他分享 >ysyx:接入nvboard

ysyx:接入nvboard

时间:2024-06-13 15:13:26浏览次数:17  
标签:nvboard 引脚 接入 代码 绑定 ysyx dut top

ysyx的nvboard项目里自带了一个example,用来演示功能,同时也给出了简单的使用说明。

要将自己的verilog代码接入nvboard,首先需要生成一份nvboard.a库文件。在nvboard目录下make nvboardarchive,然后将库文件放到npc文件夹下的目录文件。

假设我们的c++文件只有main.cpp,元件代码只有top.v。为了接入nvboard,我们可以直接参考example的makefile文件,直接cp make run部分的代码。本来其实是可以自己写一个makefile代码的,但是由于有bug,所以就保留了原样。

1. 原本的记录波形的相关cpp代码可以不用改动,在cpp代码的对应位置,按照readme的说明,加入nvboard的函数即可:

nvboard_bind_all_pins(&dut); nvboard_init();
while (1) { // ... nvboard_update(); }
nvboard_quit(); 不过要注意,绑定所有引脚的函数是                          nvboard_bind_all_pins(Vtop *top);
在样例代码里是先声明了  static TOP_NAME dut;  然后  调用  nvboard_bind_all_pins(&dut);   如果你之前已经写好的波形激励代码已经有了Vtop* top,那传参时传top就行。   2. 样例代码里有dut.rst =1 这样的内容,因为激励文件可以直接在代码里对元件的进行赋值。样例代码首先是将rst分别设置为了1和0并运行数次。然后设置了时钟信号clk,每次时钟信号推进时更新一次值。如果仿真需要的话,可以用类似的方法在自己的代码中这样设置。因为nvboard的虚拟板子本身似乎不附带clk引脚和rst引脚。
static void single_cycle() {
  dut.clk = 0; dut.eval();
  dut.clk = 1; dut.eval();
}

static void reset(int n) {
  dut.rst = 1;
  while (n -- > 0) single_cycle();
  dut.rst = 0;
}

int main() {
  nvboard_bind_all_pins(&dut);
  nvboard_init();

  reset(10);

  while(1) {
    nvboard_update();
    single_cycle();
  }
}

3.  编译需要包含的文件其实不多,csrc下的文件(main.cpp)和引脚绑定cpp,以及vsrc下的所有verilog元件。

4. constr文件夹下的top.nxdc文件就是将verilog代码的信号和nvboard的引脚绑定。每行一组,可以绑定单个输入输出信号,也可以直接一个向量绑定一组引脚(每个引脚都要写明)。这个文件是必须要有的,要不然不能自动生成bind_all.cpp。当然,手动一个个调用函数、自己写makefile的话,这部分就可以无视。

5. nvboard文件夹下的N4可以查看nvboard所有的引脚。虚拟板子的引脚和top元件的输入输出方向应该保持一致。此外,top.nxdc文件里,绑定到板子的元件输入输出信号,必须都在verilog元件参数里直接声明。但是.v元件代码里的输入输出信号可以不绑定板子引脚,选择空置或者由c++代码管理,比如样例里面的rst和clk信号,就是通过代码赋值的。

标签:nvboard,引脚,接入,代码,绑定,ysyx,dut,top
From: https://www.cnblogs.com/namezhyp/p/18244450

相关文章

  • 如何在小程序中接入微信默认表情?仿微信表情组件emoji运用
    仿微信表情组件。使用前需将文档下方提供的表情雪碧图上传 CDN,再传入表情组件。#属性列表属性类型默认值必填说明sourcestring是表情雪碧图地址heightnumber300否表情盘高度background-colorstring#EDEDED否表情盘背景色show-sendbooleantrue否是否显示发送按钮show-delbool......
  • 802.11协议入门 1:信道接入机制
    目录1.序言2.CSMA/CD机制3.CSMA/CA机制3.1总体说明3.2基础概念说明3.3详细工作机制3.4BEB机制说明4.CSMA/CD与CSMA/CA差异1.序言    一晃从事通信领域已经十几年了,最近想把这些年来学到的一些知识整理并分享出来,也是自己一个查漏补缺的过程。本......
  • 基于ESP32+arduino+platformIO驱动小米模组接入米家app(以温湿度传感器为例)
    1.选择开发板以及开发环境1.ESP32-C3-DevKitC-02作为主控(以下称为ESP32模块)相关文档:ESP32-C3-DevKitC-02-ESP32-C3-—ESP-IDF编程指南latest文档https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32c3/hw-reference/esp32c3/user-guide-devkitc-02.ht......
  • 小爱同学接入ChatGPT
    用到的工具:1,Xiaogpt(感谢yihong0618):https://github.com/yihong0618/xiaogpt2,MiService(感谢Yonsm&yihong0618):https://github.com/Yonsm/MiServiceorhttps://github.com/yihong0618/MiService3,小爱音响(我这里用的是L05C,这个型号在设备底部铭牌上)4,一个安装了python3.8+,以及Pip的......
  • 从云端到终端:青犀视频汇聚/融合平台的视频接入方式与场景应用
    一、青犀视频汇聚/融合平台由TSINGSEE青犀视频研发的EasyCVR智能融合/视频汇聚平台基于“云-边-端”一体化架构,支持视频汇聚、融合管理,兼容多协议(GA/T1400/GB28181/Onvif/RTSP/RTMP/海康SDK/Ehome/大华SDK/宇视SDK等)、多类型设备(IPC/NVR/监控平台)的接入。可通过接入AI智能分析......
  • 打造高效视频融合平台:基于GB28181和Ehome等多协议接入的EasyCVR方案详解
    EasyCVR视频融合/汇聚云平台基于“云-边-端”一体化架构,部署轻量简单、功能灵活多样,平台可支持多协议(GAT1400/GB28181/RTSP/Onvif/海康SDK/Ehome/大华SDK/RTMP推流等)、多类型设备接入(IPC/NVR/监控平台),在视频能力上,可实现视频直播、录像、回放、检索、云存储、告警上报、语音对讲......
  • 安防监控视频平台LntonCVS统一视频接入平台建筑工地安防监控应用方案
    随着科技的高速发展,视频信号经过数字压缩后,可以通过互联网宽带或者移动4G网络进行传输,从而实现远程视频监控功能。将这一功能应用于施工现场安全管理,将大大提高管理效率并提升监管水平。LntonCVS监控系统能够实现这些目标,使得施工企业能够跃上新的管理平台,同时政府的监管力度也......
  • jenkins接入钉钉api接口自动化测试报告自动发送
    一些同学的公司在做接口自动化测试时,难免会要求进行持续集成以及需要将可视化报告发送到诸如钉钉工作群等地方,于是便编写下列相关教程。jenkins上进行持续集成以及接入钉钉前提条件准备好自动化脚本持续集成源代码管理模块安装插件:Gitplugin获取凭证:http拉取链接对应:登录......
  • 把GPT接入网站客服系统,实现独立客服系统的智能化回复 搭载最新的ChatGPT大模型
    1.项目概述1.1项目背景与目标随着人工智能技术的快速发展,GPT(GenerativePre-trainedTransformer)大模型在自然语言处理领域展现出卓越的能力。本项目旨在将GPT大模型集成到网站客服系统中,以实现更加智能化的自动回复功能。通过这一集成,我们期望提升客服系统的响应效率,降低人力......
  • 数据治理--数据接入 批量接入脚本生成工具 判断增量全量,过滤
             表变化频率比较低的表覆盖     数据接入工具           ......