verilog - 多位逻辑和数组逻辑声明的系统verilog区别
问题描述
我是系统 verilog 的新手,无法找到任何来源。
当我写
logic [3:0] buttonsInc;
之后
assign buttonsInc[0] = 0;
assign buttonsInc[1] = 0;
我收到一个错误,说不能索引到非数组类型...我假设是因为buttonsInc 现在是一个 4 位数字,而不是一个数组。我应该如何编写它来声明一个数组,比如包含 3 个 4 位数组?也许像这样?
logic[0:3][4:0] buttonsInc;
或者
logic[4:0][3:0] buttonsInc;
[0:3]
另外,定义逻辑和定义逻辑有什么区别 [3:0]
?
解决方案
逻辑 [3:0]buttons_inc 表示一个名为buttons_inc 的 4 位向量,[3:0] 表示索引 3(0 到 3)是 MSB 位,而 [0:3] 表示索引 0 是 MSB 位。[3:0]--> (MSB)3 2 1 0 ||| [0:3]--> 3 2 1 0(MSB)
logic[3:0][4:0]buttons_inc 将创建一个压缩数组,即 4 个向量,每个向量 5 位宽。请注意,打包数组本质上是被细分为更小的 sub_vectors 的向量,这与解包数组是连续的不同。
推荐阅读
- swift - 如何从mapkit获取地名
- php - 我需要在 SQL 中加入哪些基于来自不同表的 ID 的类别名称?
- apache - 访问禁用 ssl 的域的 https 版本会显示不同的页面
- php - 我下载的php联系表格不起作用
- oop - 解决方法“配置不支持动态接口转换”
- javascript - Outlook WebAddin throwing internal server error when registering Office.EventType.ItemChanged
- javascript - 如何使用 javascript 在 IE9 中触发 Enter Key 事件?
- java - 如何在 DispatchAction 类的执行方法中获取响应文本
- java - Apache Camel:从其他路由重用 Camel 路由的最佳方式是什么?
- html - 防止 p span 元素在页面加载时四处移动