Verilog代碼命名六大黃金規(guī)則
關(guān)于Verilog代碼中命名的六大黃金規(guī)則。
1. 系統(tǒng)級(jí)信號(hào)的命名。
系統(tǒng)級(jí)信號(hào)指復(fù)位信號(hào),置位信號(hào),時(shí)鐘信號(hào)等需要輸送到各個(gè)模塊的全局信號(hào);系統(tǒng)信號(hào)以字符串Sys開(kāi)頭。
2. 低電平有效的信號(hào)后一律加下劃線和字母n。如:SysRst_n;FifoFull_n;
3. 經(jīng)過(guò)鎖存器鎖存后的信號(hào),后加下劃線和字母r,與鎖存前的信號(hào)區(qū)別。如CpuRamRd信號(hào),經(jīng)鎖存后應(yīng)命名為CpuRamRd_r。低電平有效的信號(hào)經(jīng)過(guò)鎖存器鎖存后,其命名應(yīng)在_n后加r。
如CpuRamRd_n信號(hào),經(jīng)鎖存后應(yīng)命名為CpuRamRd_nr多級(jí)鎖存的信號(hào),可多加r以標(biāo)明。如CpuRamRd信號(hào),經(jīng)兩級(jí)觸發(fā)器鎖存后,應(yīng)命名為CpuRamRd_rr。
4. 模塊的命名。
在系統(tǒng)設(shè)計(jì)階段應(yīng)該為每個(gè)模塊進(jìn)行命名。命名的方法是,將模塊英文名稱的各個(gè)單詞首字母組合起來(lái),形成3到5個(gè)字符的縮寫。若模塊的英文名只有一個(gè)單詞,可取該單詞的前3個(gè)字母。各模塊的命名以3個(gè)字母為宜。例如:Arithmatic Logical Unit模塊,命名為ALU。Data Memory Interface模塊,命名為DMI。Decoder模塊,命名為DEC。
5. 模塊之間的接口信號(hào)的命名。
所有變量命名分為兩個(gè)部分,第一部分表明數(shù)據(jù)方向,其中數(shù)據(jù)發(fā)出方在前,數(shù)據(jù)接收方在后,第二部分為數(shù)據(jù)名稱。兩部分之間用下劃線隔離開(kāi)。第一部分全部大寫,第二部分所有具有明確意義的英文名全部拼寫或縮寫的第一個(gè)字母大寫,其余部分小寫。
舉例:CPUMMU_WrReq,下劃線左邊是第一部分,代表數(shù)據(jù)方向是從CPU模塊發(fā)向存儲(chǔ)器管理單元模塊(MMU)。下劃線右邊Wr為Write的縮寫,Req是Request的縮寫。兩個(gè)縮寫的第一個(gè)字母都大寫,便于理解。整個(gè)變量連起來(lái)的意思就是CPU發(fā)送給MMU的寫請(qǐng)求信號(hào)。模塊上下層次間信號(hào)的命名也遵循本規(guī)定。若某個(gè)信號(hào)從一個(gè)模塊傳遞到多個(gè)模塊,其命名應(yīng)視信號(hào)的主要路徑而定。
6. 模塊內(nèi)部信號(hào):
模塊內(nèi)部的信號(hào)由幾個(gè)單詞連接而成,縮寫要求能基本表明本單詞的含義;單詞除常用的縮寫方法外(如:Clock-》Clk, Write-》Wr, Read-》Rd等),一律取該單詞的前幾個(gè)字母( 如:Frequency-》Freq, Variable-》Var 等);每個(gè)縮寫單詞的第一個(gè)字母大寫;若遇兩個(gè)大寫字母相鄰,中間添加一個(gè)下劃線(如DivN_Cntr);
舉例:SdramWrEn_n;FlashAddrLatchEn.