版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 一、工程建立規(guī)范:</b></p><p><b> 1、工程的組成:</b></p><p><b> 一個頂層文件夾</b></p><p> 頂層文件夾下,至少包括以下四個子文件夾</p><p> project文件夾:存放ISE工
2、程文件,包括ise、bit、mac等文件</p><p> source文件夾:存放verilog源文件</p><p> explain文件件:存放注釋說明文檔</p><p> test文件夾:存放測試程序代碼,可進一步分為軟件調(diào)試程序、硬件調(diào)試程序</p><p><b> 工程的命令:</b></p
3、><p> 定層文件夾命令為top_xxx,xxx為工程的識別名稱</p><p> 頂層文件夾的子文件夾分別命名為:project、source、explain、test</p><p> RTL CODE 規(guī)范</p><p><b> 1.標準的文件頭</b></p><p> 在每一
4、個版塊的開頭一定要使用統(tǒng)一的文件頭,其中包括作者名,模塊名,創(chuàng)建日期,概要,更改記錄,版權(quán)等必要信息。</p><p> 統(tǒng)一使用以下的文件頭:</p><p> // **************************************************************</p><p> // COPYRIGHT(c)2005, His
5、licon Technologies Co, Ltd</p><p> // All rights reserved.</p><p><b> //</b></p><p> // IP LIB INDEX : IP lib index just sa UTOPIA_B</p><p> // IP Name
6、 : the top module_name of this ip, usually, is same</p><p> // as the small ip classified name just as UTOPIA</p><p> // File name : file_name of the file just as “t
7、x_fifo.v”</p><p> // Module name : module_name of this file just as “TX_FIFO”</p><p> // Full name : complete Emglish nme of this abbreviated</p><p><b> //</b>
8、</p><p> // Author : Athor/ID </p><p> // Email : Author’s email</p><p> // Data : </p><p> // Version : V 1.0 </p><p
9、><b> // </b></p><p> //Abstract :</p><p> // Called by : Father Module</p><p><b> // </b></p><p> // Modification history&
10、lt;/p><p> // ------------------------------------------------------------------------------------------------------</p><p><b> // //</b></p><p><b> // $Log$</b
11、></p><p><b> //</b></p><p> // *********************************************************************</p><p> 2. 標準的module 格式 (module 整體結(jié)構(gòu))</p><p> 對于
12、模塊的書寫采用統(tǒng)一的格式便于項目內(nèi)部成員的理解和維護,我們用批處理建立了一個MODULE模塊,其內(nèi)容解釋如下:</p><p> 端口定義按照輸入,輸出,雙向的順序:</p><p> 模塊名、模塊例化名統(tǒng)一,例化名前加大寫U_以區(qū)分 ( 多次例化另加標識 ),三者關(guān)系:</p><p> 文件名 :xxx .v (小寫)</p><
13、p> 模塊名 :Xxx (首字母大寫)</p><p> 例化名 :U1_xxx (首字母大寫)</p><p> IP 內(nèi)部所有的模塊名都要加IP名或者IP名簡稱作前綴,如USB_CTRL、USB_TX_FIFO。</p><p> // *****************************</p><p> /
14、/ DEFINE MODULE PORT //</p><p> // ******************************</p><p><b> //</b></p><p> // module MODULE_NAME (</p><p><b> // INPUT</b&
15、gt;</p><p> input_port_1,</p><p><b> …</b></p><p> input_port_m, </p><p><b> // OUTPUT</b></p><p> output_port_1,</p>&
16、lt;p><b> …</b></p><p> output_port_m, </p><p><b> );</b></p><p> // *****************************</p><p> // DEFINE PARAMETER //</p
17、><p> // ******************************</p><p> parameter…</p><p> // ******************************</p><p> // DEFINE INPUT</p><p> // *****************
18、*************</p><p> input rst_n ; // reset, active low .</p><p> input clk_* ; // clock signal , 50M .</p><p> input [n:0] a_din ; // **
19、***</p><p> input [k:0] b_din ; // *****</p><p> // ******************************</p><p> // DEFINE OUTPUT //</p><p> // ******************************&
20、lt;/p><p> output [m:0] a_dout ; // *****</p><p> output [i:0] b_dout ; // *****</p><p> // ******************************</p><p> // OUTPUT ATRRIBU
21、TE //</p><p> // ******************************</p><p><b> // REGS</b></p><p> reg [m:0] a_dout ; // *****</p><p><b> //WIRES</b>
22、;</p><p> wire [i:0] b_dout ; // *****</p><p> // ******************************</p><p> // INSTSNCE MODULE //</p><p> // *****************************
23、*</p><p> MODULE_NAME_A U_MODULE_NAME_A(</p><p> .A (A ),</p><p> .B (B ),</p><p> .C (C ),</p><p><b> ); …
24、</b></p><p> // ******************************</p><p> //MAIN CODE //</p><p> // ******************************</p><p><b> … …</b></p><
25、;p><b> … …</b></p><p><b> … …</b></p><p> // ****************************** //</p><p><b> Endmodule</b></p><p><b> 3.
26、一致的排版</b></p><p><b> A. 一致的縮排</b></p><p> 統(tǒng)一的縮排取4個空格寬度</p><p> 輸入輸出信號的寬度定義與關(guān)鍵字之間,信號名與寬度之間要用空格分開;所有寬度定義對所有信號名對齊,代碼風格統(tǒng)一如下:</p><p> input [3:0]
27、input_a ; // *****</p><p> input input_b ; // *****</p><p><b> …</b></p><p> output [128:0] output_a ;</p><p> output [15:0] outp
28、ut_b ;</p><p> output output_c ;</p><p> 一致的 begin end 書寫方式</p><p> always 中,一定要用begin end 區(qū)分,格式和代碼風格統(tǒng)一如下:</p><p> always @ (postedge clk or negedge rst_n)
29、</p><p><b> begin</b></p><p> if (rst_n==1’b0)</p><p> syn_rst<= ‘DLY 1’b0;</p><p><b> else</b></p><p><b> begin</
30、b></p><p><b> if (a==b)</b></p><p> syn_rst<= ‘DLY 1’b1;</p><p><b> else</b></p><p> syn_rst<= ‘DLY 1’b0;</p><p><b
31、> end</b></p><p><b> end</b></p><p> if else 中僅有一個語句行時,不要使用begin end; 如果有多個語句行時,begin end和if ()或else ()空四個格。</p><p><b> 格式如下:</b></p><
32、;p><b> if (…)</b></p><p><b> …</b></p><p> else if (…)</p><p><b> else </b></p><p> ***************************************
33、*****************************</p><p><b> if (…)</b></p><p><b> …</b></p><p> else if (…)</p><p><b> begin</b></p><p&
34、gt;<b> …</b></p><p><b> …(</b></p><p><b> end</b></p><p><b> else</b></p><p> 4. 一致的信號命名風格</p><p> 簡潔
35、,清晰,有效是基本的信號命名規(guī)則,詳見命名規(guī)范。</p><p> 端口、信號、變量名的所有字母小寫:函數(shù)名、宏定義、參數(shù)定義用大寫</p><p> 使用簡稱、縮略詞(加上列表)</p><p> 基于含義命名(避免以數(shù)字命名的簡單做法),含義可分段(最多分三段),每一小段之間加下劃線”_”,如tx_data_val;命名長度一般限制在20個字符以內(nèi)。<
36、;/p><p> 低電平有效信號,加后綴”_n”,如 rst_n</p><p> 無條件寄存的寄存信號在原信號上加ff1、ff2… 如原信號 data_in, 寄存一拍data_in_ff1,寄存兩拍data_in_ff2</p><p> 不能用 ”reg”,作為最后的后綴名,因為綜合工具會給寄存器自動加上_reg, 如果命名里就用_reg作為后綴名則擾亂了網(wǎng)
37、表的可讀性。</p><p> 5.統(tǒng)一的表達式書寫</p><p><b> A. 括號的使用</b></p><p> 如果一個表達式的分組情況不是很明顯時,加上括號有助于理解。</p><p> 例如下面的代碼加上括號就清晰很多。</p><p> if (&a==1’b1
38、&&!flag==1’b1 || b==1’b1) //</p><p><b> 改為:</b></p><p> if ((&a==1’b1)&&(!flag==1’b1)||( b==1’b1)) //</p><p><b> 適當?shù)氖褂每崭?l
39、t;/b></p><p> 一般表達式在運算符的兩側(cè)要各留出一個空格,但定義比較長的表達式,去掉預先級高的運算符前的空格,使其與運算對象緊連在一起,可以更清晰的顯示表達式結(jié)構(gòu)。</p><p><b> 還是上面的例子:</b></p><p> if ((&a==1’b1)&&(!flag==1’b1)|
40、|( b==1’b1)) //</p><p><b> 改為:</b></p><p> if ((&a == 1’b1)&&(!flag == 1’b1)||( b == 1’b1)) //</p><p> ”<=”, ”==”前后都要加空格。</p><p>&
41、lt;b> 賦值要指明比特寬度</b></p><p> 賦值或者條件判斷時要注明比特寬度,注意表達式的位寬匹配。如:</p><p> reg [4:0] signal_a;</p><p> 錯誤: 1 signal_a <= 5;</p><p> if(signal_a == 5)</p&
42、gt;<p> signal_a <= signal_b[3:0]+4;</p><p> 正確: 1 signal_a <= 5d5</p><p> if(signal_a == 5d5)</p><p> signal_a <= {1’b0, signal_b[3:0]+5d4</p><p&g
43、t; 因為工具默認是32位寬,如果不注明位寬,工具檢查會報warning,而且這樣增加了設(shè)計的嚴謹性。</p><p> 6.統(tǒng)一的語句書寫――條件判斷結(jié)構(gòu)書寫方式</p><p><b> A. 條件的完整性</b></p><p> If else搭配使用,對于缺省的條件要寫”else;”;</p><p>
44、 If elsed 條件判別式要全面,比如if(a == 1’b0);</p><p> Case中的缺省條件要寫”default”;</p><p> B.”if else”結(jié)構(gòu):適用于復雜條件判斷的語句</p><p> 但對于復雜的條件判斷,使用?:如果不仔細分析條件的每一條路徑,就讓讀代碼搞不清它是到底要做什么。例如:</p><
45、;p> C = (!Ic&&!rc)?0(Ic?rc:Ic) // (?:)</p><p><b> 改為:</b></p><p> always @(Ic or rc) // if else</p><
46、p><b> begin </b></p><p> if ((Ic==0)&&(rc==0))</p><p><b> c = 0;</b></p><p> else if (Ic==1)</p><p><b> c = rc;</b>&
47、lt;/p><p><b> else</b></p><p><b> c = Ic;</b></p><p><b> end</b></p><p> 即使是簡單的條件判斷,我們也必須使用IF-ELSE,當涉及復雜的條件判斷,使用IF-ELSE結(jié)構(gòu)以獲得清晰的結(jié)構(gòu)便于
48、理解和維護。因此必須使用IF-ELSE。</p><p> C.”IF ELSE”結(jié)構(gòu)VS”CASE”結(jié)構(gòu)</p><p> IF ELSE結(jié)構(gòu)綜合的結(jié)構(gòu)可能是與或非門構(gòu)成的,也可能是一組多路選擇器,而case結(jié)構(gòu)綜合結(jié)果一般會是多路選擇器,但對于可以優(yōu)化的case綜合工具會綜合出更簡單的結(jié)構(gòu)。</p><p> 所有對于可以寫出平行結(jié)構(gòu)的條件,優(yōu)先寫成cas
49、e結(jié)構(gòu),例如地址譯碼等,條件之間有重復和嵌套的情況則是寫成if else結(jié)構(gòu)。</p><p> D. Finite State Machine</p><p> 不允許有模糊不清的狀態(tài)機模式,所有的狀態(tài)機必須清晰明了。</p><p> 我們要求將狀態(tài)機的時序部分和組合邏輯部分分開。</p><p><b> 例如:<
50、;/b></p><p> module state4 (</p><p><b> clock</b></p><p><b> reset</b></p><p><b> out</b></p><p><b> );&l
51、t;/b></p><p> input reset </p><p> input clock;</p><p> output [1:0] out;</p><p> parameter [1:0] stateA=2’b00;</p><p> paramete
52、r [1:0] stateB=2’b01;</p><p> parameter [1:0] stateC=2’b10;</p><p> parameter [1:0] stateD=2’b11;</p><p> reg [1:0] state;</p><p> reg [1:0] nextstat
53、e;</p><p> reg [1:0] out;</p><p> always @ (posedge clock)</p><p><b> begin </b></p><p> if (reset ==1,0’b0)</p><p> state <= sta
54、teA;</p><p><b> else</b></p><p> state <= nextstate;</p><p><b> end</b></p><p> always @ (state)</p><p><b> begin <
55、;/b></p><p> case (state)</p><p> stateA: begin</p><p> nextstate = stateB;</p><p><b> end</b></p><p> stateB: begin</p><p&g
56、t; nextstate = stateC;</p><p><b> end</b></p><p> stateC: begin</p><p> nextstate = stateD;</p><p><b> end</b></p><p> stateD
57、: begin</p><p> nextstate = stateA;</p><p><b> end</b></p><p><b> endcase</b></p><p><b> end</b></p><p> always@(p
58、ostdge clock or negedge reset)</p><p><b> begin </b></p><p> if (reset==1’b0)</p><p> out <= 2’b0;</p><p> else begin</p><p> if (state
59、==…)</p><p><b> out <= …;</b></p><p><b> else</b></p><p><b> out <= …;</b></p><p><b> end</b></p><p
60、><b> end</b></p><p> endmodule </p><p> 7. 統(tǒng)一格式的always程序塊的書寫</p><p> A. always 中的變量的賦值方式――阻塞與非阻塞賦值</p><p> 當進行時序邏輯建模時,always塊中使用非阻塞賦值――NON_BL
61、OCKING;</p><p><b> 參加如下代碼:</b></p><p> always @(posedge clk or negedge rst_n)</p><p><b> begin </b></p><p> if (rst_n == 1’b0;</p>&l
62、t;p> myreg <= 1’b0;</p><p><b> else</b></p><p> myreg <= ‘DLY1’b1;</p><p><b> end</b></p><p> always塊中使用的NON_BLOCKING賦值時在”<=”前要
63、加上?!瓺LY,如上例;</p><p> 當使用always語句進行組合邏輯建模時,always塊中使用阻塞賦值――BLOCKING;</p><p><b> 參見如下代碼:</b></p><p> always @(addr)</p><p><b> begin</b></p
64、><p> case (addr)</p><p> 2’b00 : cs0_n=1’b0;</p><p> 2’b01 : cs0_n=1’b1;</p><p> 2’b10 : cs0_n=1’b0;</p><p> 2’b11 : cs0_n=1’b1;</p><p> d
65、efault: cs0_n=1’b1;</p><p><b> endcase</b></p><p><b> end</b></p><p> 如果要使用always語句同時進行時序與組合邏輯建模時,一定使用非阻塞賦值;例如:</p><p> //組合邏輯與時序邏輯在同一個alway
66、s塊中</p><p> always@(posedge clk or negedge reset_n)</p><p><b> begin</b></p><p> if(reset_n==1’b0)</p><p> out<=1’b0;</p><p><b>
67、else</b></p><p><b> begin</b></p><p> case(count)</p><p> 2’b00 : out<= `DLY in_a;</p><p> 2’b01 : out<= `DLY in_b;</p><p> 2’
68、b10 : out<= `DLY in_c;</p><p> 2’b11 : out<= `DLY in_c;</p><p> default: out<= `DLY in_a;</p><p><b> end</b></p><p><b> end</b><
69、/p><p> B.a(chǎn)lways中變量賦值的唯一性</p><p> 組合always塊一定要注意敏感量列表中的觸發(fā)項完整且不冗余;如果不是這樣,綜合的電路會與實際設(shè)計不符合,會報warning;</p><p> 不要再多個always模塊中對同一個reg型變量進行賦值;</p><p> 更不能再同一個always中隨一個變量雙重賦值
70、;</p><p><b> 例如:</b></p><p> always@(posedge clk or posedge reset_n)</p><p><b> begin</b></p><p> if(reset_n==1’b0)</p><p> ou
71、t<=1’b0;</p><p><b> else</b></p><p> out<= `DLY1’b1; //out 1 0</p><p> out<= `DLY1’b0;</p><p><b> end</b></p>
72、<p> 推薦不要在一個always塊里給多個變量賦值。如果將一組條件相同的變量寫在一個always塊中更有利于可讀性的提高和功能的實現(xiàn)時候,可有例外情況,但請盡量多加注釋,以增加可讀性,并注意在組合always塊中不要出現(xiàn)LATCH(不如對狀態(tài)機的組合always塊及它對條件相似的多個變量賦值);</p><p> C.a(chǎn)lways中復位的書寫</p><p> 復位的
73、條件表達式及命名要和always敏感列表中的描述相統(tǒng)一,并且一定要使用異步復位。所有的復位必須低有效。</p><p><b> 例如:</b></p><p><b> //</b></p><p> always@(posedge clk ot negedge rst_n) //</p><p
74、><b> begin</b></p><p> if(rst_n==1’b0)</p><p><b> …</b></p><p><b> else</b></p><p><b> …</b></p><p>
75、;<b> end</b></p><p> D.a(chǎn)lways的注釋</p><p> 要在每一個always塊之前加一段注釋,增加可讀性和便于調(diào)試。</p><p> //cm carry count which …</p><p> always@(posedge clk_xc or negedge rs
76、t_n)</p><p><b> begin</b></p><p> if(rst_n==1’b0)</p><p> cm_carry_cnt<=1’b0;</p><p><b> else</b></p><p> cm_carry_cnt<=
77、#`DLY1’b1;</p><p><b> end</b></p><p><b> 8.合理的注釋</b></p><p> 代碼中應采用英文作詳細的注釋,注釋量應達到代碼總量的50%以上。</p><p> 指示應該與代碼一致,修改程序的時候一定要修改相應的注釋;</p>
78、<p> 注釋不應重復代碼已經(jīng)表明的內(nèi)容,而是簡介的點明程序的突出特征;</p><p> 注釋應該整個一個程序的線索和關(guān)鍵詞,它連接整個程序中分散的信息并它幫助理解程序中不能表明的部分。</p><p><b> 9.重用化設(shè)計</b></p><p><b> 層次結(jié)構(gòu)與模塊劃分</b></
79、p><p> 層次設(shè)計的原理以簡單為主――盡量避免不必要的層次;層次結(jié)構(gòu)設(shè)計得好,在綜合中就不需要太多的優(yōu)化過程;</p><p> 模塊的劃分根據(jù)層次設(shè)計來決定――模塊化對于布線有很大幫助,模塊化的設(shè)計中要盡量減少全局信號的使用;</p><p> 通用的部分盡量提取出來作為一個共用模塊,同時為了適應需求的更改也應提供用戶定制模塊入庫的方式。</p>
80、<p><b> 參數(shù)傳遞</b></p><p> 需要傳遞參數(shù)的模塊,在多次例化的時候統(tǒng)一都傳遞參數(shù),不要例化同一個模塊,有的傳參數(shù),有的不傳。</p><p><b> 模塊劃分的技巧:</b></p><p> 將不同的時鐘域分離開來;</p><p> 按照不同的設(shè)
81、計目標劃分成塊,分塊式應在數(shù)據(jù)流方向上切分;</p><p> 在同一模塊中實現(xiàn)邏輯資源和算術(shù)資源的共享。</p><p> 二.關(guān)于REVIEW</p><p> 1.Review目的</p><p><b> 發(fā)現(xiàn)缺陷</b></p><p><b> 降低成本</b
82、></p><p><b> 提高質(zhì)量</b></p><p><b> 2.流程</b></p><p> 完成第一個字模塊時,請?zhí)峤辉撃K代碼,進行規(guī)范檢查評審。</p><p> Coding 期間 每兩星期 提交依次代碼和review報告。</p><p&g
83、t; Review報告主要包括內(nèi)容:</p><p> Review工作時,review的代碼模塊</p><p><b> 參與人</b></p><p> 發(fā)現(xiàn)的缺陷和解決情況。</p><p><b> Review建議:</b></p><p> 制定re
84、view計劃;(2) 每次review代碼不超過500行。</p><p><b> ANNEX</b></p><p> CODE STYLE TEMPLATE</p><p> This a template of verilog code file, including file header and the main body o
85、f code in which some coding rules are demonstrated.</p><p> //********************************************************</p><p><b> //</b></p><p> // Copyright(c)2005
86、, Hisilicon Technologies Co., Ltd</p><p> // All rights reserved</p><p><b> //</b></p><p> // IP LIB INDEX : IP lib index just as UTOPIA_B</p><p&g
87、t; // IP Name : the top module_name of this ip, usually, is same as</p><p> the small ip classified name just as UTOPIA</p><p> // File name : file_name of this file ju
88、st as tx_fifo.v</p><p> // Module name : module_name of this file just as TX_FIFO</p><p> // Full name : complete English name of the abbreviated module_name</p><
89、p> // Author : Author</p><p> // Email : Author’s email</p><p> // Data : 2005/07/20</p><p> // Version : current versi
90、on, just this: v1.0, must same as the CVS version</p><p><b> //</b></p><p> // Abstract : </p><p><b> //</b></p><p> // Called
91、 by : Father module just as TX_PROC</p><p><b> //</b></p><p> // Modification history</p><p> // -------------------------------------------------------
92、---------------------</p><p> // Version Data(yyyy/mm/dd) name</p><p> // Description</p><p><b> //</b></p><p><b> // $Log$</b></
93、p><p><b> //</b></p><p> //*************************************************************</p><p> //*******************</p><p> //DEFINE(s)</p><p
94、> //*******************</p><p> //`define UDLY 1 //Unit delay, for non-blocking assignments in sequential logic</p><p> //*******************</p><p> //DEFINE MODULE PORT&
95、lt;/p><p> //*******************</p><p> module MODULE_NAME(</p><p><b> //INPUT</b></p><p> rest_n ,</p><p> clk_* ,</p&g
96、t;<p> a_din ,</p><p> b_din ,</p><p><b> //OUTPUT</b></p><p> a_dout ,</p><p><b> b_dout</b></p>&
97、lt;p><b> );</b></p><p> //*******************</p><p> //DEFINE PARAMETER</p><p> //*******************</p><p> //Parameter(s)</p><p>
98、//*******************</p><p> //DEFINE INPUT</p><p> //*******************</p><p> input rst_n ; //reset, active low .</p><p> input
99、 clk_* ; //clock signal, 50M .</p><p> input [n:0] a_din ; //*****</p><p> input [k:0] b_din ; //*****</p><p> //*******************
100、</p><p> //DEFINE OUTPUT</p><p> //*******************</p><p> output [m:0] a_dout ; //*****</p><p> output [i:0] b_dout ; //*****</p>
101、;<p> //********************</p><p> //OUTPUT ATTRIBUTE</p><p> //********************</p><p><b> //REGS</b></p><p> reg [m:0] a_dout
102、; //*****</p><p><b> //WIRES</b></p><p> wire [i:0] b_dout ; //*****</p><p> //*********************</p><p> //INNER SIGNAL DECLARATION&
103、lt;/p><p> //*********************</p><p><b> //REGS</b></p><p> reg [3:0] counter ; //*****</p><p><b> //WIRES</b></p>&
104、lt;p> wire [7:0] temp1 ; //*****</p><p> //*********************</p><p> //INSTANTCE MODULE</p><p> //*********************</p><p> //***********
105、***************************************************</p><p> //instance of module MODULE_NAME_A filename:module_name_a.v</p><p> //**************************************************************
106、</p><p> MODULE_NAME_A U_MUDULE_NAME_A(</p><p> .A (A ),</p><p> .B (B ),</p><p> .C (C
107、 )</p><p><b> );</b></p><p> //*********************</p><p> //MAIN CORE</p><p> //*********************</p><p> //Sequential logic s
108、tyle</p><p> always@(posedge clk_* or negedge rest_n)</p><p> begin : SEQ_BLOCK_NAME</p><p> if (rst_n==1’b0)</p><p> counter<=4’b0;</p><p><b>
109、; else</b></p><p><b> begin</b></p><p> if (expression)</p><p> counter <= #`DLY siginal_b;</p><p><b> else;</b></p><p&
110、gt;<b> end</b></p><p> end // SEQ_BLOCK_NAME</p><p> //Combinational logic style</p><p> always@(signal_a or signal_b)</p><p> begin:COM_BLOCK-NAME<
111、/p><p> case (expression)</p><p> item1 :begin</p><p> signal_c=*****;</p><p><b> end</b></p><p> item2 : //statement;</p><p
112、> default ://statement;</p><p><b> endcase</b></p><p> end // COM_BLOCK_NAME</p><p> //*********************</p><p><b> endmodule</b>&
113、lt;/p><p> MACRO DEFINE TEMPLATE</p><p> //********************************************************</p><p><b> //</b></p><p> // Copyright(c)2005, Hisili
114、con Technologies Co., Ltd</p><p> // All rights reserved</p><p><b> //</b></p><p> // IP LIB INDEX : IP lib index just as UTOPIA_B</p><p> //
115、 IP Name : the top module_name of this ip, usually, is same as</p><p> the small ip classified name just as UTOPIA</p><p> // File name : macro.v</p><p> //
116、 Module name : </p><p> // Full name : complete English name of the abbreviated module_name</p><p> // Author : Author</p><p> // Email
117、 : Author’s email</p><p> // Data : 2005/07/20</p><p> // Version : current version, just this: v1.0, must same as the CVS version</p><p><b>
118、//</b></p><p> // Abstract : </p><p><b> //</b></p><p> // Called by : Father module .</p><p><b> //</b></p
119、><p> // Modification history</p><p> // ----------------------------------------------------------------------------</p><p> // Version Data(yyyy/mm/dd) name</p>
120、<p> // Description</p><p><b> //</b></p><p><b> // $Log$</b></p><p><b> //</b></p><p> //*******************************
121、******************************</p><p> //*******************</p><p> //DEFINE(s)</p><p> //*******************</p><p> `define UDLY 1 //Unit delay,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- verilog經(jīng)典內(nèi)容講解
- acm經(jīng)典代碼
- c++經(jīng)典代碼大全
- c 經(jīng)典程序代碼大全
- 螺紋標準代碼大全
- 國際標準代碼
- 標準代碼管理崗位
- 世界標準代碼
- 基于fpga的i2c實驗verilog源代碼說明書
- 經(jīng)典廣告代碼javascript漂動的圖片
- c++經(jīng)典程序代碼大全
- 表格格式和代碼標準(代碼部分)
- 遺傳算法經(jīng)典matlab代碼
- 國家質(zhì)量檢測標準代碼
- 新民事案由標準代碼
- 計量標準履歷書計量標準名稱計量標準代碼
- java實驗課經(jīng)典題型加代碼答案
- verilog秒表設(shè)計
- 標準代碼管理實施細則
- 專利文獻種類標準代碼.jsp
評論
0/150
提交評論