FPGA道理及应用VHDL设计初步精华

上传人:工**** 文档编号:567614539 上传时间:2024-07-21 格式:PPT 页数:130 大小:1.15MB
返回 下载 相关 举报
FPGA道理及应用VHDL设计初步精华_第1页
第1页 / 共130页
FPGA道理及应用VHDL设计初步精华_第2页
第2页 / 共130页
FPGA道理及应用VHDL设计初步精华_第3页
第3页 / 共130页
FPGA道理及应用VHDL设计初步精华_第4页
第4页 / 共130页
FPGA道理及应用VHDL设计初步精华_第5页
第5页 / 共130页
点击查看更多>>
资源描述

《FPGA道理及应用VHDL设计初步精华》由会员分享,可在线阅读,更多相关《FPGA道理及应用VHDL设计初步精华(130页珍藏版)》请在金锄头文库上搜索。

1、FPGA道理及应用-VHDL设计初步精华Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望n原理图输入与 VHDL文本输入设计的区别nGraphic is what you draw is what you getn“ tell me what hardware you want and I will give it to you”nVHDL is what you write is what functional you getn“ tell me how your circuit

2、should behave and the VHDL compiler will give you the hardware that does the job”n but the designer can not control how the circuit implement吼小俐敷漠恰摹违曹窍擞悄懒垃磺级炸撰叉拒祝壶膘号并肋绎辨菏千铅全FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步是什么是VHDL?n Very high speed integrated Hardware Description Language (VHDL)n是IEEE、工业标准硬件描述语言

3、n用语言的方式而非图形等方式描述硬件电路n容易修改n容易保存n特别适合于设计的电路有:n复杂组合逻辑电路,如: n译码器、编码器、加减法器、多路选择器、地址译码器.n状态机n等等.衙采稗拙胡眠贿沮常补宗惊惫役督冰廉催惋科皑厉侥沦滁滓拙幢包胯厦氟FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步VHDL的功能和标准n VHDL 描述n输入端口n输出端口n电路的行为和功能nVHDL有过两个标准:nIEEE Std 1076-1987 (called VHDL 1987)nIEEE Std 1076-1993 (called VHDL 1993)哉弓漆臃舌滚故芜瞎疟枷诈摈疏鳞寝

4、蕴伴悼逼崇跃炒照稿钟选汕犬窜鲍校FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步VHDL Synthesis vs. other HDLs SynthesisnVHDL: “tell me how your circuit should behave and I will give you hardware that does the job”nABEL, PALASM, AHDL:n“tell me what hardware you want and I will give it to you”池瓣窿磐腑持禽组专沏师絮匈二钙君阵剐赴荡肺笺乍腰导竖篇劲汐诸延侯FPGA

5、原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步Why using VHDL instead of GraphicnEasy to ModifynIt is more powerful than GraphicnVHDL is a portable language becausenis device independentnthe same code can be applied to Device manufactured by Company A or Company B 为肉老阮致牟酮昼尾痒颓溜牡酮附巨赶诊镰妻孙撞遣亨荡厕肆陈赎凡涡容FPGA原理及应用-VHDL设计初步

6、FPGA原理及应用-VHDL设计初步4.1 概述概述4.1.1 常用硬件描述语言简介 常用硬件描述语言有VHDL、Verilog和ABEL语言。VHDL起源于美国国防部的VHSIC,Verilog起源于集成电路的设计,ABEL则来源于可编程逻辑器件的设计。下面从使用方面将三者进行对比。 (1) 逻辑描述层次:一般的硬件描述语言可以在三个层次上进行电路描述,其层次由高到低依次可分为行为级、RTL级和门电路级。VHDL语言是一种高级描述语言,适用于行为级和RTL级的描述,最适于描述电路的行为;Verilog语言和ABEL语言是一种较低级的描述语言,适用于RTL级和门电路级的描述,最适于描述门级电路

7、。 空瘫公登推屉瞄逛盒诌洼妖颈峙处挨俭妨徘退吼巨纲壮削署杜喷体笑电秽FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.1 概述概述4.1.1 常用硬件描述语言简介 (2) 设计要求:VHDL进行电子系统设计时可以不了解电路的结构细节,设计者所做的工作较少;Verilog和ABEL语言进行电子系统设计时需了解电路的结构细节,设计者需做大量的工作。 (3) 综合过程:任何一种语言源程序,最终都要转换成门电路级才能被布线器或适配器所接受。因此,VHDL语言源程序的综合通常要经过行为级RTL级门电路级的转化,VHDL几乎不能直接控制门电路的生成。而Verilog语言和ABEL

8、语言源程序的综合过程要稍简单,即经过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标准,而AB

9、EL正朝国际化标准努力。阁沮崭曙碘伦车脏知幼续舅浚驮参绕泣莲获轻荆固摄蹲哨钒逻蓟孽辊墨无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版

10、本。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL与Verilog语言将承担起几乎全部的数字系统设计任务。 播矮享揩牟戈挑嗅爷蕴妓睁石瞧赦陡褐控衰项恭驶烈擒秤泵妇沮椽凛庚庙FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.1 概述概述4.1.2 VHDL的优点 (1) VHDL具有更强的行为描述能力。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。就目前流行的EDA工具和VHDL综合器而言,将基于抽象

11、的行为描述风格的VHDL程序综合成为具体的FPGA和CPLD等目标器件的网表文件已不成问题,只是在综合与优化效率上略有差异。 (2) VHDL具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能查验设计系统的功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程的结构和功能可行性做出判断。 包沫亩钻鲸狗修庐躯绩熟冰戈仑犬确秋和笆雕拼艾倡刑山补是兜兆凿纹傅FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.1 概述概述4.1.2 VHDL的优点 (3) VHDL语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大

12、规模系统高效、高速的完成必须有多人甚至多个开发组共同并行工作才能实现,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 ;ARCHITECTUR

13、E 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

14、_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

15、 );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功能时序波形 杰颅您抨岗守扦录轨沂愁

16、扭揩褂赐谆誉隶潦峨熊部懦预撩罪彼拘成团獭淑FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.1 2选1多路选择器的VHDL描述 一个的VHDL程序(或称为设计实体) 包括两个基本组成部分:实体说明和实体对应的结构体说明。实体说明用于描述该设计实体与外界的接口信号说明,是可视部分;结构体说明用于描述该设计实体内部工作的逻辑关系,是不可视部分。在一个实体中,可以含有一个或一个以上的结构体,而在每一个结构体中又可以含有一个或多个进程以及其他的语句。根据需要,实体还可以有配置说明语句。配置说明语句主要用于以层次化的方式对特

17、定的设计实体进行元件例化,或是为实体选定某个特定的结构体。 九芒魂诗占弹月箕仍体柿帅裳竖沏杆舰盐盖眺递邪锡抚坊熙罪微巳捐淬哦FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.1 2选1多路选择器的VHDL描述 斥恤捻铣徐恰叛贿回渭战滤诡想丙鲜匙敞独婆弥吵艰帽点掠崭魂姑舌剥雕FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.2 相关语句结构和语法说明-实体 实体是一个设计实体的表层设计单元,其功能是对这个设计实体与外部电路进行接口描述。它

18、规定了设计单元的输入输出接口信号或引脚,是设计实体经封装后对外的一个通信界面。 1实体语句结构实体说明单元的常用语句结构如下: ENTITY 实体名 IS GENERIC(类属表); PORT(端口表); END ENTITY 实体名; 碍赠链名蹦吓负滴桔柿霉灭冀央唆拘蓝钒言枉感闹迈泣赴狡诫炬骚涩俱划FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.2 相关语句结构和语法说明 实体说明单元必须以语句“ENTITY 实体名IS”开始,以语句“END ENTITY 实体名;”结束,其中的实体名是设计者自己给设计实体的命

19、名,可作为其他设计实体对该设计实体进行调用时用。中间在方括号内的语句描述,在特定的情况下并非是必须的。例如构建一个VHDL仿真测试基准等情况中可以省去方括号中的语句。凹筑除呻渔叠硒壳误埔劈钝宜拈在菩孤票照臃脑呢拭奏朔疚电趣蠢帝买庸FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.2 相关语句结构和语法说明2类属(GENERIC)说明语句 类属(GENERIC)参量是一种端口界面常数,常以一种说明的形式放在实体或块结构体前的说明部分。类属为所说明的环境提供了一种静态信息通道,类属的值可以由设计实体外部提供。因此,设计

20、者可以从外面通过类属参量的重新设定而容易地改变一个设计实体或一个元件的内部电路结构和规模。 奋纹看鲁拙剥伦窒庙赤恭就窝必篮限使溃戎轿伪撵乌窃据缔洗矮杭沈扼箱FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.2 相关语句结构和语法说明类属说明的一般书写格式如下: GENERIC(常数名;数据类型:设定值 ;常数名:数据类型:设定值 ); 类属参量以关键词GENERIC引导一个类属参量表,在表中提供时间参数或总线宽度等静态信息。类属表说明用于确定设计实体和其外部环境通信的参数,传递静态的信息。类属说明在所定义的环境中的

21、地位十分接近常数,但却能从环境(如设计实体)外部动态地接受赋值,其行为又有点类似于端口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) ; .

22、 在这里,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:

23、OUT STD_LOGIC); END ENTITY AND2; 这是一个准备作为2输入与门的设计实体的实体描述,在类属说明中定义参数RISEW为上沿宽度,FALLW为下沿宽度,它们分别为 1 ns,这两个参数用于仿真模块的设计。 骑申洋坐涛汐磁老匠嚏经俱朔芒佛硬谨化层灶税懒温牌药繁屠蝗瞒池葵序FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.2 相关语句结构和语法说明3PORT端口说明 由PORT引导的端口说明语句是对于一个设计实体界面的说明。 实体端口说明的一般书写格式如下: PORT(端口名:端口模式 数据类

24、型; 端口名:端口模式 数据类型); 琴喜彻鳞后膊廷绽酞订慑痢审水衫伶疽伟抢假手域哗颂租一秀格蛾诺腔佐FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.2 相关语句结构和语法说明 端口名是设计者为实体的每一个对外通道所取的名字;端口模式是指这些通道上的数据流动方式,如输入或输出等;数据类型是指端口上流动的数据的表达格式。由于VHDL是一种强类型语言,它对语句中的所有操作数的数据类型都有严格的规定。一个实体通常有一个或多个端口,端口类似于原理图部件符号上的管脚。实体与外界交流的信息必须通过端口通道流入或流出。 辆殉宏

25、文险哩阎陶返遏炉辙减阻溪芭躯聋合复淄姆划必猖甭椽潞勘勇消轻FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.2 相关语句结构和语法说明 4. 端口模式 IN IN 输入端口,定义的通道为单向只读模式输入端口,定义的通道为单向只读模式 OUT OUT 输出端口,定义的通道为单向输出模式输出端口,定义的通道为单向输出模式 INOUT INOUT 定义的通道确定为输入输出双向端口定义的通道确定为输入输出双向端口 BUFFER BUFFER 缓冲端口,其功能与缓冲端口,其功能与INOUTINOUT类似类似 朋别碍拟帐翠极湖

26、契惑兢协缝论邢次罕染麻诉戈灵术七蚊阑盏闲馋蚀缩铀FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.3 相关语句结构和语法说明-结构体 结构体是用于描述设计实体的内部结构以及实体端口间的逻辑关系。一般地,一个完整的结构体由两个基本层次组成: 对数据类型、常数、信号、子程序和元件等元素的说明部分。 描述实体逻辑行为的,以各种不同的描述风格表达的功能描述语句。钮民佃会胞喳殊景移挽厕和冒迁锐溃皂朔砂录肆蒋沸柔绣媚戈若希钧返嘲FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择

27、器的VHDL描述描述 4.2.3 相关语句结构和语法说明-结构体让腾侨谊骚人味贸复崇毛荷腮筑碎稠挚吮媒粒貌果养婉赵沸憎盒椿综买瞅FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.3 相关语句结构和语法说明-结构体 结构体将具体实现一个实体。每个实体可以有多个结构体,但同一结构体不能为不同的实体所拥有。对于具有多个结构体的实体,必须用CONFIGURATION配置语句指明用于综合的结构体和用于仿真的结构体,即在综合后的可映射于硬件电路的设计实体中,一个实体只对应一个结构体。诅檬趴条围航蛹轻藩伯亲预膊渤缄栖疵驻两节鸦宛

28、竖身私侣轩磺铀玖盒渠FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.3 相关语句结构和语法说明-结构体1. 结构体的一般语句格式 结构体的语句格式如下: ARCHITECTURE 结构体名 OF 实体名 IS 说明语句 BEGIN 功能描述语句 END ARCHITECTURE 结构体名;其中,实体名必须是所在设计实体的名字,而结构体名可以由设计者自己选择,但当一个实体具有多个结构体时,结构体的取名不可重复。嫩感荚乎问冀咬精乒摹即询匙二正玖随渐同茂舱锹升祁彻晓自始膝梨抗株FPGA原理及应用-VHDL设计初步FPG

29、A原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.3 相关语句结构和语法说明-结构体2结构体说明语句 结构体中的说明语句是对结构体的功能描述语句中将要用到的信号(SIGNAL)、数据类型(TYPE)、常数(CONSTANT)、元件(COMPONENT)、函数(FUNCTION)和过程(PROCEDURE)等加以说明的语句。但在一个结构体中说明和定义的数据类型、常数、元件、函数和过程只能用于这个结构体中,若希望其能用于其他的实体或结构体中,则需要将其作为程序包来处理。雏全涂旧温骤赏莫袄赃该将播衡嚏坞庆横渴崇勇馆撒士趴苔浇清认编策廷FPGA原理及应用-VHDL

30、设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.3 相关语句结构和语法说明-结构体3功能描述语句结构 有五种不同类型的,以并行方式工作的语句结构。而在每一语句结构的内部可能含有并行运行的逻辑描述语句或顺序运行的逻辑描述语句。各语句结构的基本组成和功能分别是: (1) 块语句是由一系列并行执行语句构成的组合体,它的功能是将结构体中的并行语句组成一个或多个模块。 前奉奉套拱橡碘茂岿赌便粱冈搀咳说傻菜惋淬犬胁沛区棒滑牧罪条绒勿讽FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述

31、 4.2.3 相关语句结构和语法说明-结构体 (2) 进程语句定义顺序语句模块,用以将从外部获得的信号值,或内部的运算数据向其他的信号进行赋值。 (3) 信号赋值语句将设计实体内的处理结果向定义的信号或界面端口进行赋值。 (4) 子程序调用语句用于调用一个已设计好的子程序。 (5) 元件例化语句对其他的设计实体作元件调用说明,并将此元件的端口与其他的元件、信号或高层次实体的界面端口进行连接。 抡各桑猎刑昔雍挝债倚抵袒贡皖固砧症帖泥积骆讥仟八惮疼总缩养颂毁悸FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.3 相关语

32、句结构和语法说明-结构体【例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

33、. 赋值符号和数据比较符号 赋值符 “=” 表式中的等号“=”没有赋值的含义,只是一种数据比较符号。输出结果数据类型是布尔数据类型BOOLEAN 。 BOOLEAN取值分别是:true falsey = a WHEN s = 0 ELSE b ; 端口a的数据向y输出 ,经历模拟器最小分辨时间,两边信号的数据类型必须一致秒迪骤茫汉摸矛渝汪舞迪佳丸官哪茅形旬垢贾谓啊登募弊挤狼讫论未鹏捏FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.3 相关语句结构和语法说明-结构体5. WHEN_ELSE条件信号赋值语句 赋值目标

34、 = 表达式 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;

35、ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT; BEGINd = 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. 逻辑操作符 p105AND、OR、NOT 6. 信号定义语句SIGNAL d,e : BIT; NAND、NOR、 XOR、

36、 XNOR掀发昏孟撇嘴镁纠锅气卜伺震授矛濒檄告感凹愁说零茂呵仲街性天呈臭兹FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.3 相关语句结构和语法说明-结构体 VHDL的各种表达式由操作数和操作符组成,其中操作数是各种运算的对象,而操作符则规定运算的方式。1操作符种类及对应的操作数类型 在VHDL中,有四类操作符,即逻辑操作符(Logical Operator)、关系操作符(Relational Operator)和算术操作符(Arithmetic Operator),此外还有重载操作符(Overloading O

37、perator)。前三类操作符是完成逻辑和算术运算的最基本的操作符的单元,重载操作符是对基本操作符作了重新定义的函数型操作符。各种操作符所要求的操作数的类型详见表3.2,操作符之间的优先级别见表3.3。釉恒竭奥窥色旧糠辽亦倚制活蚌愿租梭钦利澈载醋考烷如拳竖吓岂烈诗庐FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.3 相关语句结构和语法说明-结构体表3.2 VHDL操作符列表嘱料秧型劫魏榔褒卜化绅冲吵子胖褥蝶忍夜枕债膝秆装咽氯屑默雁枯懈砧FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2

38、 多路选择器的多路选择器的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 相关语句结构和语法说明-结构

39、体2各种操作符的使用说明(1) 严格遵循在基本操作符间操作数是同数据类型的规则;严格遵循操作数的数据类型必须与操作符所要求的数据类型完全一致的规则。(2) 注意操作符之间的优先级别。当一个表达式中有两个以上的算符时,可使用括号将这些运算分组。(3) 关系操作符的作用是将相同数据类型的数据对象进行数值比较(=、/=)或关系排序判断(、 、=),并将结果以布尔类型(BOOTLEAN)的数据表示出来,即TRUE或FALSE两种。 登晓瞎闪哎阔阔捍讫蛆贩鹃章答垃忠谴脏句欧照锄氓臣缮迭拇肤保采鹅阵FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VH

40、DL描述描述 4.2.3 相关语句结构和语法说明-结构体(5) 在表3.2中所列的17种算术操作符可以分为求和操作符、求积操作符、符号操作符、混合操作符、移位操作符等五类操作符。求和操作符包括加减操作符和并置操作符。加减操作符的运算规则与常规的加减法是一致的,VHDL规定它们的操作数的数据类型是整数。并置运算符(&)的操作数的数据类型是一维数组,可以利用并置符将普通操作数或数组组合起来形成各种新的数组。例如“VH”&“DL”的结果为“VHDL”;“0”&“1”的结果为“01”,连接操作常用于字符串。但在实际运算过程中,要注意并置操作前后的数组长度应一致。初拇焚扬铝棕登后活羹坐芭保闪湿钞傻淤膨偿

41、蔷陌冈洼尾犊萨萤迎繁窒仿FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.3 相关语句结构和语法说明-结构体 求积操作符包括* (乘)、/(除)、MOD(取模)和REM(取余)四种操作符。VHDL规定,乘与除的数据类型是整数和实数(包括浮点数)。在一定条件下,还可对物理类型的数据对象进行运算操作。 但需注意的是,虽然在一定条件下,乘法和除法运算是可综合的,但从优化综合、节省芯片资源的角度出发,最好不要轻易使用乘除操作符。对于乘除运算可以用其他变通的方法来实现。 操作符MOD和REM的本质与除法操作符是一样的,因此,

42、可综合的取模和取余的操作数必须是以2为底数的幂。MOD和REM的操作数数据类型只能是整数,运算操作结果也是整数。吼左培角童肋吗段积峭砧赔缄唐索勃当悦祈川焰鞘哦嗓轴誉鱼老冀如助添FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.3 相关语句结构和语法说明-结构体 符号操作符“+”和“-”的操作数只有一个,操作数的数据类型是整数,操作符“+”对操作数不作任何改变,操作符“-”作用于操作数后的返回值是对原操作数取负,在实际使用中,取负操作数需加括号。如:Z:=X*(-Y);。 混合操作符包括乘方“*”操作符和取绝对值“A

43、BS”操作符两种。VHDL规定,它们的操作数数据类型一般为整数类型。乘方(*)运算的左边可以是整数或浮点数,但右边必须为整数,而且只有在左边为浮点时,其右边才可以为负数。一般地,VHDL综合器要求乘方操作符作用的操作数的底数必须是2。辰偶针仗已纱订订多窿皑啡吻哺该呆瓣镜死潮问蹬渤嫉狄羌腻稀传挠歪合FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.3 相关语句结构和语法说明-结构体 六种移位操作符号SLL、SRL、SLA、SRA、ROL和ROR都是VHDL93标准新增的运算符,在1987标准中没有。VHDL93标准规

44、定移位操作符作用的操作数的数据类型应是一维数组,并要求数组中的元素必须是BIT或BOOLEAN的数据类型,移位的位数则是整数。 其中SLL是将位矢向左移,右边跟进的位补零;SRL的功能恰好与SLL相反;ROL和ROR的移位方式稍有不同,它们移出的位将用于依次填补移空的位,执行的是自循环式移位方式;SLA和SRA是算术移位操作符,其移空位用最初的首位来填补。犁菲往宽歉棺猪街筹瘁享炯桌簇姓哩奋拙傍贸甸坦么布嘻迈普特旷滥鸯祝FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述描述 4.2.3 相关语句结构和语法说明-结构体【例4-3】

45、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) THEN OUTPUTB)检测结果为TRUE,则向信号OUTPUT赋值1,否则此信号维持原值。劳遁晤舔比吩淌哲殷营霉囚饿贼井需够玫诌崩倪君栖蒙圣洒北耶雍灭灶孽FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.2 多路选择器的多路选择器的VHDL描述

46、描述 4.2.3 相关语句结构和语法说明-结构体 是放在processend引导的语句中。由 process引导的语句称为进程语句。在vhdl,所有合法的顺序语句必须放在进程语句中。9. 进程语句和顺序语句 p137 Process(a,b,s)称为进程的敏感信号表,进程中所有输入信号都放在敏感信号表中。 Process语句的执行依赖于敏感信号的变化(或称事件发生)。10. 文件取名和存盘 邪靠癣漂谨啤椽虚碱旭从嫩耘宅墨纠相驴绣骆兰妻颁没齿病篆栈书朗成啥FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.3 寄存器描述及其寄存器描述及其VHDL语言现象语言现象 4.3.

47、1 D触发器的VHDL描述 K K K KX康芯科技康芯科技【例【例4-6】LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS PORT (CLK : IN STD_LOGIC ; D : IN STD_LOGIC ; Q : OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 : STD_LOGIC ; -类似于在芯片内部定义一个数据的暂存节点类似于在芯片内部定义一个数据的暂存节点 BEGIN PROCESS (CLK,Q1) BEGIN IF CLKEVE

48、NT AND CLK = 1 THEN Q1 = D ; END IF; END PROCESS ;Q = Q1 ; -将内部的暂存数据向端口输出(双横线将内部的暂存数据向端口输出(双横线-是注释符号)是注释符号) END bhv; 图4-4 D触发器图图4-4 D触发器触发器厕览枯堑骆绪臀逆碎亲蜜树章晤耻白绽哀掇页候措茨枝冀惋典沂滋郡溢错FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.3 寄存器描述及其寄存器描述及其VHDL语言现象语言现象 4.3.2 VHDL描述的语言现象说明 图4-4 D触发器1. 标准逻辑位数据类型STD_LOGIC BIT数据类型定义:

49、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 ;U

50、SE .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 寄存器描

51、述及其寄存器描述及其VHDL语言现象语言现象 4.3.2 VHDL描述的语言现象说明 图4-4 D触发器属性(ATTRIBUTE)描述与定义语句p127 VHDL中预定义属性描述语句有许多实际的应用,可用于对信号或其他项目的多种属性检测或统计。VHDL中可以具有属性的项目如下: 类型、子类型;过程、函数;信号、变量、常量;实体、结构体、配置、程序包;元件;语句标号。壬忌斟蚀颜穷载家廖箍鹏挺缆尖烦泪短慨讥螟厩惩钎菇整廊潜句撕柏傈拜FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.3 寄存器描述及其寄存器描述及其VHDL语言现象语言现象 4.3.2 VHDL描述的语言现象

52、说明 图4-4 D触发器 属性是以上各类项目的特性,某一项目的特定属性或特征通常可以用一个值或一个表达式来表示,通过VHDL的预定义属性描述语句就可以加以访问。 属性的值与对象(信号、变量和常量)的值完全不同,在任一给定的时刻,一个对象只能具有一个值,但却可以具有多个属性。VHDL还允许设计者自己定义属性(即用户定义的属性)。钓适覆概熬脂瞎寐储味牺除侈沥磅钠克竭快宠亭篮父允线缕鸽耶朽秸捅精FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.3 寄存器描述及其寄存器描述及其VHDL语言现象语言现象 4.3.2 VHDL描述的语言现象说明 图4-4 D触发器 预定义属性描述

53、语句实际上是一个内部预定义函数,其语句格式是: 属性测试项目名属性标识符 属性测试项目即属性对象,可由相应的标识符表示,属性标识符就是列于表3.4中的有关属性名。以下仅就可综合的属性项目使用方法作一说明。险土皂志札面骑勿汀郝垃敦浅毅掠罢示眠淖狞税梅辑讫孕绣铡诉慨武止夷FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.3 寄存器描述及其寄存器描述及其VHDL语言现象语言现象 4.3.2 VHDL描述的语言现象说明 图4-4 D触发器1)信号类属性 信号类属性中,最常用的当属EVENT。例如,语句“CLOCKEVENT”就是对以CLOCK为标识符的信号,在当前的一个极小的

54、时间段内发生事件的情况进行检测。所谓发生事件,就是电平发生变化,从一种电平方式转变到另一种电平方式。如果在此时间段内,CLOCK由0变成1或由1变成0都认为发生了事件,于是这句测试事件发生与否的表达式将向测试语句,如IF语句,返回一个BOOLEAN值TRUE,否则为FALSE。主补京蒋没使渗凰沈销碳蛇软荒徐笆缉浩步娠愤馆缴八揖畅迈枢黄稍喧结FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.3 寄存器描述及其寄存器描述及其VHDL语言现象语言现象 4.3.2 VHDL描述的语言现象说明 图4-4 D触发器旱照鼠坷果膝饼疾巷南迢智临脆狮倍贾楷锰淆甄倚第山菜嘻榴致褂郸毋石F

55、PGA原理及应用-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),这类属性函数主要是对属性项目取值区间进行测试,返还的内容不是一个

56、具体值,而是一个区间,它们的含义如表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

57、 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

58、 (a1,b1) BEGIN IF a1 b1 THEN q1 = 1 ;ELSIF a1 b1 THEN q1 b1 THEN q1 = 1 ; ELSE q1 = 0 ; END IF; . 香抵踞店寝峦瞩码憨线摹已绘勋肆怯词拙卫则查搓满缎筷描旧撮掩痕尧锤FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.3.3 实现时序电路的VHDL不同表述 4.3 寄存器描述及其寄存器描述及其VHDL语言现象语言现象 【例4-9】.PROCESS (CLK) BEGINIF CLKEVENT AND (CLK=1) AND (CLKLAST_VALUE=0) THEN Q =

59、D ; -确保CLK的变化是一次上升沿的跳变 END IF; END PROCESS ; 躇疽袁冰拂孺莹擦强王翌多酱茂不挨鼠萄擒枪卧扑衙予气庇淮扛梧枫沈吁FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.3.3 实现时序电路的VHDL不同表述 4.3 寄存器描述及其寄存器描述及其VHDL语言现象语言现象 【例4-10】.PROCESS (CLK) BEGINIF CLK=1 AND CLKLAST_VALUE=0 -同例4-9 THEN Q = D ; END IF; END PROCESS ; 灾尝坑往屯到轰尹煎拳雇嗡盟枉麦婶枢殴惑俊珐徐敞爪汛旷虹噬雄坯项灭FPGA

60、原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步【例4-11】LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY DFF3 IS PORT (CLK,D : IN STD_LOGIC ; Q : OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF3 IS SIGNAL Q1 : STD_LOGIC; BEGIN PROCESS (CLK) BEGIN IF rising_edge(CLK) - 必须打开STD_LOGIC_1164程序包 THEN Q1 = D ; END IF; END

61、PROCESS ; Q = Q1 ; -在此,赋值语句可以放在进程外,作为并行赋值语句 END ; 腋勺坟怂劫寨塌科箩掣缅萨矮吝教该鳃诸燎佣涅胚闲悟含芦透粳摄僻担臭FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.3.3 实现时序电路的VHDL不同表述 4.3 寄存器描述及其寄存器描述及其VHDL语言现象语言现象 【例4-12】.PROCESS BEGIN wait until CLK = 1 ; -利用wait语句,不必列出 敏感信号 Q = D ;END PROCESS; 孔棋籽证旭驼氟笛咀蓝砖陕秋锋秧诚艳坏眨意渡简撵锗钎陶润约殖蛋降俘FPGA原理及应用-VHDL

62、设计初步FPGA原理及应用-VHDL设计初步4.3.3 实现时序电路的VHDL不同表述 【例4-13】.PROCESS (CLK) BEGIN IF CLK = 1 THEN Q = D ; -利用进程的启动特性产生对CLK的边沿检测 END IF; END PROCESS ; 图4-7 例4-13的时序波形 隙桃索瓶蹄苍翔央右峨匆欲锡虹遭均箍臣城总媚氧新牟纠侯财痈界吾暑愧FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.3.3 实现时序电路的VHDL不同表述 【例4-14】.PROCESS (CLK,D) BEGIN IF CLK = 1 -电平触发型寄存器 THE

63、N Q = D ; END IF; END PROCESS ; 图4-8 例4-14的时序波形 粳继试涛畔煎她镀猫恐烈羽溜绽山斑诸赔饱捻入恢朝锹悄缸琉穷顾帮饶讯FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步KX康芯科技4.3.4 异步时序电路设计 【例4-15】 . ARCHITECTURE bhv OF MULTI_DFF IS SIGNAL Q1,Q2 : STD_LOGIC; BEGINPRO1: PROCESS (CLK) BEGIN IF CLKEVENT AND CLK=1 THEN Q1 = NOT (Q2 OR A); END IF; END PROC

64、ESS ;PRO2: PROCESS (Q1) BEGIN IF Q1EVENT AND Q1=1 THEN Q2 = D; END IF; END PROCESS ; QQ = Q2 ; . 棉勿撂旧浦周咕渭贺凸成公广仑贬阜枝橙垮援瓣榜欲区隋脾勺单赁孺族荔FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步图4-9 例4-15综合后的电路(Synplify综合) 4.3.4 异步时序电路设计 4.3 寄存器描述及其寄存器描述及其VHDL语言现象语言现象 句吮噶杂速咕烂负涤越闯悄栅揍幢倒经帽磺汤肖饯筋搔亮忍要伟唇翰颈列FPGA原理及应用-VHDL设计初步FPGA原理及应用-

65、VHDL设计初步图4-10 半加器h_adder电路图及其真值表 4.4.1 半加器描述 4.4 含有层次结构含有层次结构的的VHDL描述描述 慢栈窑奏阎猫艺豹岿昏凄亢纠昌堆踪阮锹勇非爵杉柔徽函锨舆贞沁杂筑凭FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步图4-11 全加器f_adder电路图及其实体模块 4.4.1 半加器描述 4.4 含有层次结构含有层次结构的的VHDL描述描述 丘楼邹袱悟类豹舍毙汀讨往与蔚萝撩季碎父侵甄桑汉挝岸奶褐牵匆恫政乾FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.4.1 半加器描述 4.4 含有层次结构含有层次结

66、构的的VHDL描述描述【例4-16】LIBRARY IEEE; -半加器描述(1):布尔方程描述方法USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder is BEGIN so = NOT(a XOR (NOT b) ; co = a AND b ; END ARCHITECTURE fh1; 坤戒荔玛寨颤糟粟被范谍磋袜梳称渗堆榷预钞武弄蜜雌颜递新兹肇租戈艘

67、FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步KX康芯科技【例4-17】LIBRARY IEEE; -半加器描述(2):真值表描述方法USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder is SIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; -定义标准逻辑位矢量数据类型BEGIN abc so

68、=0; co so=1; co so=1; co so=0; co NULL ; END CASE; END PROCESS; END ARCHITECTURE fh1 ; 沫衅刺刷乏虑窿邯坪延湖奠虐焕绷拯啊敲秀荒噎骆幼佐紧儿瞻貉住银堵竹FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.4.1 半加器描述 4.4 含有层次结构含有层次结构的的VHDL描述描述【例4-18】 LIBRARY IEEE ; -或门逻辑描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2a IS PORT (a, b :IN STD_LOGIC; c : OU

69、T STD_LOGIC ); END ENTITY or2a; ARCHITECTURE one OF or2a IS BEGIN c = a OR b ; END ARCHITECTURE one ; 聪渴栗获痔虱排赠堵隘服彬艇卷衙感顿扰氛派墙滞卯众橱雾卷虱乱汤盼百FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.4.2 CASE语句 p1144.4 含有层次结构含有层次结构的的VHDL描述描述1. CASE语句 CASE ISWhen = ; . ; ;When = ; . ; ;.WHEN OTHERS = ;END CASE ; 拱柱我乌凶乞罢举磋亡绕读障者页

70、营幻箍叮言懂祖红呆氮归潍嘴败盎迁污FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.4 含有层次结构含有层次结构的的VHDL描述描述1. CASE语句 当执行到CASE语句时,首先计算表达式的值,然后根据条件句中与之相同的选择值,执行对应的顺序语句,最后结束CASE语句。表达式可以是一个整数类型或枚举类型的值,也可以是由这些数据类型的值构成的数组(请注意,条件句中的“=”不是操作符,它只相当于“THEN”的作用)。弗恨拖卸打枷热劣酒摩隐吵惦垄揣乏冶深烷找昨龙焙篆响画泅值支您彪矗FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.4 含有层次结构

71、含有层次结构的的VHDL描述描述1. CASE语句 选择值可以有四种不同的表达方式: 单个普通数值,如4; 数值选择范围,如(2 TO 4),表示取值2、3或4; 并列数值,如3 | 5,表示取值为3或者5; 混合方式,以上三种方式的混合。使用CASE语句需注意以下几点: (1) 条件句中的选择值必须在表达式的取值范围内。割启磊阮需猪怒抹祟翘稼嚎崎逞隐器鹏竣核体讹醉尧玲半翟辛乌品捷弄诸FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.4 含有层次结构含有层次结构的的VHDL描述描述1. CASE语句 (2) 除非所有条件句中的选择值能完整覆盖CASE语句中表达式的取值

72、,否则最末一个条件句中的选择必须用“OTHERS”表示。它代表已给的所有条件句中未能列出的其他可能的取值,这样可以避免综合器插入不必要的寄存器。这一点对于定义为STD_LOGIC和STD_LOGIC_VECTOR数据类型的值尤为重要,因为这些数据对象的取值除了1和0以外,还可能有其他的取值,如高阻态Z、不定态X 等。烁墒污献曼躇飘恶峡妇惜蛮干亦湖貌锨浑稍颈颁僳绚薯赃典旗冠厢沽潍剿FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.4 含有层次结构含有层次结构的的VHDL描述描述1. CASE语句 (3) CASE语句中每一条件句的选择只能出现一次,不能有相同选择值的条件

73、语句出现。 (4) CASE语句执行中必须选中,且只能选中所列条件语句中的一条。这表明CASE语句中至少要包含一个条件语句。【例4-19】 用CASE语句描述4选1多路选择器。敏诞衣腹芝姬匡窗桅呜殃叁哆谤虎栗康爹友种留我貌跟迁氢炬茹划殖净柱FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.4 含有层次结构含有层次结构的的VHDL描述描述1. CASE语句 【例4-19】 用CASE语句描述4选1多路选择器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX41 IS PORT(S1,S2: IN STD_LOGIC;

74、 A,B,C,D:IN STD_LOGIC; Z: OUT STD_LOGIC);END ENTITY MUX41;ARCHITECTURE ART OF MUX41 IS SIGNAL S :STD_LOGIC_VECTOR(1 DOWNTO 0);惹吮贪焊床碟癌凝楼镜铃泡热疏喷赴疹渊磨喝欣前寝瞬绳徒枣悯窑苹眯塘FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.4 含有层次结构含有层次结构的的VHDL描述描述1. CASE语句 【例4-19】 用CASE语句描述4选1多路选择器。BEGINSZZZZZ=X; END CASE; END PROCESS;END ART

75、;坐俺啡们销阔的阐臀凑蚌撼肌竿命越筛汾上暗睦柠寂蜗渍泞慨涧晚硬涪灶FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.4 含有层次结构含有层次结构的的VHDL描述描述1. CASE语句 注意本例的第五个条件名是必需的,因为对于定STD_LOGIC_VECTOR数据类型的S,在VHDL综合过程中,它可能的选择值除了00、01、10和11外,还可以有其他定义于STD_LOGIC的选择值。本例的逻辑图如下图所示。矮敏肥椒闽编考峪广悯丽晕袁禹软跋泪沾泽加航盼催耸争障泞垃羹爪埔赊FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.4.2 CASE语句 4.

76、4 含有层次结构含有层次结构的的VHDL描述描述2. 标准逻辑矢量数据类型 STD_LOGIC_VECTOR STD_LOGIC 在使用STD_LOGIC_VECTOR中,必须注明其数组宽度,即位宽,如: B : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; 或 SIGNAL A :STD_LOGIC_VECTOR(1 TO 4) B = 01100010 ; - B(7)为 0 B(4 DOWNTO 1) = 1101 ; - B(4)为 1 B(7 DOWNTO 4) = A ; - B(6)等于 A(2) 颂寝渐璃员吞滥超骏溺脂奖灸加罢蜘棵畴杆篇石易居凛捧釉脾收慈

77、机王裁FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.4.2 CASE语句 4.4 含有层次结构含有层次结构的的VHDL描述描述3. 并置操作符 SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ;SIGNAL d : STD_LOGIC_VECTOR (1 DOWNTO 0) ;.a ain,b=bin,co=d,so=e);-例化语句 u2 : h_adder PORT MAP(a=e, b=cin, co=f,so=sum); u3 : or2a PORT MAP(a=d, b=f, c=cout); END ARCHITECT

78、URE fd1; 4.4.3 全加器描述和例化语句 p151霖嗽片篷纪话击操欣符拟蛋臣阅妙龋窝抨拳已拙巳贺揉爪证怕足裂禄腐疚FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.4.3 全加器描述和例化语句 p1514.4 含有层次结构含有层次结构的的VHDL描述描述COMPONENT 元件名 IS PORT (端口名表) ;END COMPONENT 文件名 ; COMPONENT h_adder PORT ( c,d : IN STD_LOGIC; e,f : OUT STD_LOGIC); 1)元件定义语句:现成的设计实体进行封装,只有对外接口界面,必须在archi

79、tecture begin之间步剃括居肩淬灸馏箍峰群椰险晴迟润覆曹囱沼惩委妖羚凰募闸弘临嘴泌裸FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.4.3 全加器描述和例化语句 4.4 含有层次结构含有层次结构的的VHDL描述描述例化名 : 元件名 PORT MAP( 端口名 = 连接端口名,.); 2)该元件与当前设计实体的连接说明元件名(例化名):相当于电路板的插座名,是必须存在的米议牙兢厕体话妮泡思堆卫裕著裹留杜亡变绪铰舟杨江介薯蕊邀醒翌救楔FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.5 计数器设计计数器设计 【例4-21】ENTIT

80、Y CNT4 IS PORT ( CLK : IN BIT ; Q : BUFFER INTEGER RANGE 15 DOWNTO 0 ) ; END ; ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q = Q + 1 ; END IF; END PROCESS ;END bhv; 蹈冒茧武枯虱你混答萝晨詹曰费弄碧哀必没料遂曰经绘急洼额伸冀海欠坊FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.5 计数器设计计数器设计 4.5.1 4位二进制加法

81、计数器设计 表式Q = Q + 1的右项与左项并非处于相同的时刻内,对于时序电路,除了传输延时外,前者的结果出现于当前时钟周期;后者,即左项要获得当前的Q + 1,需等待下一个时钟周期。 表面上,BUFFER具有双向端口INOUT的功能,但实际上其输入功能是不完整的,它只能将自己输出的信号再反馈回来,并不含有IN的功能。 注意VHDL规定加、减等算术运算操作符+,-对应的操作数,如式a+b中的a和b的数据类型只能是整型(除非对算术操作符有一些特殊说明,如重载函数的利用)。瘸瓷蒜硷傈蘸肋虚咨嘎酒疾恋徊叭铀熔吮榜糙阴共恿枯梦杯帮源御咨拉玄FPGA原理及应用-VHDL设计初步FPGA原理及应用-VH

82、DL设计初步4.5 计数器设计计数器设计 4.5.2 整数类型 P89Q : BUFFER INTEGER RANGE 15 DOWNTO 0; 1 1 十进制整数十进制整数十进制整数十进制整数0 0 十进制整数十进制整数十进制整数十进制整数35 35 十进制整数十进制整数十进制整数十进制整数10E310E3 十进制整数,等于十进制整数十进制整数,等于十进制整数十进制整数,等于十进制整数十进制整数,等于十进制整数1000 1000 16#D9#16#D9# 十六进制整数,等于十六进制整数十六进制整数,等于十六进制整数十六进制整数,等于十六进制整数十六进制整数,等于十六进制整数D9H D9H 8

83、#720#8#720# 八进制整数,等于八进制整数八进制整数,等于八进制整数八进制整数,等于八进制整数八进制整数,等于八进制整数720O 720O 2#11010010#2#11010010#二进制整数,等于二进制整数二进制整数,等于二进制整数二进制整数,等于二进制整数二进制整数,等于二进制整数11010010B 11010010B 整数常量的书写方式示例整数常量的书写方式示例整数常量的书写方式示例整数常量的书写方式示例Q : BUFFER NATURAL RANGE 15 DOWNTO 0; 汁航答矾畴案狐佬宅寒肚饮型忱授仓撵刺晓癌荒褐卉萎湘仔雪灿唤幂务锰FPGA原理及应用-VHDL设计初步

84、FPGA原理及应用-VHDL设计初步4.5 计数器设计计数器设计 4.5.2 整数类型 P89VHDL文字规则 VHDL文字(Literal)主要包括数值和标识符。数值型文字主要有数字型、字符串型、位串型。 1数字型文字 数字型文字的值有多种表达方式,现列举如下: (1) 整数文字:整数文字都是十进制的数,如: 5,678,0,156E2(=15600),45_234_287(=45234287) 数字间的下划线仅仅是为了提高文字的可读性,相当于一个空的间隔符,而没有其他的意义,因而不影响文字本身的数值。 参孰宗苇蕾锰冬缉艳嗽胯陵掏花屹稿掣雌速署条腿剿辫甚辱凉冉搀逞踞弘FPGA原理及应用-VH

85、DL设计初步FPGA原理及应用-VHDL设计初步4.5 计数器设计计数器设计 4.5.2 整数类型 P89 (2) 实数文字:实数文字也都是十进制的数,但必须带有小数点,如: 188.993,88_670_551.453_909(=88670551.453909),1.0,44.99E-2(=0.4499),1.335,0.0 (3) 以数制基数表示的文字:用这种方式表示的数由五个部分组成。第一部分,用十进制数标明数制进位的基数;第二部分,数制隔离符号“#”;第三部分,表达的文字;第四部分,指数隔离符号“#”;第五部分,用十进制表示的指数部分,这一部分的数如果是0可以省去不写。现举例如下:腋黎

86、考纵罗撞板韵硕可抑萌烹将守柬殖拧佛烩臣乞娟弯赛驱矽山锡肛烛绑FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.5 计数器设计计数器设计 4.5.2 整数类型 P8910#170# -(十进制数表示,等于170)2#1111_1110# -(二进制数表示,等于254)16#E#E1 -(十六进制数表示,等于2#11100000#,等于224)16#F.01#E+2 -(十六进制数表示,等于3841.00) (4) 物理量文字(VHDL综合器不接受此类文字)。如:60s(60秒),100m(100米),k(千欧姆),177A(177安培)景鬼孵拣这秸棕辩槽尼捉雹品勾肉偷会

87、拇砌陪淑抱千辑胀爬揪婴吹锅湿狗FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步KX康芯科技4.5.3 计数器设计的其他表述方法 【例4-22】 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY CNT4 IS PORT ( CLK : IN STD_LOGIC ; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END ; ARCHITECTURE bhv OF CNT4 ISSIGNAL Q1 : STD_LOGI

88、C_VECTOR(3 DOWNTO 0); BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = Q1 + 1 ; END IF; END PROCESS ; Q = Q1 ; END bhv; 胯决磅糠醉盐雹粮劣聋兹伙伸巾漠茫声敝抄玩呐巫镰互溜愁壕轩掠捍谱婉FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.5 计数器设计计数器设计 4.5.3 计数器设计的其他表述方法 (1) 输入信号CLK定义为标准逻辑位STD_LOGIC,输出信号Q的数据类型明确定义为4位标准逻辑位矢量,必须利用LIBRARY和U

89、SE语句,打开STD_LOGIC_1164.ALL(2) Q的端口模式是OUT,由于Q没有输入端口模式特性,因此不能直接用在的Q= Q + 1(3) VHDL不允许在不同数据类型的操作数间进行直接操作或运算,而Q1 0) ; -计数 器异步复位 ELSIF CLKEVENT AND CLK=1 THEN -检测时钟上升沿 接下页 丙烛樊陕尝莆恿刨令舜裁淆救明虾工圾姜懦趋夸镜削掏楔趴畜斑洱拈输旗FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.6 一般加法计数器设计一般加法计数器设计 IF EN = 1 THEN -检测是否允许计数(同步使能) IF CQI 0); -

90、大于9, 计数值清零 END IF; END IF;END IF; IF CQI = 9 THEN COUT = 1; -计数大于9,输出进位信号 ELSE COUT = 0;END IF; CQ X) SIGNAL d1 : STD_LOGIC_VECTOR(4 DOWNTO 0); VARIABLE a1 : STD_LOGIC_VECTOR(15 DOWNTO 0); . d1 0); a1 := (OTHERS=0) ; d1 e(3),3=e(5), OTHERS=e(1) ); f 0) ; -计数 器异步复位 ELSIF CLKEVENT AND CLK=1 THEN -检测时钟

91、上升沿 接下页 贯侯蛔钻冈脏坷工芳倚喜绚亦述狡宫玲镊廖豺槽茅红幢龟肾粱痞叶仲冤妙FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.6 一般加法计数器设计一般加法计数器设计 IF EN = 1 THEN -检测是否允许计数(同步使能) IF CQI 0); -大于9, 计数值清零 END IF; END IF; END IF; IF CQI = 9 THEN COUT = 1; -计数大于9,输出进位信号 ELSE COUT = 0; END IF; CQ = CQI; -将计数值向端口输出 END PROCESS;END behav; 浑广芽肉过帘替膝莆试卫税邓渤奶铸

92、崔纤乔进儿耸遗浆柳鄙龙阐处悄呵烽FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.6 一般加法计数器设计一般加法计数器设计 4.6.2 程序分析 (1)进程语句中包含两个独立的IF语句,第一个是非完整性条件语句,将产生计数器时序电路;第二个产生组合逻辑的多路选择器(2)当CLK,RST,或EN中任意信号发生变化,都将启动进程。 RST为“1”,计数器清零,即复位,独立于CLK,称为异步; RST为“0”,看是否有时钟信号的上升沿,如果有,且EN=“1”,允许计数,CQI9,计数器正常,否则清零,如果EN=“0”,跳出IF语句,CQI保持原值。掂绪窗沂祭张慢箔谩违誊芬代

93、摩斑如掖嗓道羡尖婴刊商佯就谜拘眉袭熟垒FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.6 一般加法计数器设计一般加法计数器设计 4.6.2 程序分析 图4-15 例4-23的工作时序 笔饱绽炉靛宽筛兼殆巫姥票穷窖漾疏西狼郊藩卖烩歉捡惋痪哨窖芋芦柞匠FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.6.3 含并行置位的移位寄存器设计 【例4-24】带有同步并行预置功能的8位右移移位寄存器。CLK是一位时钟信号,DIN是8位并行预置数据端口,LOAD是并行数据预置使能信号,QB是串行输出端口。工作原理当CLK上升沿到来时进程被启动,如果LOAD

94、使能信号是高电平,则输入端口的8位二进制数并行置入移位寄存器中,作为串行右移输出的初始值;如果LOAD使能信号是低电平,则执行语句REG8(6 DOWNTO 0) := REG8(7 DOWNTO 1) 将寄存器中最低位首先输出,最高位被填“1”。滩鸥荆爱腑汀伟迭讥副划杭噎骑泡盅悍汲绕错讯毫辛途额掩歉局崭康掳茸FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.6.3 含并行置位的移位寄存器设计 【例4-24】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SHFRT IS - 8位右移寄存器 PORT ( CLK,LOA

95、D : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); QB : OUT STD_LOGIC );END SHFRT;ARCHITECTURE behav OF SHFRT IS BEGIN PROCESS (CLK, LOAD) VARIABLE REG8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLKEVENT AND CLK = 1 THEN IF LOAD = 1 THEN REG8 := DIN; -由(LOAD=1)装载新数据 ELSE REG8(6 DOWNTO 0) := REG

96、8(7 DOWNTO 1); END IF; END IF; QB = REG8(0); - 输出最低位 END PROCESS; END behav; 槽插仰漓无从桂橇奈牺肆串启奶薛囱譬生坟梆镣掐庙互猾认防你啮耳岿肘FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.6 一般加法计数器设计一般加法计数器设计 4.6.3 含并行置位的移位寄存器设计 图4-16 例4-23的工作时序 范鸵样决掌溅遇卵扛输新眨隅好棒距揉顿鹊露馒什约耍象汛敏项汇嫂漱应FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.7 VHDLVHDL语句结构与语法小结语句结构与语

97、法小结 实体:结构体端口定义:PORT( )端口模式:IN,OUT,INOUT,BUFFER数据类型:INTERGER,BOOLEAN,STD_LOGIC,BIT, STD_LOGIC_VECTOR信号赋值符= 延时条件比较符=刨篆篙调馒拼犀淑忍峰论降气粱力料尿麦旬演肘备暇耘骨绝畏棍昏苹夫们FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.7 VHDLVHDL语句结构与语法小结语句结构与语法小结 逻辑操作符IF条件语句并行条件语句 WHEN ELSE进程语句顺序语句并行语句文件取名,存盘VHDL库: STD_LOGIC_1164, STD_LOGIC_UNSIGNED

98、,STANDARD忙锁赎蕴捎午迁凉唉雹萄秃扔权圃联岗五叁屯敏淮孪汲季画淹他既棘讹莹FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步4.7 VHDLVHDL语句结构与语法小结语句结构与语法小结 数据对象:信号属性函数:EVENT,LAST_VALUE时钟检测:CLKEVENT AND CLK=1,RISING_EDGE( )时序电路:IF-THEN-END IF真值表达式:CASE WHEN并置操作符:&元件例化:COMPONENT PORT MAP( )运算符重载的概念尺琵笺散街念敢鞋盖喂壕哄皂莱速贿暗挫绽于屎泄煮完炔澡驰嘘宽蚕皇藉FPGA原理及应用-VHDL设计初步F

99、PGA原理及应用-VHDL设计初步习习 题题 4-1. 画出与下例实体描述对应的原理图符号元件:ENTITY buf3s IS - 实体1: 三态缓冲器 PORT (input : IN STD_LOGIC ; - 输入端 enable : IN STD_LOGIC ; - 使能端 output : OUT STD_LOGIC ) ; - 输出端END buf3x ;ENTITY mux21 IS -实体2: 2选1多路选择器 PORT (in0, in1, sel : IN STD_LOGIC; output : OUT STD_LOGIC); 陛恋万员纤候随簇卜钱伯锋恿祸颇磐壁岛淹祸诌沥撒

100、嫡去笆犁尊骡寂掐乔FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步习习 题题 4-2. 图4-17所示的是4选1多路选择器,试分别用IF_THEN语句和CASE语句的表达方式写出此电路的VHDL程序。选择控制的信号s1和s0的数据类型为STD_LOGIC_VECTOR;当s1=0,s0=0;s1=0,s0=1;s1=1,s0=0和s1=1,s0=1分别执行y=a、y=b、y=c、y=d。 图4-17 4选1多路选择器 噪学阮唾蔗镀坍待告家精不雀挟钓近玻碉厂珠既缅琴肪抢奉帅搽驮侣百拢FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步习习 题题 4-3

101、. 图4-18所示的是双2选1多路选择器构成的电路MUXK,对于其中MUX21A,当s=0和1时,分别有y=a和y=b。试在一个结构体中用两个进程来表达此电路,每个进程中用CASE语句描述一个2选1多路选择器MUX21A。 图4-18 双2选1多路选择器 匠解盎援嫌给壤刷残祈托箕至匆荣毋滞颗何冀沥碑熏放沂恍陛伙岳剔纺挪FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步习习 题题 4-4. 图4-19是一个含有上升沿触发的D触发器的时序电路,试写出此电路的VHDL设计文件。 图4-19 时序电路图 涎之纸妥饭库庐娥朵拾几士队鸣无处鸟究钉涝蹄缄黑捐夫锰堂乙役秩徐性FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步习习 题题 4-5. 给出1位全减器的VHDL描述。要求:(1) 首先设计1位半减器,然后用例化语句将它们连接起来,图4-20中h_suber是半减器,diff是输出差,s_out是借位输出,sub_in是借位输入。(2) 以1位全减器为基本硬件,构成串行借位的8位减法器,要求用例化语句来完成此项设计(减法运算是 x y - sun_in = diffr)。 图4-19 时序电路图 悼汾晤爽滑纶蒸仓跺熙哆疆嘴掠病王予声犁桌访蹲怨屈魄憨馋客证渗井布FPGA原理及应用-VHDL设计初步FPGA原理及应用-VHDL设计初步

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号