当前位置: 首页 > news >正文

SpinalHDL之错误集(一)

本文作为SpinalHDL学习笔记第七十六篇,作为错误集使用,类似高中生的错题集,记录使用SpinalHDL过程中遇到的问题,小到语法错误、版本兼容问题,大到SpinalHDL库函数错误等等,持续更新

SpinalHDL学习笔记总纲:

SpinalHDL 学习笔记_blackbox spinalhdl-CSDN博客

目录:

1.Stream库函数废弃;

2.标准库函数找不到

3.跨时钟域报错

一、Stream库函数废弃(2024.9.15)

现象使用SpinalHDL标准库函数Stream时,“Stream”上有根划线,显示该函数已被弃用;

原因:SpinalHDL是基于Scala的一个库,笔者使用的Scala版本为3.x.x,不支持Stream,可能是Scala版本太高了;

解决方法:降低Scala版本,目前Scala 2.11.12是针对SpinalHDL比较稳定的版本;

二、标准库函数找不到(2024.9.23)

现象:编译时报一些标准库函数找不到的error,比如状态机的makeInstantEntry,在import路径下没有对应的库;

原因:SpinalHDL目前还算发展中,一些标准的库函数是随着版本持续添加修改的,笔者使用的版本是1.6.0,里面还没有这些库函数;

解决方法:把SpinalHDL的版本改成1.9.0,截止2024.9.25,SpinalHDL官方最新版是1.10.0;

三、跨时钟域报错(2024.10.10)

现象:IIC顶层模块里例化了两个子模块i2cRegInsti2sBaseInst,这两个模块有一些接口直接连接起来,报了这些连线跨时钟域的error;

原因:两个子模块被认为是两个不同的clockdomain不管这两个子模块用的时钟相不相同,从一个clockdomain到另一个clockdomain的信号都需要做跨时钟域处理; 

解决方法:由于这两个子模块使用的时钟相同,所以实际上不用做时钟同步,所以直接使用addTag(crossClockDomain)忽略报错。

Note:如果这两个子模块使用的时钟不同,那是需要做信号同步的,一般在各个子模块里先用addTag(crossClockDomain)忽略报错,再对信号做处理。

http://www.lryc.cn/news/459959.html

相关文章:

  • 【arcgis】ArcGIS中如何避免标注压盖要素
  • 数通--3
  • SpringBoot基础(五):集成JUnit5
  • 正点原子学习笔记之汇编LED驱动实验
  • 网络学习第二篇
  • 一些小结汇总
  • 20240720 科大讯飞 笔试
  • 【AIGC】寻找ChatGPT最佳推理步骤:CoT思维链技术的探索与应用
  • 一、安装VMWARE和CentOS
  • 岩石分类检测数据集 4700张 岩石检测 带标注 voc yolo 9类
  • 电脑基础知识:mfc110.dll丢失的解决方法
  • Lua 协同程序(coroutine)
  • NASA:ARCTAS 区域的二级 FIRSTLOOK 气溶胶产品子集。 它包含气溶胶光学深度和粒子类型,以及相关的大气数据
  • go clean command
  • 鸿蒙NEXT开发-动画(基于最新api12稳定版)
  • HTML 入门
  • 前端面试题(十五)
  • 如何成为 Rust 核心贡献者?Rust 开发的核​​心是什么?Rust 重要技术专家揭秘
  • springboot + nacos + sofarpc 整合后报错403
  • 小米路由器R3Gv2安装openwrt记录
  • 记录一下,android studio 登录不上github的问题
  • springcloud之基于github webhook动态刷新服务配置
  • qt+opengl 实现纹理贴图,平移旋转,绘制三角形,方形
  • 【动态规划】子数组系列(下)
  • macos mendeley Unable to install the Microsoft Word Plugin 解决
  • 【Linux进程间通信】Linux信号机制深度解析:保存与处理技巧
  • 常见开源组件的详解
  • rust使用教程详解
  • 并查集的实现(朴素版)
  • WPF 为button动态设置不同的模板