复习资料:VHDL(大题).ppt_第1页
复习资料:VHDL(大题).ppt_第2页
复习资料:VHDL(大题).ppt_第3页
复习资料:VHDL(大题).ppt_第4页
复习资料:VHDL(大题).ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.硬件描述语言(HDL):是一种能够描述硬件电路的功能、信号连接关系和时序关系的语言。目前,VHDL和Verilog HDL已相继成为IEEE标准的硬件描述语言。2.硬件描述语言VHDL:VHDL的英文全称是VHSIC(超高速集成电路)硬件描述语言,即超高速集成电路硬件描述语言。3、库用于存储编译后的实体、结构、程序包集和配置,VHDL程序的基本结构,实体部分描述设计系统的外部接口信号(即输入/输出信号),结构部分描述系统的内部电路,配置用于从库中选择所需的组件并将其安装到设计单元的实体中,程序包集存储数据类型、常数、子程序等。这可以被所有设计模块共享,4、标识符规则是用VHDL语言编写符号

2、的一般规则。它不仅是电子系统设计工程师的一个约束条件,也为各种电子设计自动化工具提供了一个标准的编写标准,使得综合仿真过程中的仿真变得简单而又清晰。VHDL有两个标准版本:VHDL87和VHDL93。在扩展了VHDL87的标识符语法规则后,形成了VHDL93的标识符语法规则。前一部分称为短标识符,而扩展部分称为扩展标识符。VHDL93包含两部分:短标识符和扩展标识符。标识符,5,短标识符规则:短标识符由字母、数字和下划线字符组成,并具有以下特征:第一个字符必须是字母;最后一个字符不能是下划线;不允许两个连续的下划线;大写字母和小写字母在标识符中是等价的。VHDL中的注释文本总是两条连续的连接线

3、“-”,可以出现在任何语句之后,也可以出现在一个独立的行中;VHDL的保留字(关键字)不能用于标识符;6,下列标识符是非法的:_ tx _ clk8b10b大# numberlink _ _ barselect rx _ clk _例如,下列标识符是合法的:tx _ clk three _ state _ enablesel 7 dhit _ 1124,-标识符必须以字母开头,-它只能是字母、数字和下划线。-它不能有两个连续的下划线。-关键字(保留字)不能用于标识符。-最后一个字符不能是下划线。7.扩展标识符规则:扩展标识符是在VHDL93中添加的标识符写入规则:(1)扩展标识符由反斜杠分隔。

4、例如,多屏幕、eda _ centrol等等是合法的扩展标识符。(2)允许包含图形符号和空间符号。例如:模式A,100美元,p %名称等。(3)反斜杠之间的字符可以保留。示例:缓冲区、实体、结尾等。(4)扩展标识符的分隔符可以以两个斜线之间的数字开始。比如:100美元,2个筹码,4个屏幕,等等。(5)在扩展标识符中允许连接多个下划线。例如四屏、双屏等。(6)扩展标识符区分大小写。例如, eda不同于eda。(7)扩展标识符不同于短标识符。例如,计算机不同于计算机。信号和变量的主要区别如下:1 .变量是一个局部量,只能在过程或子程序中使用;信号是一个全局量,可用于进程之间的通信。2.变量赋值立即

5、生效,并且没有延迟行为;信号的分配不是立即的,信号之间的传输是延迟的。4.信号分配可以出现在流程中,也可以直接出现在结构中,但它们的运行含义不同:前者属于顺序信号分配,此时的分配操作取决于流程是否已经启动;后者属于并行信号分配,其分配操作独立并行进行。3。该变量在流程中用作临时数据的单位;信号在电路中用作信号连接。过程中变量和信号的赋值形式不同于操作过程:在变量赋值语句中,语句一旦执行,其值就被立即赋值给变量。当执行下一条语句时,该变量的值是前一句的新赋值。在信号赋值语句中,即使语句被执行,它的值也不会导致信号被立即替换,当n直到过程结束,所有信号分配的实际替换被顺序处理。因此,实际的替换过程

6、和赋值语句的执行是分开进行的。如示例a所示.10,示例A信号和变量值替换之间的差异示例过程(A,b,c,d)开始d=A;x=b d;d=c;y=b d;结束过程;结果:X=B=C;y=b c;PROCESS (a,b,c) VARIABLE d:std_logic_vector(3下降到0);BEgin d:=a;x=b d;d:=c;y=b d;结束过程;结果:X=B=A;y=b c;当进程运行时,信号分配将按从上到下的顺序执行,但第一次分配不会发生,因为信号分配只会在进程结束时生效。因为当进程完成更新时,D的最后一个赋值是C,所以执行结果是这个公式。11,标准数据类型,12,标准逻辑类型和

7、标准逻辑向量类型,在标准逻辑1164包中定义。(VHDL93标准)STD_LOGIC数据可以有九个值,它们具有以下含义:U:初始值X:不确定状态0:强制0 1:强制1 Z:高阻抗状态W:弱信号不确定状态L:弱信号0 H:弱信号1 _:不可能的情况(可忽略的值),其中“X”便于系统模拟,“Z”便于双向总线,13、STD_LOGIC_VECTOR类型定义如下:STD _ logic _ vector类型是STD_LOGIC的数组(自然范围);14,顺序语句,信号替换语句,变量赋值语句,等待语句,如果语句,循环语句,下一个语句,退出语句,返回语句,空语句,顺序语句在进程或子程序中用来定义进程或子程序

8、的行为。顺序语句每个语句的执行(模拟执行)都是按照语句的排列顺序进行的。15,示例a设计多路复用器实体mux 4 _ 1 is port(d : instd _ logic _ vector(3下降到0);sel : INSTD _ LOGIC _ VECTOR(1 DONTO 0);y :输出标准_逻辑);结束mux 4 _ 1;mux4 _ 1的结构rtl是开始过程(d,sel)开始如果(sel=00)那么y=d(0);ELSIF (sel=01),然后y=d(1);ELSIF (sel=10),然后y=d(2);ELSE y=d(3);结束中频;结束过程;结束RTL;顺序语句,16,并行

9、语句,并发语句主要包括:process语句BLOCK语句并发替换语句条件替换语句选择信号语句ASSERT语句COMPONENT语句GENERATE语句,17,条件信号替换语句条件信号替换语句也是并发描述语句。条件信号赋值语句的格式为:目标信号=表达式1当条件1否则表达式2当条件2否则表达式n;并发描述语句,18,示例a: 4选择多路复用器实体wmux4 _ 1 isport (i0,i1,I2,i3,a,b: instd _ logicq : OUTTD _ LOGIC);结束wmu x4 _ 1;wmux4_1信号选择:标准_逻辑_矢量(1下降到0)的rtl结构;BEGIN sel=b,并发

10、描述语句,19。PROCESS语句的要点:PROCESS语句结构由三个关键部分组成,即过程描述语句部分、序列描述语句部分和敏感信号参数表(可能有多个敏感信号)。(2)虽然过程语句结构括号内的内容,如“过程标签”和“敏感信号表”,可以省略,但一般至少应标记一个敏感信号。这是因为当流程中定义的任何敏感信号发生变化时,流程会立即“启动”,即流程中的顺序语句按顺序执行一次,当流程中的最后一条语句被执行时,执行流程会返回到第一条语句,等待下一个敏感信号发生变化,这样就没有尽头了。否则,如果敏感信号未被标记,除了在初始化阶段,该过程将永远不会被再次激活。20,(3)过程描述语句主要定义一些局部变量,包括数

11、据类型、常量、属性、子程序等。然而,应该注意的是,不允许在过程描述语句中定义信号。(4)在过程中,敏感信号表只能列出信号,而敏感信号表不能列出变量,即过程只对信号敏感,对变量不敏感。(5)通过敏感信号表中敏感信号的变化激活过程启动,但是敏感信号表的功能可以被WAIT语句(具有四种写入格式)代替。,21,WAIT语句,WAIT语句有以下四种形式:WAIT -无限等待等待开启敏感信号表;-敏感信号量改变,进程开始等待直到条件表达式;-表达式建立后,该过程开始等待时间表达式;-时间到了,过程开始。WAIT语句是进程(包括进程)的同步语句,也是进程的起点。在进程(或过程)中,当WAIT语句被执行时,正

12、在运行的程序将被挂起,直到满足该语句的终止挂起条件,并且进程(或过程)中的程序将被重新启动。作为流程主体中的一条语句,WAIT与流程主体中的其他语句按顺序执行。则不会设置暂停条件,表示它始终处于暂停状态,即无限期等待。2。敏感信号等待语句,即一旦敏感信号发生变化,它将结束暂停并重新开始该过程。VHDL规定在列出敏感信号表的过程中不能使用任何形式的WAIT语句。通常,WAIT语句可以在流程中的任何地方使用。3。条件等待语句。此语句挂起的进程需要满足以下两个条件才能结束挂起状态并重新启动:条件表达式中包含的信号已更改;信号改变后,它满足WAIT语句设置的条件。这两个条件都是必不可少的,必须按上述顺

13、序完成。4。超时等待语句(此语句无法合成,因此不再讨论)。例1:用等待语句设计与非门电路。南德克斯:过程开始y=a与非b;等候a,b;END PROCESS nandx,顺序语句,22,并发描述语句,3.2.9 COMPONENT语句。组件实例化语句使我们能够使用最初设计的VHDL功能模块作为其他VHDL文件中的组件。COMPONENT description语句的编写格式是:COMPONENT COMPONENT name GENERIC description;端口描述;END COMPONENT组件实例化语句的格式为:label:组件名称GENERIC MAP(参数),label:组件名

14、称PORT MAP(连接端口),组件实例化:它引入了一种连接关系,将预先设计好的设计实体定义为一个组件,然后使用特定的语句将这个组件与当前设计实体中指定的端口连接起来,从而为当前设计实体引入了一个新的更低层次的设计级别。组件实例化是使VHDL设计实体构成自顶向下的分层设计的重要途径。组件实例化可以是多级的。23,示例1:半加法器实体h _ adder是端口(a,b: instd _ logics,c : OUTSTD _ LOGIC);结束h _加法器;加法器的结构rtl开始于c=a和b;s=异或b;结束RTL;示例2:全加器,并发描述语句,24,示例2:全加器实体f _ adder是端口(a

15、,b,ci : instd _ logics,co : OUTTD _ LOGIC);结束f _加法器;f _加法器的结构弧是组件h _加法器端口(a,b: INSTD _ LOGICs,c : OUTSTD _ LOGIC);END COMPONENT信号s1,c1,c2:STD _ LOGICBEGIN u1:h _加法器端口映射(a,b,s1,C1);u2:h _加法器端口映射(s1,c1,s,C2);co=c1或C2;结束弧;并发描述语句,25。从设计方法论的角度来看,数字系统设计方法可以分为自顶向下和自底向上。从自上而下的角度来看,设计过程是分层的。在每一个层次上,都有四种类型的工作:描述、划分、综合和验证。我们将接近概念设计的层次定义为抽象层次较高的层次。而接近物理实现的级别被定义为较低的级别。显然,设计者希望从高层描述开始,通过EDA工具逐步实现芯片的版图设计。这是自动化设计的理想领域,也是EDA工具高度发展的结果。由于门级芯片的设计和生产,我们积累了门级单元库;之后,在门单元库的基础上建立宏单元库(如加法器、解码器、复用器和计数器)。这

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论