您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 硬件描述语言期末复习整理
硬件描述语言期末复习整理PPT11、EDA:ElectronicDesignAutomation现代电子设计技术的核心是EDA(ElectronicDesignAutomation)技术。EDA技术就是依靠功能强大的电子计算机,在EDA工具软件平台上完成电子系统的设计工作。2、20世纪90年代以来,微电子工艺有了惊人的发展,工艺水平已经达到了深亚微米级(通常把0.8-0.35um称为亚微米,0.25um及其以下称为深亚微米)3、用EDA技术设计电路可以分为不同的技术环节,每一个环节中必须有对应的软件包或专用的EDA工具独立处理。4、EDA工具大致可以分为设计输入编辑器、仿真器、HDL综合器、适配器(或布局布线器)以及下载器等5个模块。一般的设计输入编辑器都支持图形输入和HDL文本输入图形输入通常包括原理图输入、状态图输入和波形图输入三种常用方法。5、在EDA技术中仿真的地位非常重要,行为模型的表达、电子系统的建模、逻辑电路的验证以及门级系统的测试,每一步都离不开仿真器的模拟检测。在EDA发展的初期,快速地进行电路逻辑仿真是当时的核心问题,即使在现在,各个环节的仿真仍然是整个EDA设计流程中最重要、最耗时的一个步骤。因此,仿真器的仿真速度、仿真的准确性和易用性成为衡量仿真器的重要指标。6、硬件描述语言诞生的初衷是用于设计逻辑电路的建模和仿真HDL综合器是将硬件描述语言转化为硬件电路的重要工具。7、HDL综合器的输出文件一般是网表文件,是一种用于电路设计数据交换和交流的工业标准化格式的文件,或是直接用硬件描述语言HDL表达的标准格式的网表文件,或是对应FPGA/CPLD器件厂商的网表文件。8、电路网表(逻辑图)由元件名N、模型M、输入端信号PI、输出端信号PO四部分组成,是唯一确定电路连接关系的数据结构。即:E=(N,M,PI,PO)9、常用的编程语言C、Pascal、Fortran、Basic或汇编语言-算法研究硬件描述语言-设计和制造硬件逻辑专用电路10、实时系统不能采用通用计算机系统,自行设计非常轻便小巧的高速专用硬件系统来完成该任务。11、FPGA-用高密度的FPGA(从几万门、几十万门到几百万门)来构成完成算法所需的电路系统是一种较好的办法。FPGA是一种通用的器件,它的基本结构决定了对某一种特殊应用,性能不如专用的ASIC电路。专用集成电路-利用现成的微处理机IP核或根据某一特殊应用设计的微处理机核(也可以没有微处理机核),并结合专门设计的高速ASIC运算电路,能设计出性能价格比最高的理想数字信号处理系统。12、传统的设计方法:查用器件手册;选用合适的微处理器和电路芯片;设计面包板和线路板;调试;定型;设计复杂的系统(几十万门以上)极其困难。13、美国和中国台湾地区逻辑电路设计和制造厂家大都以VerilogHDL为主。PPT21、可编程逻辑器件(PLD)是一种能将数字系统实现在硬件电路上的设备,即能在现场规划并运行的IC电路。2、复杂可编程逻辑器件-CPLD3、可编程内部连线-为各逻辑块之间,以及逻辑块和I/O单元之间提供互连网络,实现信号连线。逻辑块-包括实现乘积项的与阵列、乘积项分配和逻辑宏单元等,用于实现各种逻辑功能。I/O单元-用于实现信号从器件输出,以及为输入信号提供输入通道。通常具有输入、输出和双向I/O模式。4、乘积项选择矩阵用来实现5个乘积项的逻辑函数,实现组合逻辑电路,或将这5个乘积项作为可编程寄存器的控制信号,实现寄存器的复位、置位、时钟输入和时钟使能等功能。5、采用共享扩展后,每个扩展乘积项都可以被LAB中的任何一个宏单元或全部宏单元使用和共享,从而可以实现更为复杂的逻辑函数。6、可编程连线阵列PIAPIA是一个可编程的布线通道,用来实现各LAB之间的连接。7、现场可编程门数组芯片的硬件基本架构,是由可编程连线围绕许多可编程逻辑块所组成的阵列,在芯片的周围还有I/O控制块围绕。可编程逻辑块是用来组合逻辑电路,可编程连线则是作为可编程逻辑块间的数据沟通管道,并且也是I/O控制块的数据传输管道。PPT31、VerilogHDL既是一种行为描述的语言,也是一种结构描述的语言。这也就是说,既可以用电路的功能描述,也可以用元器件和它们之间的连接来建立所设计电路的VerilogHDL模型。2、VerilogHDL行为描述语言作为一种结构化和过程性的语言,其语法结构非常适合于算法级和RTL级的模型设计。3、如果已经掌握C语言编程的基础,那么学习VerilogHDL并不困难。只要对VerilogHDL某些语句的特殊方面着重理解,并加强上机练习就能很好地掌握它,利用它的强大功能来设计复杂的数字逻辑电路。4、每个Verilog程序包括四个主要部分:端口定义、I/O说明、内部信号声明、功能定义。5、其它的类型包括:large型、medium型、scalared型、time型、small型、tri型、trio型、tri1型、triand型、trior型、trireg型、vectored型、wand型、wor型。这些数据类型除time型外都与基本逻辑单元建库有关,与系统设计没有很大的关系。VerilogHDL语言中也有常量和变量之分。6、在数字电路中,x代表不定值,z代表高阻值。7、下划线不可以用在位宽和进制处,只能用在具体的数字之间。当常量不说明位数时,默认值是32位-1=-32'd1=32'hFFFFFFFF??????8、用parameter来定义一个标识符代表一个常量,称为符号常量,即标识符形式的常量。parameter型数据是一种常数型的数据parameter是参数型数据的确认符,确认符后跟着一个用逗号分隔开的赋值语句表。-在每一个赋值语句的右边必须是一个常数表达式9、网络数据类型表示结构实体(例如门)之间的物理连接。网络类型的变量不能储存值,而且它必需受到驱动器(例如门或连续赋值语句,assign)的驱动。10、Verilog程序模块中输入输出信号类型缺省时自动定义为wire型。wire型信号可以用作任何方程式的输入,也可以用作“assign”语句或实例元件的输出。11、reg型数据的缺省初始值是不定值。reg型数据可以赋正值,也可以赋负值。但当一个reg型数据是一个表达式中的操作数时,它的值被当作是无符号值,即正值。例如当一个四位的寄存器用作表达式中的操作数时,如果开始寄存器被赋以值-1,则在表达式中进行运算时,其值被认为是+15。12、VerilogHDL通过对reg型变量建立数组来对存储器建模,可以描述RAM型存储器,ROM存储器和reg文件。注意:对存储器进行地址索引的表达式必须是常数表达式。13、在进行整数除法运算时,结果值要略去小数部分,只取整数部分。在进行取模运算时,结果值的符号位采用模运算式里第一个操作数的符号位。14、进行算术操作时,表达式中操作数的长度可能不一致,这时运算结果的长度由最长的操作数决定。15、无符号数存储在线网、一般寄存器和基数格式表示形式的整数中。有符号数存储在整数寄存器和十进制形式的整数中。16、逻辑运算符中&&和||的优先级别低于关系运算符,!高于算术运算符。17、如果某个操作数的值不定,则关系是模糊的,返回值是不定值。18、所有的关系运算符有着相同的优先级别。19、“==”和“!=”又称为逻辑等式运算符20、二进制数左移1位相当于乘以2,右移1位相当于除以221、进行移位运算时应注意移位前后变量的位数22、在位拼接表达式中不允许存在没有指明位数的信号。用于表示重复的表达式如上例中的4和3,必须是常数表达式23、非阻塞(Non_Blocking)赋值方式(如b=a;)块结束后才完成赋值操作阻塞(Blocking)赋值方式(如b=a;)赋值语句执行完后,块才结束24、if语句是用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。PPT51、三种形式的if语句中在if后面都有“表达式”,一般为逻辑表达式或关系表达式。系统对表达式的值进行判断,若为0,x,z,按“假”处理,若为1,按“真”处理,执行指定的语句。2、begin_end块语句限定了内嵌if语句的范围3、case括弧内的表达式称为控制表达式,case分支项中的表达式称为分支表达式。4、每一个case分项的分支表达式的值必须互不相同,否则就会出现矛盾现象(对表达式的同一个值,有多种执行方案)。5、case语句行为类似于多路选择器6、forever循环语句常用于产生周期性的波形,用来作为仿真测试信号。PPT61、Verilog语言中的任何过程模块都从属于以下四种结构的说明语句。initial说明语句always说明语句task说明语句function说明语句2、一个模块中可以有多个initial块,它们都是并行运行的。initial块常用于测试文件的编写,用来产生仿真测试信号和设置信号记录等仿真环境。3、always语句由于其不断活动执行的特性,只有和一定的时序控制结合在一起才有用。4、always的时间控制可以是沿触发也可以是电平触发的,可以单个信号也可以多个信号,中间需要用关键字or连接5、沿触发的always块常常描述时序逻辑,如果符合可综合风格要求可用综合工具自动转换为表示时序逻辑的寄存器组和门级逻辑。电平触发的always块常常用来描述组合逻辑和带锁存器的组合逻辑,如果符合可综合风格要求可转换为表示组合逻辑的门级逻辑或带锁存器的组合逻辑。一个模块中可以有多个always块,它们都是并行运行的,没有前后之分。6、任务(task)和函数(function)往往还是大的程序模块中在不同地点多次用到的相同的程序段7、任务和函数有些不同,主要的不同有以下四点:函数只能与主模块共用同一个仿真时间单位,而任务可以定义自己的仿真时间单位。函数不能启动任务,而任务能启动其它任务和函数。函数至少要有一个输入变量,而任务可以没有或有多个任何类型的变量。函数返回一个值,而任务则不返回值。8、函数的目的是通过返回一个值来响应输入信号的值。任务却能支持多种目的,能计算多个结果值,这些结果值只能通过被调用的任务的输出或总线端口送出。8、如果传给任务的变量值和任务完成后接收结果的变量已定义,就可以用一条语句启动任务,任务完成以后控制就传回启动过程。9、函数的目的是返回一个用于表达式的值。10、function中返回值的类型或范围这一项是可选项,如缺省则返回值为一位寄存器类型数据。11、函数的定义蕴含声明了与函数同名的、函数内部的寄存器。12、函数的定义不能包含有任何的时间控制语句,即任何用#、@、或wait来标识的语句。13、Verilog中的函数是不能进行递归调用的。14、display,write两个函数和系统任务的作用是用来输出信息,即将参数p2到pn按参数p1给定的格式输出。参数p1通常称为“格式控制”,参数p2至pn通常称为“输出表列”。15格式说明:由“%”和格式字符组成。PPT71、$monitoron和$monitoroff任务的作用是通过打开和关闭监控标志来控制监控任务$monitor的启动和停止,使得程序员可以很容易控制$monitor何时发生。2、在VerilogHDL程序中有两个系统任务$readmemb和$readmemh用来从文件中读取数据到存贮器中。3、在这两个系统任务中,被读取的数据文件的内容只能包含:空白位置(空格,换行,制表格(tab)等),注释行(//形式的和/*...*/形式的都允许),二进制或十六进制的数字。数字中不能包含位宽说明和格式说明,对于$readmemb系统任务,每个数字必须是二进制数字,对于$readmemh系统任务,每个数字必须是十六进制数字。数字中不定值x或X,高阻值z或Z,和下划线(_)的使用方法及代表的意义与一般VerilogHDL程序中的用法及意义是一样的。数字必须用空白位置或注释行来分隔开。4、地址指对存贮器(memory)建模的数组的寻址指针。当数据文件被读取时,每一个被读取的数字都被存放到
本文标题:硬件描述语言期末复习整理
链接地址:https://www.777doc.com/doc-5974212 .html