typedef - 为什么在 verilog 中使用 typedef 时出现语法错误?

标签 typedef verilog

我不知道这里出了什么问题。我使用 modelsim SE 6.5b。然后,当我使用“typedef”时,出现语法错误。

`timescale 1ns/10ps

    // Type define a struct
    typedef struct {
      byte a;
      reg  b;
      shortint unsigned c;
    } myStruct;

    module typedef_data ();

    // Full typedef here
    typedef integer myinteger;

    // Typedef declaration without type
    typedef myinteger;
    // Typedef used here
    myinteger a = 10;
    myStruct object = '{10,0,100};

    initial begin
      $display ("a = %d", a);
      $display ("Displaying object");
      $display ("a = %b b = %b c = %h", object.a, object.b, object.c);
      #1 $finish;
    end

最佳答案

typedef 是 SystemVerilog 关键字,而不是 Verilog。

要在 Modelsim 上启用 SystemVerilog,您需要添加 -sv 编译选项和/或将文件重命名为带有 .sv 扩展名。

关于typedef - 为什么在 verilog 中使用 typedef 时出现语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21981986/

相关文章:

c++ - 如何在 C++ 中对任何函数进行 typedef?

c - 将参数分配给局部变量时从不兼容的指针类型进行分配

verilog - 我如何在 verilog 中使用 $value$plusargs?

testing - Verilog d触发器电路测试

python - 如何为 myHDL 安装协同仿真支持

verilog - 如何将可合成字符串分配给 SystemVerilog 中的字节数组?

c - “typedef void *(*Something)(unsigned int)”是什么意思

c - typedef 一个函数指针

c - C 中的 Typedef,使用 * 这是做什么的?

verilog - 合成中超出循环迭代限制,但仿真中未超出