Verilog 注釋語句與文件頭編寫


Verilog 注釋語句與文件頭

Verilog語法與C語言由許多一致的地方, 特別是注釋語句幾乎一樣,  也提供了兩種注釋方式,分別為行注釋//與段注釋/* … */。注釋不作為代碼的有效部分,只是起到注釋的作用,提高程序的可讀性。編譯器在編譯時自動忽略注釋部分。

  • 行注釋語句//

一種是由雙斜杠”//”構成的注釋語句,只注釋一行,即從 //開始到本行末都是注釋部分。行注釋常用來說明該行代碼的含義,意圖及提示等信息,也可以注釋一行代碼。

如:

wire signed [3:0] a; // 定義有符號wire類型向量a。

wire signed [3:0] b;

//wire signed [3:0] c;

上面三條語句中第三條被注釋了,因此編譯器在編譯時自動忽略該條語句。

  • 段注釋語句/*…*/

段注釋語句可以注釋一段內容。例:

`timescale 1ns/1ps

module tb
(
);

reg [3:0] a, b, c;
wire [3:0] d;
wire [3:0] e;

initial begin
    a ='b0;
    b ='b0;
    c ='b0;
    #10

    a ='d7;
    b ='d9;
    c ='d12;
    #10

    a ='b11x1;
end

/*
cmp cmp_dut
(
    .a (a),
    .b (b),
    .c (c),
    .d (d),
    .e (e)
);
*/

endmodule

在上例中由符號“/*”與符號“*/”包起來的一段內容是注釋部分,編譯器在編譯時自動忽略。

  • 文件頭:

一般好的習慣在每個工程文件的開頭由注釋語句組成一段說明(或聲明)文件,指明文件創建日期,修改日期,作者,版權,及該文件簡短說明等。工程師在編寫文件時要保持一個良好的習慣,為以后代碼維護和版權維護帶來方便。

Xilinx 推薦的格式如下:

////////////////////////////////////////////////////////////////////////////////
// Company: <Company Name>
// Engineer: <Engineer Name>
//
// Create Date: <date>                        創建時間
// Design Name: <name_of_top-level_design>    設計名稱
// Module Name: <name_of_this_module>         本模塊名稱
// Target Device: <target device>             使用的目標器件
// Tool versions: <tool_versions>             開發工具的版本號
// Description:                               描述
// <Description here>
// Dependencies:                              依賴
// <Dependencies here>
// Revision:                                  修訂版
// <Code_revision_information>
// Additional Comments:
// <Additional comments>
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
// 公司: Fraser Innovation Inc.
// 工程師:庄乾起
// 創建日期:2021 年 2月18
// 設計名稱: 注釋
// 模塊名:
// 目標器件: cyclone 10lp
// 工具軟件版本號: Quartus II 20.3
// 描述:
// <Description here>
// 依賴文件:
// <Dependencies here>
// 修訂版本:
// rev1.1
// 額外注釋:
// 待定
////////////////////////////////////////////////////////////////////////////////

module aaa
(
    input clk,
    input a,
    output b,
    input reset
);
....
....

endmodule

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM