VHDL与数字集成电路设计VHDL1-3_第1页
VHDL与数字集成电路设计VHDL1-3_第2页
VHDL与数字集成电路设计VHDL1-3_第3页
VHDL与数字集成电路设计VHDL1-3_第4页
VHDL与数字集成电路设计VHDL1-3_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1.1程序的结构library、entity、port1.2设计的表达architecture、signal1.3结构表达与运算表达

1.4数字系统的进程表达process第一章VHDL对电路设计的根本描述VHDL与数字集成电路设计元件例化:结构连接的描述1.3结构表达与运算表达

元件的设置与使用componentm7408port(a,b:instd_logic;y:outstd_logic);endcomponent;u1:m7408portmap(rd,pi,error);u2:m7408portmap(rd,po,rp);1.3结构表达与运算表达

元件语句的使用特点元件语句能够方便直观地表达硬件电路的结构特点;利用元件语句可以强制设定电路的综合效果,由元件语句设定的端口节点通常不会在综合中消去。1.3结构表达与运算表达

元件语句的使用特点利用元件语句可以隔离分层设计中的层间干扰,简化设计过程:

在自顶向下的设计中,利用元件语句可以对系统进行抽象分割,避开底层设计细节;

在自底向上的设计中,元件语句也能充分发挥器件的复用功能,提高设计效率。1.3结构表达与运算表达

元件语句的使用特点元件设置只是发布一项设计任务,并未包含元件内部的设计细节;元件例化时只是表达了元件的外部连接关系,没有表达元件本身的输出输出运算;

在底层设计完成功能描述并能够通过仿真之前,例化的元件是不能进行仿真的;在缺乏底层细节条件下,元件内部电路也不能真正综合。1.3结构表达与运算表达

信号赋值:运算关系的表达u1:error<=rdandpi;u2:rp<=rdandpo;1.3结构表达与运算表达

信号赋值表达的特点每个器件〔或器件的每个输出〕采用一条信号赋值语句表达;不需要考虑器件名称及内部端口,直接表达输入信号与输出信号之间的运算关系,可以根据这种关系进行仿真运算;不指定器件内部的结构细节,默认可以自动综合。1.3结构表达与运算表达

运算的函数表达信号赋值语句的右边通过函数表达对输入信号的运算规那么,函数的定义通常放置于资源库中,使用函数时应考虑运算信号的数据类型和运算函数形式,注意对相应资源库的调用。y<=f(a,b);1.3结构表达与运算表达

运算的函数表达:逻辑运算假设为2值逻辑,默认根本规那么,无需资源调用;假设为9值逻辑,那么需调用以下资源:y<=aandb;libraryieee;useieee.std_logic_1164.all;1.3结构表达与运算表达

逻辑运算的特点VHDL中预定义的逻辑运算函数除了not具有优先性外,其余运算的优先关系需要采用括号表达:notandornandnorxorxnor1.3结构表达与运算表达

根本的逻辑运算函数都可以与电路的根本单元对应;采用逻辑运算式表达的运算关系通常都能够按照标准的优化方法综合得到最优的结构;逻辑类型的选择只具有仿真意义,除了输出的高阻z之外,对综合不产生影响。逻辑运算的特点1.3结构表达与运算表达

假设为整数类型,默认根本规那么,无需资源调用;假设为二进制符号数,那么需调用以下资源:y<=a+b;libraryieee

useieee.

std_logic_arith.

all;算数类型及运算

useieee.std_logic_signed.

all;

逻辑算数转换运算的函数表达:算数运算1.3结构表达与运算表达

算数运算的特点仅考虑仿真时,可以使用整数、实数等类型,可以使用多种运算函数;但考虑综合时,通常只有如下选择数据类型:整数、无符号数、符号数;运算函数:加减法算数运算函数与电路根本单元没有直接对应,算数运算的自动综合不一定能实现最优效果。1.3结构表达与运算表达

函数的设置与应用pi<=d0xord1xord2xord3xord4xord5xord6xord7xorrp;pi<=parity(d0,d1,d2,d3,d4,d5,d6,d7,rp);1.3结构表达与运算表达

函数的设置与应用functionparity(a:std_logic_vector(8downto0))returnstd_logicisvariableodd:std_logic;beginodd:=a(8)xora(7)xora(6)xora(5)xora(4)xora(3)xora(2)xora(1)xora(0);returnodd;endparity;1.3结构表达与运算表达

函数的设置与应用函数的设置时,以函数名称表达输出,以参量表表达输入;内部可以设置变量以表达中间运算结果;函数内部均为软件程序表达的顺序语句,不能有信号赋值语句,也不能对函数名称赋值;函数使用时,将输入信号顺序映射到参量表名称上,完成运算后,通过return将运算结果返还给输知名,最后通过信号赋值语句驱动输出信号。

1.3结构表达与运算表达

函数的设置与应用函数的设置后,通常保存于资源库中;保存时,其名称局部保存于包集合中,而其完整设置那么需要保存于包集合体中。packagemy_deviceis

functionparity(a:std_logic_vector(8downto0))returnstd_logic;endmy_device;1.3结构表达与运算表达

函数的设置与应用packagebodymy_deviceisfunctionparity(a:std_logic_vector(8downto0))returnstd_logicisvariableodd:std_logic;beginodd:=a(8)xora(7)xora(6)xora(5)xora(4)xora(3)xora(2)xora(1)xora(0);returnodd;endparity;endmy_device;1.3结构表达与运算表达

自定义函数的应用特点将复杂的运算采用简单的符号表达:增加程序的可读性,便于维护;提供复用和共享,提高设计效率;仅当某种运算需要大量采用时设置。函数内部采用软件程序表达运算关系,完全不含硬件细节,与电路根本单元没有直接对应关系,自动综合不一定得到最优电路结构。1.3结构表达与运算表达

条件赋值语句when/else信号名<=表达式1when布尔表达式1else表达式2when布尔表达式2……else表达式nwhen布尔表达式nelse表达式〔n+1〕;赋值语句中的行为表达1.3结构表达与运算表达

条件赋值语句的控制行为z<=a1whenp1=

'1'

elsea2whenp2=

'1'

elsea3;每条when判断构成为一个2选1控制结构1.3结构表达与运算表达

libraryieee;useieee.std_logic_1164.all;entitypriorityisport(a:instd_logic_vector(7downto0);y:outstd_logic_vector(2downto0));endpriority;例:优先编码器的表达1.3结构表达与运算表达

architecturertlofpriorityisbeginy<="111"whena(7)='1'else"110"whena(6)='1'else"101"whena(5)='1'else"100"whena(4)='1'else"011"whena(3)='1'else"010"whena(2)='1'else"001"whena(1)='1'else"000";endrtl;1.3结构表达与运算表达

条件赋值语句的结构特点当被选数据为常数时,MUX可以简化为简单器件1.3结构表达与运算表达

例:三态传输器件的表达libraryieee;useieee.std_logic_1164.all;entitytrinisport(x,c:instd_logic;y:outstd_logic);endtrin;architecturertloftrinisbeginy<=notxwhenc='1'else'Z';endrtl;1.3结构表达与运算表达

选择赋值语句with/selectwith选择表达式

select信号名<=表达式1when选择值1,表达式2when选择值2,……表达式nwhenothers;对输入输出关系的一一对应表达1.3结构表达与运算表达

例:4选1数据选择器的表达libraryieee;useieee.std_logic_1164.all;entitymux4isport(a:instd_logic_vector(1downto0);d3,d2,d1,d0:instd_logic_vector(7downto0);y:outstd_logic_vector(7downto0));endmux4;1.3结构表达与运算表达

例:4选1数据选择器的表达withaselecty<=d3when"11",d2when"10",d1when"01",d0when"00",(others=>'0')whenothers;1.3结构表达与运算表达

例:全加器的表达withxselecty<="11"when"000","10"when"011"|"110"|"101","01"when"001"|"010"|"100","00"whenothers;1.3结构表达与运算表达

控制类赋值语句控制类赋值语句能够表达抽象的输入输出关系,能够通过判断实现对于运算的控制,反映出电路的功能行为,能够增加设计表达的灵活性;

尽管控制类语句可以使用一些硬件结构去对应,但这些结构并不是实现该输入输出关系的唯一形式,并不一定代表最优设计,因此其自动综合不一定能实现最优结构。1.3结构表达与运算表达

信号运算的时间延迟描述运算采用硬件电路元件进行,从输入状态变化到输出状态变化存在时间延迟;VHDL采用信号赋值语句表达时间延迟:惯性延迟〔器件延迟〕:信号名<=表达式afterkns;传输延迟〔线路延迟〕:信号名<=transport表达式afterkns;1.3结构表达与运算表达

信号运算的时间延迟描述f<=axorbxorc;--无延迟信号f1<=axorbxorcafter9ns;--惯性延迟f2<=transportfafter9ns;--传输延迟1.3结构表达与运算表达

信号运算的

温馨提示

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

评论

0/150

提交评论