《Lecture1VerilogHDL简介-v.ppt》由会员分享,可在线阅读,更多相关《Lecture1VerilogHDL简介-v.ppt(21页珍藏版)》请在三一办公上搜索。
1、Verilog HDL语言,华中科技大学计算机科学与技术学院,主讲:胡迪青Email:QQ:121374333,2,教材与参考书籍,教材:A Verilog HDL Primer,Third Edition(Verilog HDL入门,第3版),(美)巴斯克著,夏宇闻、甘伟译,北京航空航天大学出版社,2008参考书:EDA技术实用教程 Verilog版(第四版),潘松、黄继业,科学出版社,2010,3,课程目标,通过课程的学习,使学生掌握Verilog HDL硬件描述语言的语法知识和程序结构;掌握应用EDA工具进行Verilog程序设计和开发的基本流程和方法;建立Verilog硬件设计的基本概
2、念,会使用Verilog语言描述、设计简单的数字电路。,4,与其它课程的关系,先修课程C语言同步课程数字逻辑电路后续课程计算机组成原理计算机系统结构接口技术,5,教学安排,课程总学时:24学时讲课(8学时)Verilog HDL简介(1学时)Verilog语言基础(2学时)Verilog程序设计方法(2学时)EDA工具及其设计流程(1学时)简单数字电路设计(2学时),6,实验安排,实验(16学时)EDA工具的使用及设计流程(4学时)Verilog语言基础实验(4学时)简单数字电路设计与仿真(4学时)综合应用设计与仿真实验(4学时),7,考试安排,课程实验 40%课程考试 60%,8,硬件描述语
3、言概述,硬件描述语言(Hardware Description Language,HDL)是硬件设计人员和电子设计自动化(EDA)工具之间的界面。主要目的是用来编写设计文件,建立电子系统的仿真模型。通过仿真,然后再自动综合以生成符合要求且在电路结构上可以实现的数字逻辑网表(Netlist)。根据网表和某种工艺的器件自动生成具体电路,然后生成该工艺条件下这种具体电路的延时模型。仿真验证无误后,用于制造ASIC芯片或写入CPLD和FPGA等可编程器件中。,9,为何要学习和使用HDL语言电路设计将继续保持向大规模和高复杂度发展的趋势,工程人员将不得不使用HDL进行设计,而把具体实现留给逻辑综合工具去
4、完成。电子领域的竞争越来越激烈,有效的HDL语言和计算机仿真系统在将设计错误的数目减少到最低限方面起到不可估量的作用,从而提高设计的效率、降低设计成本、缩短设计周期。用HDL进行设计,只需要对描述语言进行修改,这比更改电路原理图要容易实现得多,使得探索各种设计方案变成一件很容易、很便利的事情。,10,HDL语言的发展历史,HDL于1982年由Iverson提出。随后,许多高等学校、科研单位、大型计算机厂商都相继推出了各自的HDL。最终成为IEEE技术标准的仅有两个,即VHDL和Verilog HDL。,11,VHDL的英文全名是Very-High-Speed Integrated Circui
5、t Hardware Description Language,诞生于1982年。目前有IEEE-1076(简称87版),IEEE-1076-1993(简称93版)和IEEE-1076-2008(简称2008版)三个版本。VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。,12,Verilog HDL由GDA(Gateway Design Automation)公司的PhilMoorby在1983年首创。最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年
6、Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得Verilog HDL迅速得到推广应用。1987年Synonsys公司开始使用Verilog行为语言作为它综合工具的输入。19831987年的Verilog HDL可以描述硬件和测试激励的行为结构。Verilog-XL较快,特别在门级。Verilog-XL仿真器是解释型的,便于设计者交互地调试硬件描述,便于发现设计中出现的问题。,13,1989年Cadence公司收购了GDA公司,使得Verilog HDL成为了该公司的独家专利。1990年初Cadence公司把Verilog HDL和Verilog-XL分成单
7、独产品,发布了Verilog HDL,与VHDL竞争。并成立Open Verilog International(OVI)组织,OVI由Verilog HDL的使用者和CAE供应商组成,以促进Verilog HDL成为IEEE标准。1993年,几乎所有ASIC厂商支持Verilog HDL,认为Verilog-XL是最好的仿真器。同年OVI推出2.0版本的Verilog HDL规范,IEEE接收将OVI的Verilog2.0作为IEEE标准的提案。1995年12月,定出Verilog HDL的标准IEEE 1364-1995。,14,Verilog HDL 简介,Verilog HDL是一种硬
8、件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。Verilog HDL语言具有下述描述能力:设计的行为特性设计的数据流特性设计的结构组成包含响应监控和设计验证方面的时延和波形产生机制。Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。,15,Verilog HDL硬件描述语言的主要能力:基本逻辑门,例如and、or和nand等都内置在语言中。用户定义原语(UDP)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。开关级基本结构模型,例如pmos和
9、nmos等也被内置在语言中。提供显式语言结构指定设计中端口到端口的时延及路径时延和设计的时序检查。可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式使用过程化结构建模;数据流方式使用连续赋值语句方式建模;结构化方式使用门和模块实例语句描述建模。,16,Verilog HDL硬件描述语言的主要能力(续):Verilog HDL中有两类数据类型:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。能够描述层次设计,可使用模块实例结构描述任何层次。设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。Verilog HDL不再是某
10、些公司的专有语言而是IEEE标准。人和机器都可以阅读Verilog语言,因此它可以作为EDA的工具和设计者之间的交互语言。,17,Verilog HDL硬件描述语言的主要能力(续):Verilog HDL语言的描述能力能够通过使用编程语言接口(PLI)机制进一步扩展。PLI是允许外部函数访问Verilog模块内信息、允许设计者与模拟器交互的例程集合。设计能够在多个层次上加以描述,从开关级、门级、寄存器传输级(RTL)到算法级,包括进程和队列级。能够使用内置开关级原语在开关级对设计完整建模。同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。Verilog HDL能够监控模拟验
11、证的执行,即模拟验证执行过程中设计的值能够被监控和显示。,18,Verilog HDL硬件描述语言的主要能力(续):在行为级描述中,Verilog HDL不仅能够在RTL级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述。能够使用门和模块实例化语句在结构级进行结构描述。Verilog HDL还具有内置逻辑函数,例如&(按位与)和|(按位或)。对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。可以显式地对并发和定时进行建模。提供强有力的文件读写能力。语言在特定情况下是非确定的,即在不同的模拟器上模型可以产生不同的结果;例如,事件队列上的事件顺序在标准中没
12、有定义。,Comments in Verilog,Commenting is important In industry many other poor schmucks are going to read your codeSome poor schmuck(perhaps you 4 years later)are going to have to reference your code when a customer discovers a bug.,The best comments document why you are doing what you are doing,not w
13、hat you are doing.Any moron who knows verilog can tell what the code is doing.Comment why(motivation/thought process)you are doing that thing.,Slide taken direct from Eric Hoffman,Commenting in Verilog,always(posedge clk)begin Sig_FF1=Sig/Capture value of Sig Line in FF Sig_FF2=Sig_FF1;/Flop Sig_FF1
14、 to form Sig_FF2 Sig_FF3=Sig_FF2;/Flow Sig_FF2 to form Sig_FF3end/start_bit is Sig_FF2,(Read with sarcasm)“Thanks for the commenting the code pal.It tells me so much more than the verilog itself”.,Slide taken direct from Eric Hoffman,Commenting in Verilog,always(posedge clk)/*Sig is ansynchronous an
15、d has to be double flopped*for meta-stability reasons prior to use*/begin Sig_FF1=Sig;Sig_FF2=Sig_FF1;/double flopped meta-stability free Sig_FF3=Sig_FF2;/flop again for use in edge detectionend/*Start bit in protocol initiated by falling edge of Sig line*/assign start_bit=(Sig_FF2,This is better commenting.It tells you why stuff was done,Can see 2 typesof comments.Comment to end of line is/Multi line comment starts with/*and ends with*/,Slide taken direct from Eric Hoffman,
链接地址:https://www.31ppt.com/p-6510841.html