




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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、的电路的具体情况,就可以确定使用那种状态机来实现功能。一旦确定状态机,接下来就要构造状态转换图。现在还没有一个成熟的系统化状态图构造算法,所以,对于实现同一功能,可以构造出不同的状态转换图。但一定要遵循结构化设计。在构造电路的状态转换图时,使用互补原则可以帮助我们检查设计过程中是否出现了错误。互补原则是指离开状态图节点的所有支路的条件必须是互补的。同一节点的任何 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年人力资源管理师考试重点及模拟题集
- 五数打电话教学课件
- 2025年酒店管理中级职称考试预测题及备考攻略版
- 2025年特岗教师招聘备考策略初中语文专业知识重点复习方向解析
- 电剪安全知识培训总结课件
- 电冰箱的清洗与维护
- 2025年求职面试全攻略手册各行业模拟题集与答案详解
- 2025年电子商务运营实操模拟题及解析
- 产教融合教学课件模板
- 2025年特岗教师招聘考试初中语文考试题型分析
- 手持电动工具培训
- 医疗康养项目运营方案
- 公司合资成立方案
- 企业环境安全健康EHS培训课件
- SES N 3293 试验测试标准
- 建筑施工重要环境因素清单控制清单
- CPK数据图表生成器
- 割草机 打草机 割灌机正确使用方法
- 医保异地备案个人承诺书
- 新教师入职培训-如何上好高中化学课
- 小学道法一 最广泛、最真实、最管用的民主课件
评论
0/150
提交评论