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

SpinalHDL之设计错误(Design Errors)(一)

本文作为SpinalHDL学习笔记第七十四篇,介绍SpinalHDL的设计错误

目录:

1.赋值覆盖(Assignment Overlap)

2.跨时钟域违例(Clock crossing violation)

3.组合环(Combinatorial loop)

4.层次违例(Hierarchy violation)

5.IO包

⼀、赋值覆盖(Assignment Overlap)

⼀、简介

SpinalHDL将会检查, 没有任何的信号赋值会完全抹除前⾯的赋值。

⼆、例⼦

下列代码:

class TopLevel extends Component {
val a = UInt(8 bits)
a := 42
a := 66 // Erase the a := 42 assignment
}

将会产⽣如下报错:

ASSIGNMENT OVERLAP completely the previous one of (toplevel/a : UInt[8 bits])
***
Source file location of the a := 66 assignment via the stack trace
***

可以修复为:

class TopLevel extends Component {
val a = UInt(8 bits)
a := 42
when(something) {
a := 66
}
}

但当某些情况下, 如果⽤户真的需要去覆盖掉之前的赋值(因为在某些时候覆盖是有意义的), 则可以使⽤如下表达:

class TopLevel extends Component {
val a = UInt(8 bits)
a := 42
a.allowOverride
a := 66
}

二.跨时钟域违例(Clock crossing violation)

⼀、简介

SpinalHDL会检查⽤户设计中的寄存器只会与相同时钟域的寄存器以

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

相关文章:

  • QT + opengl 让2d贴图动起来
  • 【selenium】webdriver测试脚本
  • 工业自动化中的关键信号:开关量、模拟量与脉冲量
  • VMware vCenter Server 8.0U3c 发布下载,修复 U3b 更新停止响应的问题
  • Java面试宝典-Java集合02
  • HJ212-2017协议详解:工业物联网环境监测标准简单了解
  • 【Golang】Go语言Seeker接口与文件断点续传实战
  • 【MySQL】基本查询(下):更新、删除
  • django urlconf路由分发
  • The 2024 ICPC Kunming Invitational Contest K. Permutation(交互 期望)
  • TensorFlow与Pytorch的转换——1简单线性回归
  • 短剧小程序短剧APP在线追剧APP网剧推广分销微短剧小剧场小程序集师知识付费集师短剧小程序集师小剧场小程序集师在线追剧小程序源码
  • AI与物理学的交汇:Hinton与Hopfield获诺贝尔物理学奖
  • 六西格玛设计DFSS方法论在消费级无人机设计中的应用——张驰咨询
  • 按分类调用标签 调用指定分类下的TAG
  • 报错 - llama-index pydantic error | arbitrary_types_allowed | PydanticUserError
  • PostgreSQL Docker Error – 5432: 地址已被占用
  • 【LeetCode】动态规划—646. 最长数对链(附完整Python/C++代码)
  • 数字媒体产业园区:创新资源集聚,助力企业成长
  • 【Linux】来查看当前系统的架构
  • QT中的信号槽
  • 域名怎么转让给别人?
  • 计算机网络思维导图
  • 07.useDefault
  • git更加详细和灵活的提交过程,附带如何配置. gitignore来忽略部分文件的提交。
  • 使用正则表达式删除文本的奇数行或者偶数行
  • YOLOv10改进策略【注意力机制篇】| CVPR2024 CAA上下文锚点注意力机制
  • Unity修改鼠标图片【超简单】
  • windows C++-创建数据流代理(三)
  • C语言学习-循环嵌套打印字母金字塔