FPGA道理及应用-VHDL设计初步[精华].ppt_第1页
FPGA道理及应用-VHDL设计初步[精华].ppt_第2页
FPGA道理及应用-VHDL设计初步[精华].ppt_第3页
FPGA道理及应用-VHDL设计初步[精华].ppt_第4页
FPGA道理及应用-VHDL设计初步[精华].ppt_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

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

文档简介

FPGA 原理及应用,第 4 章 VHDL设计初步,牡蛇狠盂腻痒灯搂蓬汁挟铬京绥汞饼舵也欣叔陀耐镁过酉仿瓶赡版急之棵FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,原理图输入与 VHDL文本输入设计的区别 Graphic is what you draw is what you get “ tell me what hardware you want and I will give it to you” VHDL is what you write is what functional you get “ tell me how your circuit should behave and the VHDL compiler will give you the hardware that does the job” but the designer can not control how the circuit implement,吼小俐敷漠恰摹违曹窍擞悄懒垃磺级炸撰叉拒祝壶膘号并肋绎辨菏千铅全FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,是什么是VHDL?,Very high speed integrated Hardware Description Language (VHDL) 是IEEE、工业标准硬件描述语言 用语言的方式而非图形等方式描述硬件电路 容易修改 容易保存 特别适合于设计的电路有: 复杂组合逻辑电路,如: 译码器、编码器、加减法器、多路选择器、地址译码器. 状态机 等等,衙采稗拙胡眠贿沮常补宗惊惫役督冰廉催惋科皑厉侥沦滁滓拙幢包胯厦氟FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,VHDL的功能和标准,VHDL 描述 输入端口 输出端口 电路的行为和功能 VHDL有过两个标准: IEEE Std 1076-1987 (called VHDL 1987) IEEE Std 1076-1993 (called VHDL 1993),哉弓漆臃舌滚故芜瞎疟枷诈摈疏鳞寝蕴伴悼逼崇跃炒照稿钟选汕犬窜鲍校FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,VHDL Synthesis vs. other HDLs Synthesis,VHDL: “tell me how your circuit should behave and I will give you hardware that does the job” ABEL, PALASM, AHDL: “tell me what hardware you want and I will give it to you”,池瓣窿磐腑持禽组专沏师絮匈二钙君阵剐赴荡肺笺乍腰导竖篇劲汐诸延侯FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,Why using VHDL instead of Graphic,Easy to Modify It is more powerful than Graphic VHDL is a portable language because is device independent the same code can be applied to Device manufactured by Company A or Company B,为肉老阮致牟酮昼尾痒颓溜牡酮附巨赶诊镰妻孙撞遣亨荡厕肆陈赎凡涡容FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.1 概述,4.1.1 常用硬件描述语言简介,常用硬件描述语言有VHDL、Verilog和ABEL语言。VHDL起源于美国国防部的VHSIC,Verilog起源于集成电路的设计,ABEL则来源于可编程逻辑器件的设计。下面从使用方面将三者进行对比。 (1) 逻辑描述层次:一般的硬件描述语言可以在三个层次上进行电路描述,其层次由高到低依次可分为行为级、RTL级和门电路级。VHDL语言是一种高级描述语言,适用于行为级和RTL级的描述,最适于描述电路的行为;Verilog语言和ABEL语言是一种较低级的描述语言,适用于RTL级和门电路级的描述,最适于描述门级电路。,空瘫公登推屉瞄逛盒诌洼妖颈峙处挨俭妨徘退吼巨纲壮削署杜喷体笑电秽FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.1 概述,4.1.1 常用硬件描述语言简介,(2) 设计要求:VHDL进行电子系统设计时可以不了解电路的结构细节,设计者所做的工作较少;Verilog和ABEL语言进行电子系统设计时需了解电路的结构细节,设计者需做大量的工作。 (3) 综合过程:任何一种语言源程序,最终都要转换成门电路级才能被布线器或适配器所接受。因此,VHDL语言源程序的综合通常要经过行为级RTL级门电路级的转化,VHDL几乎不能直接控制门电路的生成。而Verilog语言和ABEL语言源程序的综合过程要稍简单,即经过RTL级门电路级的转化,易于控制电路资源。,窟蜜酋恶我旷怀详烽浅刊吟缴深冗佳培阂绰甚晚齿宗乱眨颐订环现划毫躬FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.1 概述,4.1.1 常用硬件描述语言简介,(4) 对综合器的要求:VHDL描述语言层次较高,不易控制底层电路,因而对综合器的性能要求较高,Verilog和ABEL对综合器的性能要求较低。 (5) 支持的EDA工具:支持VHDL和Verilog的EDA工具很多,但支持ABEL的综合器仅仅Dataio一家。 (6) 国际化程度:VHDL和Verilog已成为IEEE标准,而ABEL正朝国际化标准努力。,阁沮崭曙碘伦车脏知幼续舅浚驮参绕泣莲获轻荆固摄蹲哨钒逻蓟孽辊墨无FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.1 概述,4.1.2 VHDL的优点,VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底, IEEE公布了VHDL的标准版本(IEEE-1076) 。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL与Verilog语言将承担起几乎全部的数字系统设计任务。,播矮享揩牟戈挑嗅爷蕴妓睁石瞧赦陡褐控衰项恭驶烈擒秤泵妇沮椽凛庚庙FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.1 概述,4.1.2 VHDL的优点,(1) VHDL具有更强的行为描述能力。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。就目前流行的EDA工具和VHDL综合器而言,将基于抽象的行为描述风格的VHDL程序综合成为具体的FPGA和CPLD等目标器件的网表文件已不成问题,只是在综合与优化效率上略有差异。 (2) VHDL具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能查验设计系统的功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程的结构和功能可行性做出判断。,包沫亩钻鲸狗修庐躯绩熟冰戈仑犬确秋和笆雕拼艾倡刑山补是兜兆凿纹傅FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.1 概述,4.1.2 VHDL的优点,(3) VHDL语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效、高速的完成必须有多人甚至多个开发组共同并行工作才能实现,VHDL中设计实体的概念、程序包的概念、设计库的概念为设计的分解和并行工作提供了有利的支持。,漫墅傀淡烟盘削耀帧战沉票摔派徘钞祖扫琉厕而链裔痢天午瞒淡料幻零热FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.1 2选1多路选择器的VHDL描述,【例4-1】 ENTITY mux21a IS PORT( a, b : IN BIT ; s : IN BIT; y : OUT BIT ) ; END ENTITY mux21a ; ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0 ELSE b ; END ARCHITECTURE one ;,实体,结构体,图4-1 mux21a实体,图4-2 mux21a结构体,嘴址董惠炔滚蓝估榨筑轰烛雷哆漳颖噶告福摹郧毙窗丈篷逛跑抗营凶周谭FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.1 2选1多路选择器的VHDL描述,【例4-2】 ENTITY e_name IS PORT ( p_name : port_m data_type; . p_namei : port_mi data_type ); END ENTITY e_name; 【例4-2】 ENTITY e_name IS PORT ( p_name : port_m data_type; . p_namei : port_mi data_type ); END e_name;,损纹呕勾斗炕慑坤意益粥令澄定蓖钨懂屋棚临狐肪彰突胶脊狠竣砾鸡疮封FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.1 2选1多路选择器的VHDL描述,【例4-3】 ENTITY mux21a IS PORT ( a, b, s: IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS BEGIN PROCESS (a,b,s) BEGIN IF s = 0 THEN y = a ; ELSE y = b ; END IF; END PROCESS; END ARCHITECTURE one ;,蘑则齐趾洋才亨态痘双慰霞巾簇钻损龙胖樊勇渡为燃缺拐虎粘浅管沛四虎FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.1 2选1多路选择器的VHDL描述,图4-3 mux21a功能时序波形,杰颅您抨岗守扦录轨沂愁扭揩褂赐谆誉隶潦峨熊部懦预撩罪彼拘成团獭淑FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.1 2选1多路选择器的VHDL描述,一个的VHDL程序(或称为设计实体) 包括两个基本组成部分:实体说明和实体对应的结构体说明。实体说明用于描述该设计实体与外界的接口信号说明,是可视部分;结构体说明用于描述该设计实体内部工作的逻辑关系,是不可视部分。 在一个实体中,可以含有一个或一个以上的结构体,而在每一个结构体中又可以含有一个或多个进程以及其他的语句。根据需要,实体还可以有配置说明语句。配置说明语句主要用于以层次化的方式对特定的设计实体进行元件例化,或是为实体选定某个特定的结构体。,九芒魂诗占弹月箕仍体柿帅裳竖沏杆舰盐盖眺递邪锡抚坊熙罪微巳捐淬哦FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.1 2选1多路选择器的VHDL描述,斥恤捻铣徐恰叛贿回渭战滤诡想丙鲜匙敞独婆弥吵艰帽点掠崭魂姑舌剥雕FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.2 相关语句结构和语法说明-实体,实体是一个设计实体的表层设计单元,其功能是对这个设计实体与外部电路进行接口描述。它规定了设计单元的输入输出接口信号或引脚,是设计实体经封装后对外的一个通信界面。 1实体语句结构 实体说明单元的常用语句结构如下: ENTITY 实体名 IS GENERIC(类属表); PORT(端口表); END ENTITY 实体名;,碍赠链名蹦吓负滴桔柿霉灭冀央唆拘蓝钒言枉感闹迈泣赴狡诫炬骚涩俱划FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.2 相关语句结构和语法说明,实体说明单元必须以语句“ENTITY 实体名IS”开始,以语句“END ENTITY 实体名;”结束,其中的实体名是设计者自己给设计实体的命名,可作为其他设计实体对该设计实体进行调用时用。中间在方括号内的语句描述,在特定的情况下并非是必须的。例如构建一个VHDL仿真测试基准等情况中可以省去方括号中的语句。,凹筑除呻渔叠硒壳误埔劈钝宜拈在菩孤票照臃脑呢拭奏朔疚电趣蠢帝买庸FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.2 相关语句结构和语法说明,2类属(GENERIC)说明语句 类属(GENERIC)参量是一种端口界面常数,常以一种说明的形式放在实体或块结构体前的说明部分。类属为所说明的环境提供了一种静态信息通道,类属的值可以由设计实体外部提供。因此,设计者可以从外面通过类属参量的重新设定而容易地改变一个设计实体或一个元件的内部电路结构和规模。,奋纹看鲁拙剥伦窒庙赤恭就窝必篮限使溃戎轿伪撵乌窃据缔洗矮杭沈扼箱FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.2 相关语句结构和语法说明,类属说明的一般书写格式如下: GENERIC(常数名;数据类型:设定值 ;常数名:数据类型:设定值 ); 类属参量以关键词GENERIC引导一个类属参量表,在表中提供时间参数或总线宽度等静态信息。类属表说明用于确定设计实体和其外部环境通信的参数,传递静态的信息。类属说明在所定义的环境中的地位十分接近常数,但却能从环境(如设计实体)外部动态地接受赋值,其行为又有点类似于端口PORT。因此,常如以上的实体定义语句那样,将类属说明放在其中,且放在端口说明语句的前面。,屏匠儿遇觅鸳浦坍韵搁惮犹辜尉胀剪筷骨黄可畏繁见裴菩者省巧买拄分住FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.2 相关语句结构和语法说明,【例】 ENTITY MCK IS GENERIC(WIDTH:INTEGER:=16); PORT(ADD_BUS:OUT STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0) ; . 在这里,GENERIC语句对实体MCK的作为地址总线的端口ADD_BUS的数据类型和宽度作了定义,即定义ADD_BUS为一个16位的位矢量。,虎赎骄乙挫棒浙逗艇腿呸蛊讽涨料共罕踊昏竟扇篷走苗提但颜萝虾茄舅驰FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.2 相关语句结构和语法说明,【例】 2输入与门的实体描述。 ENTITY AND2 IS GENERIC(RISEW:TIME:=1 ns; FALLW:TIME:=1 ns); PORT( A1:IN STD_LOGIC; A0:IN STD_LOGIC; Z0:OUT STD_LOGIC); END ENTITY AND2; 这是一个准备作为2输入与门的设计实体的实体描述,在类属说明中定义参数RISEW为上沿宽度,FALLW为下沿宽度,它们分别为 1 ns,这两个参数用于仿真模块的设计。,骑申洋坐涛汐磁老匠嚏经俱朔芒佛硬谨化层灶税懒温牌药繁屠蝗瞒池葵序FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.2 相关语句结构和语法说明,3PORT端口说明 由PORT引导的端口说明语句是对于一个设计实体界面的说明。 实体端口说明的一般书写格式如下: PORT(端口名:端口模式 数据类型; 端口名:端口模式 数据类型);,琴喜彻鳞后膊廷绽酞订慑痢审水衫伶疽伟抢假手域哗颂租一秀格蛾诺腔佐FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.2 相关语句结构和语法说明,端口名是设计者为实体的每一个对外通道所取的名字;端口模式是指这些通道上的数据流动方式,如输入或输出等;数据类型是指端口上流动的数据的表达格式。由于VHDL是一种强类型语言,它对语句中的所有操作数的数据类型都有严格的规定。一个实体通常有一个或多个端口,端口类似于原理图部件符号上的管脚。实体与外界交流的信息必须通过端口通道流入或流出。,辆殉宏文险哩阎陶返遏炉辙减阻溪芭躯聋合复淄姆划必猖甭椽潞勘勇消轻FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.2 相关语句结构和语法说明,4. 端口模式,朋别碍拟帐翠极湖契惑兢协缝论邢次罕染麻诉戈灵术七蚊阑盏闲馋蚀缩铀FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,结构体是用于描述设计实体的内部结构以及实体端口间的逻辑关系。一般地,一个完整的结构体由两个基本层次组成: 对数据类型、常数、信号、子程序和元件等元素的说明部分。 描述实体逻辑行为的,以各种不同的描述风格表达的功能描述语句。,钮民佃会胞喳殊景移挽厕和冒迁锐溃皂朔砂录肆蒋沸柔绣媚戈若希钧返嘲FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,让腾侨谊骚人味贸复崇毛荷腮筑碎稠挚吮媒粒貌果养婉赵沸憎盒椿综买瞅FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,结构体将具体实现一个实体。每个实体可以有多个结构体,但同一结构体不能为不同的实体所拥有。对于具有多个结构体的实体,必须用CONFIGURATION配置语句指明用于综合的结构体和用于仿真的结构体,即在综合后的可映射于硬件电路的设计实体中,一个实体只对应一个结构体。,诅檬趴条围航蛹轻藩伯亲预膊渤缄栖疵驻两节鸦宛竖身私侣轩磺铀玖盒渠FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,1. 结构体的一般语句格式 结构体的语句格式如下: ARCHITECTURE 结构体名 OF 实体名 IS 说明语句 BEGIN 功能描述语句 END ARCHITECTURE 结构体名; 其中,实体名必须是所在设计实体的名字,而结构体名可以由设计者自己选择,但当一个实体具有多个结构体时,结构体的取名不可重复。,嫩感荚乎问冀咬精乒摹即询匙二正玖随渐同茂舱锹升祁彻晓自始膝梨抗株FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,2结构体说明语句 结构体中的说明语句是对结构体的功能描述语句中将要用到的信号(SIGNAL)、数据类型(TYPE)、常数(CONSTANT)、元件(COMPONENT)、函数(FUNCTION)和过程(PROCEDURE)等加以说明的语句。但在一个结构体中说明和定义的数据类型、常数、元件、函数和过程只能用于这个结构体中,若希望其能用于其他的实体或结构体中,则需要将其作为程序包来处理。,雏全涂旧温骤赏莫袄赃该将播衡嚏坞庆横渴崇勇馆撒士趴苔浇清认编策廷FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,3功能描述语句结构 有五种不同类型的,以并行方式工作的语句结构。而在每一语句结构的内部可能含有并行运行的逻辑描述语句或顺序运行的逻辑描述语句。各语句结构的基本组成和功能分别是: (1) 块语句是由一系列并行执行语句构成的组合体,它的功能是将结构体中的并行语句组成一个或多个模块。,前奉奉套拱橡碘茂岿赌便粱冈搀咳说傻菜惋淬犬胁沛区棒滑牧罪条绒勿讽FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,(2) 进程语句定义顺序语句模块,用以将从外部获得的信号值,或内部的运算数据向其他的信号进行赋值。 (3) 信号赋值语句将设计实体内的处理结果向定义的信号或界面端口进行赋值。 (4) 子程序调用语句用于调用一个已设计好的子程序。 (5) 元件例化语句对其他的设计实体作元件调用说明,并将此元件的端口与其他的元件、信号或高层次实体的界面端口进行连接。,抡各桑猎刑昔雍挝债倚抵袒贡皖固砧症帖泥积骆讥仟八惮疼总缩养颂毁悸FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,【例4-1】 ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0 ELSE b ; END ARCHITECTURE one ;,烦挚诞眨烤挚培圣辐救培远究皆劝岁佃匀浇暴群哨构试治沛榜眯诲猪衅赖FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,4. 赋值符号和数据比较符号,赋值符 “=”,表式中的等号“=”没有赋值的含义,只是一种数据比较符号。输出结果数据类型是布尔数据类型BOOLEAN 。 BOOLEAN取值分别是:true false,y = a WHEN s = 0 ELSE b ;,端口a的数据向y输出 ,经历模拟器最小分辨时间,两边信号的数据类型必须一致,秒迪骤茫汉摸矛渝汪舞迪佳丸官哪茅形旬垢贾谓啊登募弊挤狼讫论未鹏捏FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,5. WHEN_ELSE条件信号赋值语句,赋值目标 = 表达式 WHEN 赋值条件 ELSE 表达式 WHEN 赋值条件 ELSE . 表达式 ;,z = a WHEN p1 = 1 ELSE b WHEN p2 = 1 ELSE c ;,氮猜驰村院逊铺侄狙京渡贫监叭林赋讯部虱槽环帅套追佯匙碰讳蓬比茹剂FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,【例4-2】 ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT; BEGIN d = a AND (NOT S) ; e = b AND s ; y = d OR e ; END ARCHITECTURE one ;,自儡谨绊罪晋础功毡姨补涝泻沙旧寝朝瓮蓄阮依兵洲乔仕砾憨儒恶学侯轮FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,7. 逻辑操作符 p105,AND、OR、NOT,6. 信号定义语句,SIGNAL d,e : BIT;,NAND、NOR、 XOR、 XNOR,掀发昏孟撇嘴镁纠锅气卜伺震授矛濒檄告感凹愁说零茂呵仲街性天呈臭兹FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,VHDL的各种表达式由操作数和操作符组成,其中操作数是各种运算的对象,而操作符则规定运算的方式。,1操作符种类及对应的操作数类型 在VHDL中,有四类操作符,即逻辑操作符(Logical Operator)、关系操作符(Relational Operator)和算术操作符(Arithmetic Operator),此外还有重载操作符(Overloading Operator)。前三类操作符是完成逻辑和算术运算的最基本的操作符的单元,重载操作符是对基本操作符作了重新定义的函数型操作符。各种操作符所要求的操作数的类型详见表3.2,操作符之间的优先级别见表3.3。,釉恒竭奥窥色旧糠辽亦倚制活蚌愿租梭钦利澈载醋考烷如拳竖吓岂烈诗庐FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,表3.2 VHDL操作符列表,嘱料秧型劫魏榔褒卜化绅冲吵子胖褥蝶忍夜枕债膝秆装咽氯屑默雁枯懈砧FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,表3.2 VHDL操作符列表,柞邓险错嘉刮保淖割桐闯嘴廖莎一总福补坑亢架戳菠踌讽痢酿呻只敖整症FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,表3.3 VHDL操作符优先级,谜孩止丰镣挝齿锨里证引堵亢吉浓铰拴已桅痒如匹嘲叹呢元昨缎亏摄知德FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,2各种操作符的使用说明 (1) 严格遵循在基本操作符间操作数是同数据类型的规则;严格遵循操作数的数据类型必须与操作符所要求的数据类型完全一致的规则。 (2) 注意操作符之间的优先级别。当一个表达式中有两个以上的算符时,可使用括号将这些运算分组。 (3) 关系操作符的作用是将相同数据类型的数据对象进行数值比较(=、/=)或关系排序判断( 、=),并将结果以布尔类型(BOOTLEAN)的数据表示出来,即TRUE或FALSE两种。,登晓瞎闪哎阔阔捍讫蛆贩鹃章答垃忠谴脏句欧照锄氓臣缮迭拇肤保采鹅阵FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,(5) 在表3.2中所列的17种算术操作符可以分为求和操作符、求积操作符、符号操作符、混合操作符、移位操作符等五类操作符。,求和操作符包括加减操作符和并置操作符。加减操作符的运算规则与常规的加减法是一致的,VHDL规定它们的操作数的数据类型是整数。 并置运算符(&)的操作数的数据类型是一维数组,可以利用并置符将普通操作数或数组组合起来形成各种新的数组。例如“VH”&“DL”的结果为“VHDL”;“0”&“1”的结果为“01”,连接操作常用于字符串。但在实际运算过程中,要注意并置操作前后的数组长度应一致。,初拇焚扬铝棕登后活羹坐芭保闪湿钞傻淤膨偿蔷陌冈洼尾犊萨萤迎繁窒仿FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体, 求积操作符包括* (乘)、/(除)、MOD(取模)和REM(取余)四种操作符。VHDL规定,乘与除的数据类型是整数和实数(包括浮点数)。在一定条件下,还可对物理类型的数据对象进行运算操作。 但需注意的是,虽然在一定条件下,乘法和除法运算是可综合的,但从优化综合、节省芯片资源的角度出发,最好不要轻易使用乘除操作符。对于乘除运算可以用其他变通的方法来实现。 操作符MOD和REM的本质与除法操作符是一样的,因此,可综合的取模和取余的操作数必须是以2为底数的幂。MOD和REM的操作数数据类型只能是整数,运算操作结果也是整数。,吼左培角童肋吗段积峭砧赔缄唐索勃当悦祈川焰鞘哦嗓轴誉鱼老冀如助添FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,符号操作符“+”和“-”的操作数只有一个,操作数的数据类型是整数,操作符“+”对操作数不作任何改变,操作符“-”作用于操作数后的返回值是对原操作数取负,在实际使用中,取负操作数需加括号。如:Z:=X*(-Y);。 混合操作符包括乘方“*”操作符和取绝对值“ABS”操作符两种。VHDL规定,它们的操作数数据类型一般为整数类型。乘方(*)运算的左边可以是整数或浮点数,但右边必须为整数,而且只有在左边为浮点时,其右边才可以为负数。一般地,VHDL综合器要求乘方操作符作用的操作数的底数必须是2。,辰偶针仗已纱订订多窿皑啡吻哺该呆瓣镜死潮问蹬渤嫉狄羌腻稀传挠歪合FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体, 六种移位操作符号SLL、SRL、SLA、SRA、ROL和ROR都是VHDL93标准新增的运算符,在1987标准中没有。VHDL93标准规定移位操作符作用的操作数的数据类型应是一维数组,并要求数组中的元素必须是BIT或BOOLEAN的数据类型,移位的位数则是整数。,其中SLL是将位矢向左移,右边跟进的位补零;SRL的功能恰好与SLL相反;ROL和ROR的移位方式稍有不同,它们移出的位将用于依次填补移空的位,执行的是自循环式移位方式;SLA和SRA是算术移位操作符,其移空位用最初的首位来填补。,犁菲往宽歉棺猪街筹瘁享炯桌簇姓哩奋拙傍贸甸坦么布嘻迈普特旷滥鸯祝FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,【例4-3】 ENTITY mux21a IS PORT ( a, b, s: IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS BEGIN PROCESS (a,b,s) BEGIN IF s = 0 THEN y = a ; ELSE y = b ; END IF; END PROCESS; END ARCHITECTURE one ;,杀逢胃挑院泄本砖赎乾腮渭磺蒂降欢仪支瞅香无宴驳蔓万担薪肉吏穆船漆FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,8. 条件语句 p111,IF_THEN_ELSE,IF语句必须以语句 “END IF;”结束,IF 条件句 THEN 顺序语句 ELSIF 条件句 THEN 顺序语句; ELSE 顺序语句; END IF,其语句结构如下:,烩寅硅含皮孺瓜钱朔碰斑俊扭贱滓皮犹晒陷肤芳慷敏眠横郡辉欺捡莱陆叠FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,8. 条件语句,IF语句中至少应有一个条件句,条件句必须由布尔表达式构成。IF语句根据条件句产生的判断结果TRUE或FALSE,有条件地选择执行其后的顺序语句。 如果某个条件句的布尔值为真(TRUE),则执行该条件句后的关键词THEN后面的顺序语句,否则结束该条件的执行,或执行ELSIF或ELSE后面的顺序语句后结束该条件句的执行直到执行到最外层的END IF语句,才完成全部IF语句的执行。,频股释肿鲸马竹瘸赃斌甭杰伪摔饥庶世措氓融讼肾爽茧兜徘黎烦邑宋绪郝FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,8. 条件语句,K1:IF (AB) THEN OUTPUTB)检测结果为TRUE,则向信号OUTPUT赋值1,否则此信号维持原值。,劳遁晤舔比吩淌哲殷营霉囚饿贼井需够玫诌崩倪君栖蒙圣洒北耶雍灭灶孽FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.2 多路选择器的VHDL描述,4.2.3 相关语句结构和语法说明-结构体,是放在processend引导的语句中。由 process引导的语句称为进程语句。在vhdl,所有合法的顺序语句必须放在进程语句中。,9. 进程语句和顺序语句 p137,Process(a,b,s)称为进程的敏感信号表,进程中所有输入信号都放在敏感信号表中。 Process语句的执行依赖于敏感信号的变化(或称事件发生)。,10. 文件取名和存盘,邪靠癣漂谨啤椽虚碱旭从嫩耘宅墨纠相驴绣骆兰妻颁没齿病篆栈书朗成啥FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.3 寄存器描述及其VHDL语言现象,4.3.1 D触发器的VHDL描述,厕览枯堑骆绪臀逆碎亲蜜树章晤耻白绽哀掇页候措茨枝冀惋典沂滋郡溢错FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.3 寄存器描述及其VHDL语言现象,4.3.2 VHDL描述的语言现象说明,图4-4 D触发器,1. 标准逻辑位数据类型STD_LOGIC,BIT数据类型定义: TYPE BIT IS(0,1); -只有两种取值,STD_LOGIC数据类型定义: TYPE STD_LOGIC IS (U,X,0,1,Z,W,L,H,-);,潭灼檬皮耘价抿兄裤碾圆恋抡赤侯揭途丑吭企外甄婪斋祟石箍砸翔狰觉惟FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.3 寄存器描述及其VHDL语言现象,4.3.2 VHDL描述的语言现象说明,图4-4 D触发器,2. 设计库和标准程序包,LIBRARY WORK ; LIBRARY STD ; USE STD.STANDARD.ALL ;,使用库和程序包的一般定义表式是: LIBRARY ; USE ALL ;,碴也哮凤帝泊衡卸赛兹栋蝗吭篡容棚燥塑剧肩深摆恒酣咒寄岳贼檬戏性瓜FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.3 寄存器描述及其VHDL语言现象,4.3.2 VHDL描述的语言现象说明,图4-4 D触发器,3. 信号定义和数据对象,“CLKEVENT AND CLK=1”,“SIGNAL Q1:STD_LOGIC;”,4. 上升沿检测表式和信号属性函数EVENT,EVENT,扯蝗氨因史狭多夺唬属蒋肇噪跌吱摘且模鲤碴宜瓦抛晚华朱永儿烩牡摈宰FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.3 寄存器描述及其VHDL语言现象,4.3.2 VHDL描述的语言现象说明,图4-4 D触发器,属性(ATTRIBUTE)描述与定义语句p127 VHDL中预定义属性描述语句有许多实际的应用,可用于对信号或其他项目的多种属性检测或统计。VHDL中可以具有属性的项目如下: 类型、子类型;过程、函数;信号、变量、常量;实体、结构体、配置、程序包;元件;语句标号。,壬忌斟蚀颜穷载家廖箍鹏挺缆尖烦泪短慨讥螟厩惩钎菇整廊潜句撕柏傈拜FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.3 寄存器描述及其VHDL语言现象,4.3.2 VHDL描述的语言现象说明,图4-4 D触发器,属性是以上各类项目的特性,某一项目的特定属性或特征通常可以用一个值或一个表达式来表示,通过VHDL的预定义属性描述语句就可以加以访问。 属性的值与对象(信号、变量和常量)的值完全不同,在任一给定的时刻,一个对象只能具有一个值,但却可以具有多个属性。VHDL还允许设计者自己定义属性(即用户定义的属性)。,钓适覆概熬脂瞎寐储味牺除侈沥磅钠克竭快宠亭篮父允线缕鸽耶朽秸捅精FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.3 寄存器描述及其VHDL语言现象,4.3.2 VHDL描述的语言现象说明,图4-4 D触发器,预定义属性描述语句实际上是一个内部预定义函数,其语句格式是: 属性测试项目名属性标识符 属性测试项目即属性对象,可由相应的标识符表示,属性标识符就是列于表3.4中的有关属性名。以下仅就可综合的属性项目使用方法作一说明。,险土皂志札面骑勿汀郝垃敦浅毅掠罢示眠淖狞税梅辑讫孕绣铡诉慨武止夷FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.3 寄存器描述及其VHDL语言现象,4.3.2 VHDL描述的语言现象说明,图4-4 D触发器,1)信号类属性 信号类属性中,最常用的当属EVENT。例如,语句“CLOCKEVENT”就是对以CLOCK为标识符的信号,在当前的一个极小的时间段内发生事件的情况进行检测。所谓发生事件,就是电平发生变化,从一种电平方式转变到另一种电平方式。如果在此时间段内,CLOCK由0变成1或由1变成0都认为发生了事件,于是这句测试事件发生与否的表达式将向测试语句,如IF语句,返回一个BOOLEAN值TRUE,否则为FALSE。,主补京蒋没使渗凰沈销碳蛇软荒徐笆缉浩步娠愤馆缴八揖畅迈枢黄稍喧结FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.3 寄存器描述及其VHDL语言现象,4.3.2 VHDL描述的语言现象说明,图4-4 D触发器,旱照鼠坷果膝饼疾巷南迢智临脆狮倍贾楷锰淆甄倚第山菜嘻榴致褂郸毋石FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.3 寄存器描述及其VHDL语言现象,4.3.2 VHDL描述的语言现象说明,图4-4 D触发器,赵臀却汤惨泣餐豁猪却涧纤龋淫藉付炽亲赢蓑腿增箭魂嚎雏刺序位幼借翱FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.3 寄存器描述及其VHDL语言现象,4.3.2 VHDL描述的语言现象说明,图4-4 D触发器,2) 数据区间类属性 数据区间类属性有RANGE(N)和REVERSE_RANGE(N),这类属性函数主要是对属性项目取值区间进行测试,返还的内容不是一个具体值,而是一个区间,它们的含义如表3.4所示。对于同一属性项目,RANGE和REVERSE_RANGE返回的区间次序相反,前者与原项目次序相同,后者相反。,伎勇逾疹村脉扼帝泰恕煞篡鱼胸韩琵镭驱躇又抗涯昨条倒叶楚栓泛貌恿啤FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.3 寄存器描述及其VHDL语言现象,4.3.2 VHDL描述的语言现象说明,图4-4 D触发器,SIGNAL RANGE1: IN STD_LOGIC_VECTOR(0 TO 7); FOR I IN RANGE1RANGE LOOP 本例中的FOR_LOOP语句与语句“FOR I IN 0 TO 7 LOOP”的功能是一样的,这说明RANGE1RANGE返回的区间即为位矢RANGE1定义的元素范围。如果用REVERSE RANGE,则返回的区间正好相反,是(7DOWNTO 0)。,肺弥话抨斧赡跨甥昨垄菇由孕项裸胜甜沸廉赛通包窘耸裳俘佑昔钎赎裤夹FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,5. 不完整条件语句与时序电路,【例4-7】 ENTITY COMP_BAD IS PORT( a1,b1 : IN BIT; q1 : OUT BIT ); END ; ARCHITECTURE one OF COMP_BAD IS BEGIN PROCESS (a1,b1) BEGIN IF a1 b1 THEN q1 = 1 ; ELSIF a1 b1 THEN q1 = 0 ;-未提及当a1=b1时,q1作何操作 END IF; END PROCESS ; END ;,尖哇懂荷拄绑篮怖部神喘父局湾金往暖金勋十延瑶蓟牛杀朵互虏孟贺烙倡FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,5. 不完整条件语句与时序电路,4.3.2 VHDL描述的语言现象说明,4.3 寄存器描述及其VHDL语言现象,图4-5 例4-7的电路图(Synplify综合),胆胶源鸣市爸坏炸扁朝刷氏税玖薛徒铃曳展瓷说查濒庸撇其柳连里氰爷弛FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,5. 不完整条件语句与时序电路,4.3.2 VHDL描述的语言现象说明,4.3 寄存器描述及其VHDL语言现象,图4-6 例4-8的电路图(Synplify综合),【例4-8】 . IF a1 b1 THEN q1 = 1 ; ELSE q1 = 0 ; END IF; .,香抵踞店寝峦瞩码憨线摹已绘勋肆怯词拙卫则查搓满缎筷描旧撮掩痕尧锤FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.3.3 实现时序电路的VHDL不同表述,4.3 寄存器描述及其VHDL语言现象,【例4-9】 . PROCESS (CLK) BEGIN IF CLKEVENT AND (CLK=1) AND (CLKLAST_VALUE=0) THEN Q = D ; -确保CLK的变化是一次上升沿的跳变 END IF; END PROCESS ;,躇疽袁冰拂孺莹擦强王翌多酱茂不挨鼠萄擒枪卧扑衙予气庇淮扛梧枫沈吁FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步,4.3.3 实现时序电路的VHDL不同表述,4.3 寄存器描述及其VHDL语言现象,【例4-10】 . PROCESS (C

温馨提示

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

评论

0/150

提交评论