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
