组合电路的VHDL设计.ppt_第1页
组合电路的VHDL设计.ppt_第2页
组合电路的VHDL设计.ppt_第3页
组合电路的VHDL设计.ppt_第4页
组合电路的VHDL设计.ppt_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

3.3 四选一多路选择器及其VHDL描述,3.3.1 四选一多路选择器及CASE语句表述方式 a、b、c、d:输入端口 s1、s0:通道选择控制信号 y: 输出端口,电路模型 时序波形图,3.3 四选一多路选择器及其VHDL描述,3.3.1 四选一多路选择器及CASE语句表述方式,3.3 四选一多路选择器及其VHDL描述,3.3.2 CASE语句 case 语句属于顺序语句,因此必须放在进程语句Process中使用。,When条件句中的所代表的的值必须在Case范围内,且数据类型匹配。 除非所有的值能完全覆盖Case语句中表达式的取值,否则必须在最末一行加上When other = ,NULL表示不作任何操作。 不能重复,3.3 四选一多路选择器及其VHDL描述,3.3.2 CASE语句 Case语句多条件选择值可以有4种不同的表达方式 单个普通值 数值选择范围 并列数值 混合方式,3.3 四选一多路选择器及其VHDL描述,3.3.2 CASE语句 下例给出了Case语句使用中几种容易发生的错误,标准逻辑矢量(std_logic_vector)类型在std_logic_1164程序包中的 定义语句如下:,3.3 四选一多路选择器及其VHDL描述,3.3.3 IEEE库预定义标准逻辑位与矢量 使用std_logic_vector可以表达电路中并列的多通道端口或节点或者总线。,B的数据类型被定义为一个具有8位位宽的矢量或总线端口信号。 A的数据类型为4位位宽总线,数据对象是信号Signal。,C的数据类型是bit位矢量数据类型,其每一个数据类型都是逻辑bit,无符号数据类型:,3.3 四选一多路选择器及其VHDL描述,3.3.4 其他预定义标准数据类型,VHDL综合工具匹配的扩展程序包中定义了一些有用的数据类型。如Synopsys公司在IEEE库中加入的程序包std_logic_arith定义了如下数据类型:,有符号数据类型:,以上数据类型在std_logic_arith程序包中的定义语句如下:,3.3 四选一多路选择器及其VHDL描述,3.3.5 信号定义和数据对象,3.3.6 并置操作符 ,数据对象有三类:信号(signal)、变量(variable)和常量(constant)。,e作为信号,它可以如同一根导线那样在整个结构体中传递信息,但存储或传递的数据类型(取值范围)只能包含在std_logic定义的元素中。,操作符s(0)=s0,3.3 四选一多路选择器及其VHDL描述,3.3.7 四选一多路选择器的VHDL不同描述方式,顺序语句,需要进程 语句process引导。,并行语句,无需进程 语句process引导。,3.3 四选一多路选择器及其VHDL描述,1. WHEN_ELSE条件信号赋值语句,语句的一般表达式:,并行赋值语句是相对于进程语句而言的,条件测试同样具有顺序性(优先级) ,下例中若p1与p2同为1,则z=a。,注意:分号只出现在最后一个表达式之后。,3.3 四选一多路选择器及其VHDL描述,2. 选择信号赋值语句,语句的一般表达式:,选择信号赋值语句在条件句中未能覆盖所有条件选择时,要求在末尾加上NULL(不做任何操作)类似涵义的关键词语句:,when_else与with_select语句的区别: 与case语句类似,with_select 语句的字句具有同期性(即即刻转向选择值符合要求所对应的赋值操作,而when_else语句需要按照书写顺序从上往下逐条测试。,3.4 全加器及其VHDL表述,3.4.1 全加器设计及例化语句应用,ain、bin、cin:分别为加数、被加数、来自低位的进位。 cout、sum:分别为向高位产生的进位、本位和。 net1、net2、net3:定义的三个内部连接线信号。 h_adder、or2a:元件名 u1、u2、u3 :例化名,3.4 全加器及其VHDL表述,3.4.1 全加器设计及例化语句应用,3.4 全加器及其VHDL表述,3.4.1 全加器设计及例化语句应用,2输入或门VHDL,半加器的VHDL在【例3-2】中有,可直接调用。,调用方式:直接将半加器和或门的.vhd文件复制到全加器顶层设计文件存放目录即可。,元件调用声明语句(或元件定义语句)的两种不同的表达方式: 注意: 1)元件声明语句必须放在architecture-begin之间. 2)端口符号的描述并不一定要与原来元件一致,但端口模式、数据类型、 功能定义必须一致,如半加器的例化声明也可如下表述:,3.4 全加器及其VHDL表述,3.4.2 VHDL例化语句,元件例化就是引入一种连接关系,将预先设计好的实体定义为一个元件,然后利用特定的语句将此元件与当前的设计实体中的指定端口连接,从而为当前设计实体引进一个新的低一级的设计层次。,3.4 全加器及其VHDL表述,3.4.2 VHDL例化语句,端口名关联表达式:,内部元件端口名=内部元件以外需要连接的端口名或信号名,注意:1)连接表达式在port map()语句内的位置是任意的; 2)=连接符号不限制信号数据的流动方向(即流入或流出),一旦位置关联例

温馨提示

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

评论

0/150

提交评论