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