您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > Verilog基本电路设计指导书(有很多例子)
绝密Verilog基本电路设计指导书请输入文档编号文档编号版本密级深圳市华为技术有限公司1.0内部公开共56页研究管理部文档中心资源类别:HDL语言Verilog基本电路设计指导书(仅供内部使用)VerilogGroup拟制:批准:批准:日期:日期:日期:2000/04/04yyyy/mm/ddyyyy/mm/dd深圳市华为技术有限公司版权所有不得复制2001/02/28版权所有,侵权必究第1页,共56页绝密Verilog基本电路设计指导书请输入文档编号修订记录日期修订版本描述作者2000/04/041.002001/02/281.01VerilogGroup初稿完成修订,主要增加三态和一些电路图苏文彪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带同步复位、上升沿触发的触发器2.7.6带同步置位、上升沿触发的触发器2.7.7带异步复位和时钟使能、上升沿触发的触发器161718202023263030313131312.7.8D-Latch(锁存器)2.8ALU2.9有限状态机(FSM)的设计2.9.1概述2.9.2One-hot编码2.9.3Binary编码2.10三态总线2.10.1三态buffer2.10.2双向I/Obuffer3常用电路设计3.1CRC校验码产生器的设计3.1.1概述3.1.2CRC校验码产生器的分析与硬件实现32333.1.3并行CRC-16校验码产生器的VerilogHDL编码3.1.4串行CRC-16校验码产生器的VerilogHDL编码3537373.2随机数产生电路设计3.2.1概述2001/02/28版权所有,侵权必究第3页,共56页绝密Verilog基本电路设计指导书请输入文档编号3.2.2伪随机序列发生器的硬件实现3.2.38位伪随机序列发生器的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基本电路设计指导书请输入文档编号Verilog基本电路设计指导书关键词:电路、摘要:本文列举了大量的基本电路的VerilogHDL代码,使初学者能够迅速熟悉基本的HDL建模;同时也列举了一些常用电路的代码,作为设计者的指导。缩略语清单:对本文所用缩略语进行说明,要求提供每个缩略语的英文全名和中文解释。参考资料清单:请在表格中罗列本文档所引用的有关参考文献名称、作者、标题、编号、发布日期和出版单位等基本信息。参考资料清单名称作者编号发布日期查阅地点或渠出版单位(若道不为本公司发布的文献,请填写此列)ActelHDLStyleNovember1997文档室Actel公司codingGuide1前言当前业界的硬件描述语言中主要有VHDL和VerilogHDL。公司根据本身ASIC设计现有的特点、现状,主推VerilogHDL语言,逐渐淡化VHDL语言,从而统一公司的ASIC/FPGA设计平台,简化流程。为使新员工在上岗培训中能迅速掌握ASIC/FPGA设计的基本技能,中研基础部ASIC设计中心开发了一系列的培训教材。该套HDL语言培训系列包括如下教程:《VerilogHDL入门教程》《VerilogHDL代码书写规范》《Verilog基本电路设计指导书》《TestBench编码技术》系列教材完成得较匆忙,本身尚有许多不完善的地方,同时,可能还需要其他知识方面的培训但没有形成培训教材,希望大家在培训过程中,多提宝贵意见,以便我们对它进行修改和完善2典型电路的设计2001/02/28版权所有,侵权必究第5页,共56页绝密Verilog基本电路设计指导书请输入文档编号在本章节中,主要讲述触发器、锁存器、多路选择器、解码器、编码器、饱和/非饱和计数器、FSM等常用基本电路的设计。如果你是初学者,我们建议你从典型电路学起,如果你已经非常熟悉电路设计,我们建议你从第3章看起。2.1全加器的设计/*********************************************************************\FilenameAuthor:::::fulladd.vVerilog_gruopExampleofaone-bitfulladd.2000/02/29DescriptionRevisionCompanyVerilog_group\*********************************************************************/moduleFULLADDR(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的多路选择器一般是并行的操作,但有些工具也可能综合成优先级的译码器除非加一些控制参数。/*********************************************************************\FilenameAuthor:::::mux.vVerilog_gruopExampleofamux4-1.2000/02/29DescriptionRevisionCompanyVerilog_group\*********************************************************************/moduleMUX(C,D,E,F,S,Mux_out);2001/02/28版权所有,侵权必究第6页,共56页绝密Verilog基本电路设计指导书请输入文档编号inputC,D,E,F;S;//inputinput[1:0]//selectcontrol//resultoutputMux_out;regMux_out;//muxalways@(CorDorEorForS)begincase(S)2'b00:Mux_out=C;2'b01:Mux_out=D;2'b10:Mux_out=E;default:Mux_out=F;endcaseendendmodule以上代码实现的功能如下所示:CDEMUXMux_outFS[1:0]1Multiplexorusingacasestatement2.2.2译码器因为译码信号之间是相关的,因此,译码器要case语句实现。/*********************************************************************\FilenameAuthor:::decode.vVerilog_gruopDescriptionExampleofa3-8decoder.2001/02/28版权所有,侵权必究第7页,共56页绝密Verilog基本电路设计指导书请输入文档编号Revision::2000/02/29CompanyVerilog_group\*********************************************************************/moduleDECODE(Ain,En,Yout);inputinputoutputEn;//enable[2:0][7:0]Ain;Yout;//inputcodereg[7:0]Yout;always@(EnorAin)beginif(!En)Yout=8'b0;elsecase(Ain)3'b000:Yout=8'b0000_0001;3'b001:Yout=8'b0000_0010;3'b010:Yout=8'b0000_0100;3'b011:Yout=8'b0000_1000;3'b100:Yout=8'b0001_0000;3'b101:Yout=8'b0010_0000;3'b110:Yout=8'b0100_0000;3'b111:Yout=8'b1000_0000;default:Yout=8'b0000_0000;endcaseendendmodule2.2.3优先编码器/********************************************************************\FilenameAuthor::::Prio-encoder.vVerilog_gruopDescriptionRevisionExampleofaPriorityEncoder.2000/02/292001/02/28版权所有,侵权必究第8页,共56页绝密Verilog基本电路设计指导书请输入文档编号Company:Verilog_group\*********************************************************************/modulePRIO_ENCODER(Cin,Din,Ein,Fin,Sin,Pout);inputinputoutputregCin,Din,Ein,Fin;//inputsignals[1:0]Pout;Sin;//inputselectcontrol//outputselectresultPout;//Poutassignmentalways@(SinorCinorDinorEinorFin)beginif(Sin==2’b00)Pout=Cin;elseif(Sin==2’b01)Pout=Din;elseif(Sin==2’b10)Pout=Ein;elsePout=Fin;endendmodule以上代码实现的功能如下图:FinEinDinPoutCinSin=10Sin=01Sin=001使用if的优先译码器2.3计数器/********************************************************************\FilenameAuthor::count_en.vVerilog_gruop2001/02/28版权所有,侵权必究第9页,共56页绝密Verilog基本电路设计指导书请输入文档编号Description:::Exampleofacounterwithenable.RevisionCompany2000/02/29Verilog_group\*********************************************************************/moduleCOUNT_EN(En,Clock,Reset,Out);parameterparameterinputWidth=8;U_DLY=1;Clock,Reset,En;Out;output[Width-1:0]reg[Width-1:0]Out;always@(posedgeClockornegedgeReset)if(!Reset)Out=8'b0;elseif(En)Out=#U_DLYOut+1;endmodule2.4算
本文标题:Verilog基本电路设计指导书(有很多例子)
链接地址:https://www.777doc.com/doc-4773505 .html