2014-02-24 90 views
2

我不知道這裏出了什麼問題。我使用了一個modelsim SE 6.5b。然後當我使用「typedef」時,出現語法錯誤。爲什麼在verilog中使用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 
+0

請顯示您收到的錯誤。 – Morgan

回答

2

typedef是一個SystemVerilog關鍵字,而不是Verilog。

要在Modelsim上啓用SystemVerilog,您需要添加-sv編譯選項和/或將文件重命名爲.sv擴展名。

+1

我建議在包含SystemVerilog的文件上使用* .sv文件擴展名,而不要使用全局的-sv開關。 –

0

您的代碼在Modelsim 10.1d上正常工作。請參閱EDA Playground上的示例(我必須添加endmodule,但它未經修改)。

我建議檢查您的編譯標誌,以確保您在編譯期間啓用對SystemVerilog的支持。

相關問題