首页 VHDL与数字集成电路设计VHDL1-3

VHDL与数字集成电路设计VHDL1-3

举报
开通vip

VHDL与数字集成电路设计VHDL1-31.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,p...

VHDL与数字集成电路设计VHDL1-3
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结构表达与运算表达*基本的逻辑运算函数都可以与电路的基本单元对应;采用逻辑运算式表达的运算关系通常都能够按照 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 的优化方法综合得到最优的结构;逻辑类型的选择只具有仿真意义,除了输出的高阻z之外,对综合不产生影响。逻辑运算的特点1.3结构表达与运算表达*若为整数类型,默认基本规则,无需资源调用;若为二进制符号数,则需调用下列资源:y<=a+b;libraryieeeuseieee.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_deviceisfunctionparity(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.3结构表达与运算表达信号运算的时间延迟描述a1<=aafter2ns;--惯性延迟z<=transportf(a1)after3ns;--传输延迟1.3结构表达与运算表达信号运算的时间延迟描述a1<=aaftertsns;--惯性延迟a2<=transporta1aftertpns;--传输延迟z<=f(a2);--无延迟运算多器件路径的时间延迟:利用缓冲分离时间1.3结构表达与运算表达信号运算的时间延迟描述多输入单输出器件的时间延迟描述:在输入端插入缓冲进行描述1.3结构表达与运算表达信号运算的时间延迟描述先将器件分割为单输出器件;分别分析每个输入到输出的最长延迟路径;对每个输入端添加缓冲:路径中存在的最大输入电容构成惯性延迟缓冲;其余所有时间延迟构成传输延迟缓冲;经过缓冲后的信号输入到无延迟运算中,产生输出结果。1.3结构表达与运算表达**
本文档为【VHDL与数字集成电路设计VHDL1-3】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
潮起潮落
一线信息技术教师,具有丰富教学经验和管理经验,多次被评为地级优秀教师
格式:ppt
大小:771KB
软件:PowerPoint
页数:0
分类:高中语文
上传时间:2020-04-05
浏览量:3