[SV]SystemVerilog枚举型变量语法详解及应用举例
SystemVerilog枚举型变量语法详解及应用举例
This section provides the examples to declare SystemVerilog enum of logic type, enum of bit type and enum of int type
- 枚舉值缺省為從0開始遞增的整數,用戶也可以可以指定自己的枚舉值
- 枚舉變量用於一些特定名稱的集合,如指令中的操作碼和狀態機中的狀態名
一、枚舉類型的子函數
1.1、SystemVerilog提供了一些可以遍歷枚舉類型的函數,如下圖:
No. | Functon | Description |
1 | first() | 返回第一個枚舉常量 |
2 | last() | 返回會後個枚舉常量 |
3 | next() | 返回下一個枚舉常量 |
4 | next(N) | 返回以後第N個枚舉常量 |
5 | prev() | 返回前一個枚舉常量 |
6 | prev(N) | 返回以前第N個枚舉常量 |
1.2、遍歷枚舉變量
typedef enum {READ, BLUE, GREEN} color_e;color_e color;
color = color.first;do begin$display("Colors :: Value of %0d/%0s= %0d", color, color.name()); color = color.next();end while(color != color.first());
二、logic類型的Enum應用舉例
module enum_datatype;//declarationenum logic [3:0] { red=0, green=1, blue=4, yellow, white=6, black=9 } Colors;initial beginColors = Colors.first; //從第一個元素開始for(int i=0;i < 6;i++) begin$display("Colors :: Value of %0s is \t= %0d", Colors.name(), Colors);Colors = Colors.next; //指向下一個元素endend
endmodule
- Simulator output:
Colors :: Value of red is = 0
Colors :: Value of green is = 1
Colors :: Value of blue is = 4
Colors :: Value of yellow is = 5
Colors :: Value of white is = 6
Colors :: Value of black is = 9
三、Enum of bit type example
module enum_datatype;//declarationenum bit [3:0] { red=0, green=1, blue=4, yellow, white=6, black=9 } Colors;initial beginColors = Colors.first;for(int i=0;i < 6;i++) begin$display("Colors :: Value of %0s is \t= %0d",Colors.name(),Colors);Colors = Colors.next;endend
endmodule
- Simulator output:
Colors :: Value of red is = 0
Colors :: Value of green is = 1
Colors :: Value of blue is = 4
Colors :: Value of yellow is = 5
Colors :: Value of white is = 6
Colors :: Value of black is = 9
四、Enum of int type example
module enum_datatype;//declarationenum int { red=0, green=1, blue=4, yellow, white=6, black=9 } Colors;initial beginColors = Colors.first;for(int i=0;i < 6;i++) begin$display("Colors :: Value of %0s is \t= %0d",Colors.name(),Colors);Colors = Colors.next;endend
endmodule
Simulator output:
Colors :: Value of red is = 0
Colors :: Value of green is = 1
Colors :: Value of blue is = 4
Colors :: Value of yellow is = 5
Colors :: Value of white is = 6
Colors :: Value of black is = 9
五、枚舉型(enum)變量的Cover
5.1、定義如下枚舉類型變量
typedef enum {INIT, DECODER, IDLE} fsm_states_e;fsm_states_e p_states;
fsm_states_e n_states;
5.2、Covergroup定義
covergroup p_states_group with function sample(my_trans tr);options.pre_instance = 1;options.auto_bin_max = 30;p_fsm : coverpoint(tr.p_states) {} endgroup : p_states_group
[SV]SystemVerilog枚举型变量语法详解及应用举例相关推荐
- Arduino 变量语法详解(含示例)一
一.常量 1.1 HIGH | LOW(引脚电压定义) 1.2 INPUT | OUTPUT(数字引脚(Digital pins)定义) 1.3 true | false(逻辑层定义) 1.4 int ...
- C语言--bool型变量问题详解
环境linux下 GCC编译器 #include <stdio.h> #include <stdbool.h> #include <string.h> int ma ...
- python变量类型-Python 变量类型详解
变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...
- python编程语法大全-Python编程入门——基础语法详解
今天小编给大家带来Python编程入门--基础语法详解. 关于怎么快速学python,可以加下小编的python学习群:611+530+101,不管你是小白还是大牛,小编我都欢迎,不定期分享干货 每天 ...
- python编程语法-Python编程入门——基础语法详解
今天小编给大家带来Python编程入门--基础语法详解. 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_num ...
- python编程if语法-Python编程入门基础语法详解经典
原标题:Python编程入门基础语法详解经典 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_number = ...
- python编程语法-Python编程入门——基础语法详解(经典)
今天小编给大家带来Python编程入门--基础语法详解.温馨提示: 亮点在最后! 在这里还是要推荐下我自己建的Python开发学习群:301056051,群里都是学Python开发的,如果你正在学习P ...
- python基础编程语法-Python编程入门——基础语法详解
今天小编给大家带来Python编程入门--基础语法详解. 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_num ...
- python基础编程语法-Python编程入门——基础语法详解(经典)
今天小编给大家带来Python编程入门--基础语法详解.温馨提示: 亮点在最后! 在这里还是要推荐下我自己建的Python开发学习群:301056051,群里都是学Python开发的,如果你正在学习P ...
最新文章
- 区块链100讲:智能合约审计指南
- python3.6中@property装饰器的使用
- Spring EL bean引用实例
- 计算机网络安全顾问啊,【网络安全咨询顾问工作内容|工作职责|网络安全咨询顾问做什么】-看准网...
- 判断x是否为2的n次幂
- window 配置react native 、Android Studio环境
- NLP情感分析笔记(四):卷积情感分析
- css手型指针_前端基础面试题(HTML+CSS部分)
- sphinx 全文检索 笔记一
- CSS类,ID,标签和伪类详细说明
- 专访普渡科技:深耕餐饮业务,充分发掘送餐机器人的商业价值
- python链表操作_python操作链表的示例代码
- android能播放4k视频格式,四平台六款手机4K视频播放实测
- 路由器修改dns服务器,路由器DNS怎么设置如何修改路由器DNS服务器地址
- 3万一5万新能源电动汽车,3万内的新能源电动轿车
- python求因子个数_python怎么求因数
- 荣耀 MagicBook Pro 加装固态硬盘
- 关闭 Gatekeeper
- Java实现窗口框架,转换金额的大小写
- 盘点5大高频移动端场景,你不会用就落后了(内附模板下载)
热门文章
- 拆分大科技公司到底意味着什么?
- 深入浅出的webpack构建工具---HappyPack优化构建(九)
- 【linux】模块化实践之存储专题
- ADC性能指标(INL/DNL/GE/OE/SNR/THD/SINAD/SFDR/ENOB)(用函数的观点来理解)
- ADC参数测试上位机,通过将ADC的数字量输入上位机,上位机可以计算出动态参数 ENOB SFDR SNR 总谐波失真
- 斗地主智能(AI)出牌算法
- 关于iframe 嵌套页面
- 团队管理培训总结(2):沟通有法
- NetData 入门
- Vintage、滚动率、迁移率的应用(转载)