SystemVeriog枚举练习+书籍印刷错误记录

        睡前读书,《SystemVerilog验证测试平台编写指南(原书第三版)》,2023年3月第一版,第一次印刷。

        [例2.60],代码中COLOR_e在c2赋值时,改成了小写。修正后,加上module声明的代码如下:

 1 module Test;
 2     typedef enum {RED, BLUE, GREEN} COLOR_e;
 3     COLOR_e color, c2;
 4     int c;
 5 
 6     initial
 7     begin
 8         color = BLUE;
 9         c = color;
10         c++;
11         if(!$cast(color, c))
12             $display("Cast failed for c = %0d", c);
13         $display("Color is %0d / %s", color, color.name());
14         c++;
15         c2 = COLOR_e'(c);
16         $display("c2 is %0d / %s", c2, c2.name());
17     end
18 endmodule

         在后文的描述语句中,即54页上部的描述中,“你也可以像例2.51所示的那样使用type'(val)进行类型转换”,根据上下文,这里应该说的是例2.50。后续“在例2.51中进行静态类型转换以后,赋给c2的值实际上已经越界”,这里应该是例2.60。

        仿真输出结果如下,因为c2越界了,所以输出信息中没有对应的枚举名字。

 

         另,56页练习1中,integer拼写错误。

posted @ 2023-06-19 23:33  颜秋哥  阅读(62)  评论(0编辑  收藏  举报