EDA技术与应用课件-2-VerilogHDL介绍

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

EDA技术与应用前堂回顾1.数字信号?如何表示的?2.实际电路如何实现逻辑?(CMOS工艺)3.数字电路与模拟电路什么关系?4.模拟电路怎样实现数字逻辑?重点:CMOS中如何实现Not、AND、OR基本逻辑门小问题1•什么功能?小问题2•如下功能对应的CMOS电路?Z=(D.A+B).C1.直接化简实现,需要先实现notA,notB,notc,notd2.(notZ)接not//两种方式比较?第1章VerilogHDL介绍•HDL简介•基于HDL的现代数字系统开发流程简介•HDL基本语法、数据类型、primitives•HDL简单实例(仅运用本堂课介绍的语法)•简单使用Modelsim仿真(具体用法下一堂课讲解)数字电路设计方法•原理图(英文?)主要为人工设计,设计原理图适用:设计抽象级别低;小系统;难以复用//复用(英文?)•硬件描述语言计算机辅助设计,可直接描述电路功能,由辅助软件生成最终电路适用:设计抽象级别可高可低;大系统构建;易于复用;HDL简介•HardwareDescriptionLanguage•两种流行HDL语言:VerilogHDL、VHDLVHDL:Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguageHDL功能1.描述硬件(为硬件建模),design//建模包括信号值、信号强度、延时等2.仿真验证设计,Verification近年来,设计规模越来越大,验证更显重要!//验证约占整个设计的60~70%硬件描述语言•传统的VerilogHDL/VHDL/AHDL等•新语言标准:SystemVerilog、SystemC、e、PSL、Vera、…•SystemVerilog是集大成者,综合了近年来在设计、验证领域的新技术,是设计与验证的统一语言,今后的标准语言VerilogHDL•本课程选用VerilogHDL•VerilogHDL有很强的底层建模能力,支持多层次抽象级别,仿真特性略显不足,主要是一门设计语言Verilog简要发展史•1980’sGatewayDesignAutomationdevelopedVerilog最初是仿真、建档语言,Verilog-XL仿真器的出现,使Verilog迅速普及!•1990CadenceacquiredGateway•1991CadencereleasedVerilogtothepublicdomain.OpenVerilogInternational(OVI)formedto:—EvolveandmaintainVerilog—PromotetheuseofVerilog•1995IEEEratifiedtheVerilogLRM(Std.1364)•2001IEEEupdatedtheVerilogLRM强调•不要将HDL语言理解为程序语言!虽然VerilogHDL与C语言语法有些类似,但两者的工作方式、执行方式完全不同!•HDL描述的是硬件,语言中体现硬件特点,要用硬件思想思考•HDL区别于软件编程语言:(1)timing(2)concurrency•C程序:顺序执行(跳转也是按顺序),无timing概念HDL:并行执行(concurrency)(代码段书写顺序无关),有timing概念(延时、时序)学习VerilogHDL方法•了解语法+模仿+实践•循序渐进,由浅及深//学得皮毛容易,精通难!基于HDL的现代数字电路设计流程•较粗略的流程,CAD工具大量使用本课程涉及的工具•软件:AlteraQuartusII(编辑HDL、综合、FPGA实现,IDE环境)MentorModelsim(编辑HDL、仿真)•硬件:AlteraTrexC1FPGA开发板Levelsofdesigndescription(叫法很多)•描述电路,可以采用不同的抽象级别(1)Circuitlevel/SwitchLevel/physicalMOS级别(2)GateLevel/Structural:ANDORNOT数字电路都可表达为门级电路形式(3)DataFlow/functional(一般也称为RTL寄存器传输级,RegisterTransferLevel)如C=a.b+c.d(4)BehavioralLevel接近高级语言的描述•VeriogHDL支持上述描述级别(部分是有限支持)Synthesis(综合)•高级别的电路描述不对应硬件电路!通过Synthesis工具,将电路描述转换为同功能的硬件电路实现(一般为门级)//数字电路的基本部件?•可综合语句:并非所有HDL语句都能综合!可综合子集(尚无标准,工具相关)•Synthesis算法已较为成熟,工具已广为流行,如synopsysDesignCompiler(DC),一般FPGA厂商的集成工具中也提供了Synthesis功能Simulation•仿真电路运行过程,验证电路功能•合法的HDL语句均可用于仿真•工具:MentorModelsim,CadenceIUS等•书写TestBench模块VerilogHDL语法介绍•涉及内容琐碎,自学为主,课堂简要提示最完整、全面、权威的资料:IEEEStandardVerilogLanguageReferenceManualIEEE_Std1364-1995_Verilog.pdf•与C语言类似,大小写敏感,有关键词、特定语法结构等基本模块结构如下:(强调并行执行概念!!!表现在HDL语言上:基本块书写顺序无关。Beginend语法之间的语句是顺序执行关系)基本模块结构moduletop_module_name(portlist);//强调并行性!!!/*Portdeclarations.followedbywire,reg,integer,taskandfunctiondeclarations*//*Describehardwarewithoneormorecontinuousassignments,alwaysblocks,moduleinstantiationsandgateinstantiations*///Continuousassignmentwireresult_signal_name;assignresult_signal_name=expression;//alwaysblockalways@(eventexpression)begin//Proceduralassignments//ifstatements//case,casex,andcasezstatements//while,repeatandforloops//usertaskanduserfunctioncallsend//Moduleinstantiationmodule_nameinstance_name(portlist);//Instantiationofbuilt-ingateprimitivegate_type_keyword(portlist);endmodule//仅给出相关内容的基本介绍,特殊情况查资料了解,实践中掌握//先能用,再精通•标识符:字母开头,无空格,无特殊字符等(与C语言中标识符类似,避免使用特殊符号);”\”开头,可以使用各种特殊符号如:\5-6,\ab#*等•大小写敏感!•注释符://或者/**/四值逻辑•0,1,x,z•在电路仿真中,X含义:unknownoruninitialized;Synthesis将其视为don’tcare•Z含义:高阻态(tri-statedorleftfloating)Strengths(了解即可,不要求)TSMC0.18工艺库nand2部分信息数字表达•通用格式[[size]’radix]value[[位宽]’数基]数值数基:b(binary),o(octal),d(decimal),orh(hexadecimal)数值:数基中任何合法值+“X”+“Z”//“[]”表示可选//数字之间可以加“_”增强可读性数字表达实例12unsizeddecimal(extendedto32bitswith0)'H83aunsizedhexadecimal(extendedto32bitswith0)8'b1100_00018-bitbinary64'hff0164-bithexadecimal(extendedto64bitswith0)9'O179-bitoctal32'bz01xextendedto32bitswithz3’b1010_11013-bitnumber,truncatedto3’b1016.3decimalnotation32e-4scientificnotationfor0.00324.1E3scientificnotationfor4100string$display(Thisisastringconstant);$write(Thisstringhasa\ttabandendswithanewline\n);$monitor(Thisstringformatsavalue:%b,monitored_object);datatypes(最常用的)•netdatatype(表达devices间的物理连接)wire,tri•variabledatatype(表达抽象的存储元素,如寄存器;稍后再讲)reg,integer,time,realtimenet:sel_m,sela,selb,outina,inb,sel暂时不确定GateLevelModeling•内建,“Primitives”,基本门,可直接使用and(o1,in1,in2,in3…)•注意真值表:无z输出!基本门语法一些primitive是可扩展的基本门取值Tri-statebufferprimitives了解Primitives中在输入取值X,Z时的输出!门级表达的Verilogmodule实例(更基本的是从mos构建系统,不讲)//实例讲解,加上testbench(使用系统任务),得出波形•Ports:in1,in2,out1,out2(均为1bit)•功能:out1=in1orin2,out2=in1andin2moduletop_module_name(portlist);/*Portdeclarations.followedbywire,reg,integer,taskandfunctiondeclarations*//*Describehardwarewithoneormorecontinuousassignments,alwaysblocks,moduleinstantiationsandgateinstantiations*///Continuousassignmentwireresult_signal_name;assignresult_signal_name=expression;//alwaysblockalways@(eventexpression)begin//Proceduralassignments//ifstatements//case,casex,andcasezstatements//while,repeatandforloops//usertaskanduserfunctioncallsend//Moduleinstantiationmodule_nameinstance_name(portlist);//Instantiationofbuilt-ingateprimitivegate_type_keyword(portlist);endmoduleLab1.vmoduleLab1(in1,in2,out1,out2);inputin1;inputin2;outputout1;outputout2;oror_inst(out1,in1,in2);andand_inst(o

1 / 63
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功