vhdl - VHDL中的递增枚举类型
问题描述
在 vhdl 中,我可以定义自己的枚举类型并创建这种类型的信号:
type tp is (red,green,blue,yellow);
signal sg: tp := red;
但现在我想要一个 for 循环来运行所有这些状态。就像是
for i in sg'min to sg'max loop
<something>
end loop;
在 c++ 中有用于此目的的迭代器。但在 VHDL 中,我只能找到sg'pos
将信号转换为可以递增的数字。但我似乎找不到将数字转换回信号的方法。
解决方案
这就是你需要的:
for i in tp'left to tp'right loop
<something>
end loop;
`left 和 `right 被称为类型属性。它们在您的测试平台中很有用,但不推荐用于您的设计。这是因为您的合成器可能会更改枚举的顺序,这可能会给您带来问题。
推荐阅读
- libstdc++ - 未找到 openfoam v2006 wsl2 ubuntu 20.04 GLIBCXX_3.4.26
- html - 将 wordpress 子菜单拆分为两列
- bluesnap - BlueSnap - 如何使用托管支付字段 api 与产品进行交易(在自定义字段中传递数据)?jason 格式可以吗?
- forms - MS ACCESS - 如何在 SplitFormSize 属性上设置拆分表单宽度大小
- elasticsearch - 向 Elasticsearch 查询添加位置
- python - 如何在 TensorFlow 中的每一步都保存我的模型?
- angular - 如何以角度隐藏特定组件的 div?
- python - PyQt5的子模块出现导入错误
- python - 我需要使用 kubernetes python 客户端获取 Kubernetes 集群中的 Pod 数量
- python - 保存 Json 文件