




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上 絕密Verilog基本電路設計指導書請輸入文檔編號文檔編號版本密級深圳市華為技術有限公司1.0內部公開共 56頁研究管理部文檔中心資源類別: HDL語言Verilog基本電路設計指導書(僅供內部使用)Verilog Group擬制:批準:批準:日期:日期:日期:2000/04/04yyyy/mm/ddyyyy/mm/dd深圳市華為技術有限公司版權所有 不得復制2001/02/28版權所有,侵權必究第 1頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號修訂記錄日期修訂版本 描述作者2000/04/04 1.002001/02/28 1.01Veril
2、og Group初稿完成修訂,主要增加三態和一些電路圖蘇文彪2001/02/28版權所有,侵權必究第 2頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號目 錄1前言556667892典型電路的設計2.1全加器的設計2.2數據通路2.2.1四選一的多路選擇器2.2.2譯碼器2.2.3優先編碼器2.3計數器2.4算術操作2.5邏輯操作2.6移位操作2.7時序器件101011121212132.7.1上升沿觸發的觸發器2.7.2 帶異步復位、上升沿觸發的觸發器2.7.3帶異步置位、上升沿觸發的觸發器2.7.4帶異步復位和置位、上升沿觸發的觸發器1415162.7.5帶同步復位、上升
3、沿觸發的觸發器2.7.6帶同步置位、上升沿觸發的觸發器2.7.7帶異步復位和時鐘使能、上升沿觸發的觸發器161718202023263030313131312.7.8 D-Latch(鎖存器)2.8 ALU2.9有限狀態機(FSM)的設計2.9.1概述2.9.2One-hot編碼2.9.3 Binary編碼2.10三態總線2.10.1三態 buffer2.10.2雙向 I/O buffer3常用電路設計3.1CRC校驗碼產生器的設計3.1.1概述3.1.2 CRC校驗碼產生器的分析與硬件實現32333.1.3并行 CRC-16校驗碼產生器的 VerilogHDL編碼3.1.4串行 CRC-16
4、校驗碼產生器的 VerilogHDL編碼3537373.2隨機數產生電路設計3.2.1概述2001/02/28版權所有,侵權必究第 3頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號3.2.2偽隨機序列發生器的硬件實現3.2.3 8位偽隨機序列發生器的 VerilogHDL編碼3738404141414444443.3雙端口 RAM仿真模型3.4同步 FIFO的設計3.4.1功能描述3.4.2設計代碼3.5異步 FIFO設計3.5.1概述3.5.2設計代碼2001/02/28版權所有,侵權必究第 4頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號Verilo
5、g 基本電路設計指導書關鍵詞:電路、摘 要:本文列舉了大量的基本電路的 Verilog HDL代碼,使初學者能夠迅速熟悉基本的 HDL建模;同時也列舉了一些常用電路的代碼,作為設計者的指導。縮略語清單: 對本文所用縮略語進行說明,要求提供每個縮略語的英文全名和中文解釋。參考資料清單: 請在表格中羅列本文檔所引用的有關參考文獻名稱、作者、標題、編號、發布日期和出版單位等基本信息。參考資料清單名稱作者編號發布日期查閱地點或渠 出版單位(若道不為本公司發布的文獻,請填寫此列)ActelHDLStyleNovember 1997 文檔室Actel公司codingGuide1 前言當前業界的硬件描述語言
6、中主要有 VHDL和 Verilog HDL。公司根據本身 ASIC設計現有的特點、現狀,主推 Verilog HDL語言,逐漸淡化 VHDL語言,從而統一公司的 ASIC/FPGA設計平臺,簡化流程。為使新員工在上崗培訓中能迅速掌握 ASIC/FPGA設計的基本技能,中研基礎部 ASIC設計中心開發了一系列的培訓教材。該套 HDL語言培訓系列包括如下教程:Verilog HDL入門教程Verilog HDL代碼書寫規范Verilog基本電路設計指導書TestBench編碼技術系列教材完成得較匆忙,本身尚有許多不完善的地方,同時,可能還需要其他知識方面的培訓但沒有形成培訓教材,希望大家在培訓過
7、程中,多提寶貴意見,以便我們對它進行修改和完善2 典型電路的設計2001/02/28版權所有,侵權必究第 5頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號在本章節中,主要講述觸發器、鎖存器、多路選擇器、解碼器、編碼器、飽和/非飽和計數器、FSM等常用基本電路的設計。如果你是初學者,我們建議你從典型電路學起,如果你已經非常熟悉電路設計,我們建議你從第 3章看起。2.1全加器的設計/*FilenameAuthor:fulladd.vVerilog_gruopExample of a one-bit full add.2000/02/29DescriptionRevisionCo
8、mpanyVerilog_group*/module FULLADDR(Cout, Sum, Ain, Bin, Cin);inputAin, Bin, Cin;Sum, Cout;outputwirewireSum;Cout;assignSum = Ain Bin Cin;assignCout = (Ain & Bin) | (Bin & Cin) | (Ain & Cin);endmodule2.2數據通路2.2.1四選一的多路選擇器用 case語句實現的多路選擇器,一般要求選擇信號之間是相關的;case的多路選擇器一般是并行的操作,但有些工具也可能綜合成優先級的譯碼器除非加一些控制參數。
9、/*FilenameAuthor:mux.vVerilog_gruopExample of a mux4-1.2000/02/29DescriptionRevisionCompanyVerilog_group*/module MUX( C,D,E,F,S,Mux_out);2001/02/28版權所有,侵權必究第 6頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號inputC,D,E,F ;S ;/inputinput1:0/select control/resultoutputMux_out ;reg Mux_out ;/muxalways(C or D or E or F
10、 or S)begincase (S)2b00 : Mux_out = C ;2b01 : Mux_out = D ;2b10 : Mux_out = E ;default : Mux_out = F ;endcaseendendmodule以上代碼實現的功能如下所示:CDEMUXMux_outFS1:01 Multiplexor using a case statement2.2.2譯碼器因為譯碼信號之間是相關的,因此,譯碼器要 case語句實現。/*FilenameAuthor:decode.vVerilog_gruopDescriptionExample of a 3-8 decoder
11、.2001/02/28版權所有,侵權必究第 7頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號Revision:2000/02/29CompanyVerilog_group*/module DECODE(Ain,En,Yout);inputinputoutputEn ;/enable2:07:0Ain ;Yout ;/input codereg 7:0 Yout ;always(En or Ain)beginif(!En)Yout = 8b0 ;elsecase (Ain)3b000 : Yout = 8b0000_0001 ;3b001 : Yout = 8b0000_00
12、10 ;3b010 : Yout = 8b0000_0100 ;3b011 : Yout = 8b0000_1000 ;3b100 : Yout = 8b0001_0000 ;3b101 : Yout = 8b0010_0000 ;3b110 : Yout = 8b0100_0000 ;3b111 : Yout = 8b1000_0000 ;default : Yout = 8b0000_0000 ;endcaseendendmodule2.2.3優先編碼器/*FilenameAuthor:Prio-encoder.vVerilog_gruopDescriptionRevisionExampl
13、e of a Priority Encoder.2000/02/292001/02/28版權所有,侵權必究第 8頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號Company:Verilog_group*/module PRIO_ENCODER (Cin,Din,Ein,Fin,Sin,Pout);inputinputoutputregCin,Din,Ein,Fin;/ input signals1:0Pout;Sin;/input select control/output select resultPout;/ Pout assignmentalways (Sin or
14、Cin or Din or Ein or Fin)beginif (Sin = 2b00)Pout= Cin;else if (Sin = 2b01)Pout = Din;else if (Sin = 2b10)Pout = Ein;elsePout = Fin;endendmodule以上代碼實現的功能如下圖:FinEinDinPoutCinSin=10Sin=01Sin=001 使用if 的優先譯碼器2.3計數器/*FilenameAuthor:count_en.vVerilog_gruop2001/02/28版權所有,侵權必究第 9頁,共 56頁 絕密Verilog基本電路設計指導書請輸
15、入文檔編號Description:Example of a counter with enable.RevisionCompany2000/02/29Verilog_group*/module COUNT_EN (En,Clock,Reset,Out);parameterparameterinputWidth=8 ;U_DLY =1;Clock , Reset , En ;Out ;outputWidth-1:0regWidth-1:0Out ;always(posedge Clock or negedge Reset)if (!Reset)Out= 8b0 ;else if (En)Out
16、B ;= A = B ;Q2Q32001/02/28版權所有,侵權必究第 11頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號if (A = B)Q4= 1 ;= 0 ;elseQ4endendmodule2.6移位操作/*FilenameAuthor:shifter.vVerilog_gruopExample of a shifter2000/02/29DescriptionRevisionCompanyVerilog_group*/module SHIFT (Data ,Q1, Q2) ;input3:03:0Data ;outputQ1,Q2 ;parameterB =
17、 2 ;reg3:0Q1, Q2 ;always(Data)beginQ1= Data B ;Q2endendmodule2.7時序器件一個時序器件(指觸發器或鎖存器)就是一個一位存儲器。鎖存器是電平敏感存儲器件,觸發器是沿觸發存儲器件。觸發器也被稱為寄存器,在程序中體現為對上升沿或下降沿的探測,VERILOG中采用如下方法表示:2001/02/28版權所有,侵權必究第 12頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號(posedge Clk)- 上升沿-下降沿(negedgeClk)下面給出各種不同類型觸發器的描述。2.7.1上升沿觸發的觸發器實現了一個 D觸發器。/*
18、FilenameAuthor:dff.vVerilog_gruopDescriptionRevisionCompanyExample of a Rising Edge Flip-Flop.2000/03/30Verilog_group*/module DFF (Data, Clk, Q);inputData, Clk;Q;outputregQ;always (posedge Clk)Q= Data;endmodule功能如下圖:DataClkDQQCK1 D 觸發器2.7.2 帶異步復位、上升沿觸發的觸發器/*FilenameAuthor:dff_async_rst.vVerilog_gruo
19、pDescriptionExample of a Rising Edge Flip-Flop with Asynchronous Reset.2001/02/28版權所有,侵權必究第 13頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號Revision:2000/03/30CompanyVerilog_group*/module DFF_ASYNC_RST (Data, Clk, Reset, Q);inputData, Clk, Reset;Q;outputparameterU_DLY =1;reg Q;always (posedge Clk or negedge Rese
20、t)if ( Reset)Q= #U_DLY 1b0 ;elseQ= #U_DLY Data ;endmudule功能如下圖:DataDQQCKRClkReset1 帶異步復位D 觸發器2.7.3帶異步置位、上升沿觸發的觸發器/*FilenameAuthor:dff_async_pre.vVerilog_gruopDescriptionRevisionCompanyExample of a Rising Edge Flip-Flop with Asynchronous Preset.2000/03/30Verilog_group*/module DFF_ASYNC_PRE (Data, Clk
21、, Preset, Q);inputData, Clk, Preset;2001/02/28版權所有,侵權必究第 14頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號outputQ;parameterreg Q;U_DLY =1;always (posedge Clk or negedge Preset)if ( Preset)Q= #U_DLY 1b1 ;elseQ= #U_DLY Data ;endmudule功能如下圖:PresetDataD PCKQQClk1 帶異步置位D 觸發器2.7.4帶異步復位和置位、上升沿觸發的觸發器/*FilenameAuthor:dff_
22、async.vVerilog_gruopDescriptionExample of a Rising Edge Flip-Flopwith Asynchronous Reset and Preset.RevisionCompany:2000/03/30Verilog_group*/module DFF_ASYNC (Data, Clk, Reset, Preset, Q);inputData, Clk, Reset, Preset ;outputparameterregQ;U_DLY = 1;Q;always (posedge Clk or negedge Reset or negedge P
23、reset)2001/02/28版權所有,侵權必究第 15頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號if ( Reset)Q= 1b0 ;else if ( preset )Q= 1b1;elseQ= #U_DLY Data ;endmudule功能如下圖:PresetDataD PCKQQClkRReset1 帶異步置位、復位D 觸發器2.7.5帶同步復位、上升沿觸發的觸發器/*FilenameAuthor:dff_sync_rst.vVerilog_gruopDescriptionRevisionCompanyExample of a Rising Edge Fli
24、p-Flop with Synchronous Reset.2000/03/30Verilog_group*/module DFF_SYNC_RST (Data, Clk, Reset, Q);inputData, Clk, Reset;outputparameterregQ;U_DLY = 1;Q;always (posedge Clk )if ( Reset)Q= #U_DLY 1b0 ;= #U_DLY Data ;elseQendmudule2001/02/28版權所有,侵權必究第 16頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號功能如下圖:Reset0DQQDa
25、taClkCK1 帶同步復位D 觸發器2.7.6帶同步置位、上升沿觸發的觸發器/*FilenameAuthor:dff_sync_pre.vVerilog_gruopDescriptionRevisionCompanyExample of a Rising Edge Flip-Flop with Synchronous Preset.2000/03/30Verilog_group*/module DFF_SYNC_PRE (Data, Clk, Preset, Q);inputData, Clk, Preset;outputparameterregQ;U_DLY = 1;Q;always (p
26、osedge Clk )if ( Preset)Q= #U_DLY 1b1 ;= #U_DLY Data ;elseQendmudule功能如下圖:2001/02/28版權所有,侵權必究第 17頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號1 帶同步置位的D 觸發器2.7.7帶異步復位和時鐘使能、上升沿觸發的觸發器/*Filename:dff_ck_en.vPreset1DQQDataClkCKAuthor:Verilog_gruopDescriptionExample of a Rising Edge Flip-Flop with Asynchronous Resetan
27、d Clock Enable.RevisionCompany:2000/03/30Verilog_group*/module DFF_CK_EN (Data, Clk, Reset, En, Q);inputData, Clk, Reset, En;outputparameterregQ;U_DLY = 1;Q;always (posedge Clk or negedge Reset)if ( Reset)Qelse if (En)Q= 1b0 ;= #U_DLY Data ;endmudule功能如下圖:2001/02/28版權所有,侵權必究第 18頁,共 56頁 絕密Verilog基本電路
28、設計指導書請輸入文檔編號1 帶異步復位、使能端的D 觸發器2.7.8D-Latch(鎖存器)鎖存器是電平敏感器件,在 ASIC設計中,鎖存器會帶來諸多問題,如額外時延、DFT問題,因此,在實際設計中必須盡量避免鎖存器的出現。DataEnQDEQClkCKRResetmodule d_latch (enable,data,y);input enable ;input data;output y;reg y;always (enable or data)if (enable )y = data;endmodule功能如下圖:dataenableD QTy1 D-Latch2.8ALU/*Filen
29、ameAuthor:alu.vVerilog_gruopDescriptionExample of a 4-bit Carry Look Ahead ALU2001/02/28版權所有,侵權必究第 19頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號Revision:2000/02/29CompanyVerilog_group*/module ALU(A, B, Cin, Sum, Cout, Operate, Mode);/input signalsinputinputinputinputoutputoutput3:03:03:0A, B;Cin;/ two operand
30、s of ALU/carry in at the LSBOperate;Mode;Sum;/determine f(.) of sum = f(a, b)/arithmetic(mode = 1b1) or logic operation(mode = 1b0)/result of ALUCout;/carry produced by ALU operation/ carry generation bits and propogation bits.wire3:0G, P;C;/ carry bits;reg2:0/ function for carry generation:function
31、 geninputinputA, B;Oper;1:0begincase(Oper)2b00: gen = A;2b01: gen = A & B;2b10: gen = A & (B);2b11: gen = 1b0;endcase;endendfunction2001/02/28版權所有,侵權必究第 20頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號/ function for carry propergation:function propinputinputA, B;Oper;1:0begincase(Oper)2b00: prop = 1;2b01: prop =
32、 A | (B);2b10: prop = A | B;2b11: prop = A;endcase;endendfunction/ producing carry generation bits;assign G0 = gen(A0, B0, Oper1:0);assign G1 = gen(A1, B1, Oper1:0);assign G2 = gen(A2, B2, Oper1:0);assign G3 = gen(A3, B3, Oper1:0);/ producing carry propogation bits;assign P0 = por(A0, B0, Oper3:2);a
33、ssign P1 = por(A1, B1, Oper3:2);assign P2 = por(A2, B2, Oper3:2);assign P3 = por(A3, B3, Oper3:2);/ producing carry bits with carry-look-ahead;always (G or P or Cin, Mode)beginif (Mode) beginC0 = G0 | P0 & Cin;C1 = G1 | P1 & G0 | P1 & P0 & Cin;2001/02/28版權所有,侵權必究第 21頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號
34、C2 = G2 | P2 & G1 | P2 & P1 & G0 | P2 & P1 & P0 & Cin;Cout = G3 | P3 & G2 | P3 & P2 & G1 | P3 & P2 & P1 & G0 | P3 &P2 & P1 & P0 & Cin;endelse beginC0 = 1b0;C1 = 1b0;C2 = 1b0;Cout = 1b0;endend/ calculate the operation results;assign Sum0 = (G0 & P0) Cin;assign Sum1 = (G1 & P1) C0;assign Sum2 = (G2 &
35、P2) C1;assign Sum3 = (G3 & P3) C2;endmodule2.9有限狀態機(FSM)的設計2.9.1概述有限狀態機(FSM)是一種常見的電路,由時序電路和組合電路組成。設計有限狀態機的第一步是確定采用 Moore狀態機還是采用 Mealy狀態機。(Mealy型:狀態的轉變不僅和當前狀態有關,而且跟各輸入信號有關;Moore型:狀態的轉變只和當前狀態有關)。從實現電路功能來講,任何一種都可以實現同樣的功能。但他們的輸出時序不同,所以,在選擇使用那種狀態機時要根據具體情況而定,在此,把他們的主要區別介紹一下:1. Moore狀態機:在時鐘脈沖的有限個門延時之后,輸出達到
36、穩定。輸出會在一個完整的時鐘周期內保持穩定值,即使在該時鐘內輸入信號變化了,輸出信號也不會變化。輸入對輸出的影響要到下一個時鐘周期才能反映出來。把輸入和輸出分開,是 Moore狀態機的重要特征。2. Mealy狀態機:由于輸出直接受輸入影響,而輸入可以在時鐘周期的任一時刻變化,這就使得輸出狀態比 Moore狀態機的輸出狀態提前一個周期到達。輸入信號的噪聲可能會出現在輸出信號上。3.對同一電路,使用 Moore狀態機設計可能會比使用 Mealy狀態機多出一些狀態。2001/02/28版權所有,侵權必究第 22頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號根據他們的特征和要設計
37、的電路的具體情況,就可以確定使用那種狀態機來實現功能。一旦確定狀態機,接下來就要構造狀態轉換圖。現在還沒有一個成熟的系統化狀態圖構造算法,所以,對于實現同一功能,可以構造出不同的狀態轉換圖。但一定要遵循結構化設計。在構造電路的狀態轉換圖時,使用互補原則可以幫助我們檢查設計過程中是否出現了錯誤?;パa原則是指離開狀態圖節點的所有支路的條件必須是互補的。同一節點的任何 2個或多個支路的條件不能同時為真。同時為真是我們設計不允許的。在檢查無冗余狀態和錯誤條件后,就可以開始用 verilog HDL來設計電路了。Curr_stNext_st Next_stLogicCombiLogicCurr_stLo
38、gicResetClockCombi &syncLogic1 狀態機電路邏輯圖在設計的過程中要注意以下方面:1.full_case spec定義完全狀態,即使有的狀態可能在電路中不會出現。目的是避免綜合出不希望的Latch,因為Latch可能會帶來:a. 額外的延時;b. 異步Timing問題always (Curr_st)begincase(Curr_st)ST0 : Next_st = ST1;ST1 : Next_st = ST2;ST2 : Next_st = ST0;endcaseend2001/02/28版權所有,侵權必究第 23頁,共 56頁 絕密Verilog基本電路設計指導書
39、請輸入文檔編號1 沒有采用full-casealways (Curr_st)begincase(Curr_st)/synthesis full_caseST0 : Next_st = ST1;ST1 : Next_st = ST2;ST2 : Next_st = ST0;default : Next_st = ST0;Curr_stQDNext_stDQendcaseendCurr_stDDNext_st1 采用full-case2. parallel_case spec確保不同時出現多種狀態case(En3, En2, En1)3b?1 : Out = In1;2001/02/28版權所有,侵權必究第 24頁,共 56頁 絕密Verilog基本電路設計指導書請輸入文檔編號3b?1? : Out = In2;3b1? : Out = In3;endcaseEn1In1En2In2OutEn3In31 沒采用parallel-casecase(En3, En2, En1)3b?1 : Out = In1;3b?1? : Out = In2;3b1? : Out = In3;endcase/synthesis parallel_caseEn1In1E
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學低年級學生良好生活習慣養成與學校心理健康教育創新實踐研究論文
- 中國醫藥級氧化鎂行業市場前景預測及投資價值評估分析報告
- 節水措施與管理制度
- 關于房屋貸款保證保險合同糾紛的若干法律問題探討
- 視頻監控升級改造設計方案
- 建筑施工特種作業-建筑焊工真題庫-7
- 入學面試常識題目及答案
- 2023-2024學年陜西省漢中市高二下學期7月期末數學試題(解析版)
- 2024-2025學年山西省太原市高二上學期期末考試語文試題(解析版)
- 2025年秋三年級上冊語文同步教案 習作:寫日記
- 基于TMS320VC5402的電能質量監測系統設計
- 《論語》十二章對比閱讀復習精講精練含答案
- 成都市青羊區2023年數學四下期末教學質量檢測試題含解析
- 電子物證專業考試復習題庫(含答案)
- 國家開放大學02150-計算機網絡(本)期末復習題及參考答案
- 廣西2022年廣西農村信用社(農村商業銀行農村合作銀行)管理人員及業務骨干招聘考試參考題庫含答案詳解
- 國開2023年春《理工英語3》機考網考期末復習資料參考答案
- 重慶.住宅物業單位服務等級標準
- 全國工會財務知識競賽題庫附答案
- CIE-15-2004-Colorimetry原版完整文件
- 四年級下聰明小屋
評論
0/150
提交評論