vhdl设计初步(新模版)32513【课件】

上传人:人*** 文档编号:567916135 上传时间:2024-07-22 格式:PPT 页数:109 大小:976.50KB
返回 下载 相关 举报
vhdl设计初步(新模版)32513【课件】_第1页
第1页 / 共109页
vhdl设计初步(新模版)32513【课件】_第2页
第2页 / 共109页
vhdl设计初步(新模版)32513【课件】_第3页
第3页 / 共109页
vhdl设计初步(新模版)32513【课件】_第4页
第4页 / 共109页
vhdl设计初步(新模版)32513【课件】_第5页
第5页 / 共109页
点击查看更多>>
资源描述

《vhdl设计初步(新模版)32513【课件】》由会员分享,可在线阅读,更多相关《vhdl设计初步(新模版)32513【课件】(109页珍藏版)》请在金锄头文库上搜索。

1、西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计数字电路与系统设计数字电路与系统设计EDA实验实验VHDL设计初步设计初步主讲:徐少莹主讲:徐少莹电子工程学院电子工程学院Email:六豪环乳气碰亨约贝胰染珍尘废筒寒决纸墙滓羚丽啥携溜汤横尸仔过铂蹦vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计数字电路与系统设计数字电路与系统设计EDA实验实验内容安排:内容安排:电子工程学院必修课(电子工程学院必修课(电子工程学院必修课(电子工程学院必修课()u

2、硬件描述语言硬件描述语言(VHDL or VerilogHDL) (10学时学时)uEDA设计工具软件及实验设计工具软件及实验 (10学时学时)u综合设计实验综合设计实验 (10学时学时)西安电子科技大学国家电工电子教学基地西安电子科技大学国家电工电子教学基地帚疤耍蜡炕矢运秀蔓局破备哈氖罢纳聚见陪媒值巡鼠饥撮汇淬猎碎贯狞殿vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计第第1部分部分 VHDL设计初步设计初步数字电路与系统设计数字电路与系统设计EDA实验实验蔚踊雕风氓攘起橇诵

3、椒喉嫁烽昏秒淆病浪注庸怯恭川纂肤住述弃远绰魄会vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计VHDL历史回顾历史回顾VHDL 语言是美国国防部语言是美国国防部(DOD)在在 20 世纪世纪 80 年代初为实现其高速年代初为实现其高速集成电路计划集成电路计划(VHSICVery High Speed Integrated Circuit)而提出而提出的一种的一种硬件描述语言硬件描述语言硬件描述语言硬件描述语言(HDLHardware Description Language)

4、,以,以作为各合同商之间提交复杂电路设计文档的一种标准方案,作为各合同商之间提交复杂电路设计文档的一种标准方案,VHDL的含义为的含义为超高速集成电路硬件描述语言超高速集成电路硬件描述语言超高速集成电路硬件描述语言超高速集成电路硬件描述语言。1987年被采纳为年被采纳为IEEE 1076标准(标准(VHDL87)。)。1993年被更新为年被更新为IEEE 1164标准(标准(VHDL93)。)。嚣向杨揉汇涤坏射营敌沧帖讼遣瘦章越毡偿量浓咙闽薯独斯麦傻诡妨股稗vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国

5、家级精品课程数字电路与系统设计VHDLVHSIC Hardware Description Language HDL 的出现是为了适应电子系统设计的日益复杂性。的出现是为了适应电子系统设计的日益复杂性。若以计算机软件的设计与电路设计做个类比:若以计算机软件的设计与电路设计做个类比: 机器码机器码好比好比晶体管晶体管/MOS管管; 汇编语言汇编语言好比好比电路网表电路网表; HDL语言语言就如同就如同高级语言高级语言。详三核绅薯贮垫玛殃袄锗鹰慑趾药倡查枫秽配甜寝脏参狡乃类酞幼接妹肿vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课

6、程数字电路与系统设计国家级精品课程数字电路与系统设计几种常用的几种常用的HDL语言:语言: (1 1)VHDLVHDL硬件描述语言:硬件描述语言:硬件描述语言:硬件描述语言:功能强,规范性好;功能强,规范性好; (2 2)VerilogHDLVerilogHDL硬件描述语言:硬件描述语言:硬件描述语言:硬件描述语言:功能强、灵活性高;功能强、灵活性高; (3 3)ABELABEL硬件描述语言:硬件描述语言:硬件描述语言:硬件描述语言:属于较低级的硬件描述语属于较低级的硬件描述语言;言; (4 4)AHDLAHDL硬件描述语言:硬件描述语言:硬件描述语言:硬件描述语言:Altera公司开发,语法

7、简公司开发,语法简单,但不通用。单,但不通用。 其中:其中:其中:其中:VHDLVHDL和和和和VerilogHDLVerilogHDL已成为已成为已成为已成为IEEEIEEE标准。标准。标准。标准。VHDLVHSIC Hardware Description Language甜用崎茂辜色撤迭释酝禽似博秀浸沽尧乍香兆粤脯操稗撩英料拽缎继株懈vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计 VHDL在语法和风格上类似于现代高级编程语言。在语法和风格上类似于现代高级编程语言。但要

8、注意,但要注意,VHDL毕竟描述的是毕竟描述的是硬件硬件,它包含许多硬,它包含许多硬件特有的结构。件特有的结构。 HDL是用文字化方法描述电子电路与系统。是用文字化方法描述电子电路与系统。计算机语言计算机语言描述特点是描述特点是 :顺序性顺序性HDL语言语言描述的特点是:描述的特点是:并行性并行性VHDLVHSIC Hardware Description Language不恭沪氟爬贫林教舶狐创用膀院刻涩批查菌九而毛澡勺娥离娘凋框采调屁vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与

9、系统设计VHDL与计算机语言的区别与计算机语言的区别运行的基础运行的基础运行的基础运行的基础l 计算机语言是在计算机语言是在CPURAM构建的平台上运行构建的平台上运行l VHDL设计的结果是由具体的逻辑、触发器组成的数字电路设计的结果是由具体的逻辑、触发器组成的数字电路(使用使用Quartus 软件编程,最终下载入可编程逻辑器件中实现一个数字系统)软件编程,最终下载入可编程逻辑器件中实现一个数字系统)执行方式执行方式执行方式执行方式l计算机语言基本上以计算机语言基本上以串行串行的方式执行的方式执行lVHDL在总体上是以在总体上是以并行并行方式工作方式工作验证方式验证方式验证方式验证方式l计算

10、机语言主要关注于计算机语言主要关注于变量值变量值的变化的变化lVHDL要实现严格的要实现严格的时序逻辑时序逻辑关系关系趟涛淖倡恤胁屉凉沽丛拆柔胁肯曾垢厩劳伯沧图踪冰地离冯小膀癣世焚阁vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计数字电路与系统设计回顾数字电路与系统设计回顾组合逻辑电路组合逻辑电路时序逻辑电路时序逻辑电路分析分析设计设计真值表真值表分析分析设计设计输入输入/输出输出抽象抽象(实体)(实体)电路功能电路功能实现实现(结构体)(结构体)EntityArchitec

11、ture与、或、非与、或、非与非、或非与非、或非异或、同或异或、同或RS触发器触发器D触发器触发器T触发器触发器JK触发器触发器窖鼠匀题隆宴女岁滤饲腿支撮叮瞻项阁往尤种沉肋纫寇别叫姨瑚瀑萎亨突vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计主要内容安排主要内容安排1 多路选择器的多路选择器的VHDL描述描述2 时序电路的时序电路的VHDL描述描述3 更复杂电路的更复杂电路的VHDL描述描述5 VHDL设计练习设计练习4 有限状态机(状态转移图)设计有限状态机(状态转移图)设计

12、哈呸梨婴墨狡盎临恳转鸦昼琼考熟计拳鳞揍辜旨足大曰栋五溯六彪藏举库vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计1 多路选择器的多路选择器的VHDL描述描述例例1.1 2选选1多路选择器的多路选择器的VHDL描述描述 2选选1MUX输入输入/输出输出端口端口(实体(实体Entity) abymux21s电路功能电路功能实现实现(结构体(结构体Architecture)?势屏藤体附醉樱柴模蝉馒舆桂激并每胎焊颂溜待蝶天果屡茫箔凿聂打秽食vhdl设计初步(新模版)32513【课件】

13、vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计例例1.1 2选选1多路选择器的多路选择器的实体描述实体描述1 多路选择器的多路选择器的VHDL描述描述abymux21sENTITY mux21mux21 IS PORT (a, b : IN BIT ; S : IN BIT ; y : OUT BIT ) ; END ENTITY mux21mux21 ; 说明:以关键字说明:以关键字ENTITY引导,以引导,以END (ENTITY) xxx结尾的语句部分,称为结尾的语句部分,称为实体实体。描述电路的外部情况及。描

14、述电路的外部情况及接口性质。接口性质。修碉晤筏堑舷绪质嚷青磐鹤涤碗咀攀践鼎势份杆琉厩再者葫楚世空硕撑省vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计ENTITY mux21 IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT );END ENTITY mux21;ARCHITECTURE one OF mux21 IS BEGIN y = a WHEN s = 0 ELSE b ;END ARCHITECTURE one ; 例

15、例1.1 2选选1多路选择器的多路选择器的结构体描述结构体描述1 ( (行为描述行为描述行为描述行为描述) )abymux21sS=0S=1abyS说明:以关键字说明:以关键字ARCHITECTURE引导,以引导,以END (ARCHITECTURE) xxx结尾的语句部分,称为结尾的语句部分,称为结结构体构体。描述电路的内部逻辑功能或电路结构。描述电路的内部逻辑功能或电路结构。1 多路选择器的多路选择器的VHDL描述描述死夫析未而篓叭规犬意稼骄侯湿帖祈问盯攻眩应伟抛键晋鳃琵帅最蛆灌么vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级

16、精品课程数字电路与系统设计国家级精品课程数字电路与系统设计例例1.1 2选选1多路选择器的多路选择器的结构体描述结构体描述2 ( (原理图描述原理图描述原理图描述原理图描述) )ARCHITECTURE one OF mux21 IS SIGNAL d,e : BIT; -d,e 为内部信号为内部信号BEGIN d = a AND (NOT S) ; e = b AND s ; y = d OR e ;END ARCHITECTURE one ; abymux21s1 多路选择器的多路选择器的VHDL描述描述哭甲旱闹拣泄巡镶泥午举浑为甭卖系浦向烘瞳陇舍啡轨初林早谊狙携矾辞vhdl设计初步(新模

17、版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计例例1.1 2选选1多路选择器的多路选择器的结构体描述结构体描述3 ( (布尔方程描述布尔方程描述布尔方程描述布尔方程描述) )1 多路选择器的多路选择器的VHDL描述描述y = (a AND (NOT s) OR ( b AND s) ; ARCHITECTURE behave OF mux21 ISBEGINEND behave;y = as+bsabymux21s说明:以上说明:以上三种结构体三种结构体描述都是描述都是并并行语句行语句烧锌魁藩挥

18、嘘尹鼠彪搏褪撩坑去娩慨唱姿殿肥迁暮付膀娟黄弄党此择警芍vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计例例1.1 2选选1多路选择器的多路选择器的结构体描述结构体描述4 ( (进程描述进程描述进程描述进程描述) )1 多路选择器的多路选择器的VHDL描述描述S=0S=1abySabymux21s ARCHITECTURE one OF mux21 ISBEGIN PROCESSPROCESS (a,b,s) BEGINBEGIN IF s = 0 THEN y = a ; E

19、LSE y = b ; END IF; END PROCESS;END PROCESS;END ARCHITECTURE one ; -a,b,s 为敏感信号表为敏感信号表藏毯厉篱洲痪仲攘叶赫麓柬獭描灾战远蓉帖辣眠雀劣虚犹机釉竹霍破肋遗vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计2选选1多路选择器功能时序波形多路选择器功能时序波形 例例1.1 2选选1多路选择器的多路选择器的EDA软件仿真结果软件仿真结果1 多路选择器的多路选择器的VHDL描述描述獭垮祝甚些畴圈颈蜂宜积滥

20、婚碱馈晤卸潘胆向哑惦炉憾拍糕衅存洽麓添妙vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计1.1 实体表达(实体表达(ENTITY) 1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明ENTITY 实体名实体名 IS GENERIC (类属表);(类属表); PORT (端口表);(端口表);END ENTITY 实体名;实体名; 实体在电路中主要是说明该电路的输入、输出关实体在电路中主要是说明该电

21、路的输入、输出关系,更具体地说就是用来定义实体与外部的连接关系系,更具体地说就是用来定义实体与外部的连接关系以及需传送给实体的参数。以及需传送给实体的参数。颠嚏妆投擒倪毡栋喷蒜窿赛蛛距恿呈满涤鸥影宝恤峭葫昏节馒诞卞喜学礁vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】ENTITY 实体名实体名 IS GENERIC (类属表类属表);); PORT (端口表端口表););END ENTITY 实体名;实体名;(1)类属表:用于指定参数的大小、实体中子元件的数目)类属表:用于指定参数的大小、实体中子元件的数目及实体的定时特性等,用以将信息参数传递到实体。及

22、实体的定时特性等,用以将信息参数传递到实体。(2)端口表:指明实体的输入、输出信号及其模式、数据)端口表:指明实体的输入、输出信号及其模式、数据类型。类型。PORT (端口名:端口模式端口名:端口模式 数据类型;数据类型; 端口名:端口模式端口名:端口模式 数据类型数据类型 );英文字母英文字母+ +数字数字数据流动方向数据流动方向主要有主要有“位位”和和“位矢量位矢量”两类两类设计者自己命名的名称(文件名)设计者自己命名的名称(文件名)例如:例如:mux21的端口描述的端口描述增加以下语句增加以下语句:generic (m: time:=1ns)类属参数说明语句,它定类属参数说明语句,它定义

23、了延时时间为义了延时时间为1ns僻庚臂珊乙拭蜂肯湃慨巴紫旋秒骡禁驼窖汉舆触网昏挚窘汕瞬龚斥鼎叼邪vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】注意注意简单地说简单地说 In In 不可以出现在赋值符号不可以出现在赋值符号不可以出现在赋值符号不可以出现在赋值符号(= (= 或或或或:=):=)的左边的左边的左边的左边 out out不可以出现在赋值符号不可以出现在赋值符号不可以出现在赋值符号不可以出现在赋值符号(= (= 或或或或:=):=)的右边的右边的右边的右边 buffer buffer可以出现在赋值符号可以出现在赋值符号可以出现在赋值符号可以出现

24、在赋值符号(= (= 或或或或:=):=)的两边的两边的两边的两边In In 信号只能被引用信号只能被引用信号只能被引用信号只能被引用, ,不能被赋值不能被赋值不能被赋值不能被赋值out out 信号只能被赋值信号只能被赋值信号只能被赋值信号只能被赋值, ,不能被引用不能被引用不能被引用不能被引用buffer buffer 信号可以被引用信号可以被引用信号可以被引用信号可以被引用, ,也可以被赋值也可以被赋值也可以被赋值也可以被赋值方向定义方向定义含义含义IN输入,定义的通道为单向输入模式输入,定义的通道为单向输入模式 OUT输出,输出,定义的通道为单向输出模式定义的通道为单向输出模式 INO

25、UT双向,定义的通道确定为输入输出双向端口双向,定义的通道确定为输入输出双向端口 BUFFER缓冲端口,其功能与缓冲端口,其功能与INOUT类似类似 常用端口模式:常用端口模式:丰绍狂构匿胞挺功鞍涟缠辉焦林达藕棺拓纯障才欲豆兢莲丙擂垂扩棘赁夺vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】例:例:ENTITY mux21mux21 IS PORT (a, b, : IN BITBIT ; S : IN BITBIT ; y : OUT BITBIT ) ; END ENTITY mux21mux21 ; VHDL中任何一种数据对象(信号、变量、常数)必须

26、严中任何一种数据对象(信号、变量、常数)必须严格限定其取值范围。格限定其取值范围。 VHDL 中一个对象只能有一种类型,施加于该对象的操中一个对象只能有一种类型,施加于该对象的操作必须与该类型相匹配。作必须与该类型相匹配。 常用数据类型有:常用数据类型有:BIT,BIT_VECTOR,STD_LOGIC,STD_LOGIC_VECTOR,INTEGER,BOOLEAN等(参考书上等(参考书上P260表表10.3.1)风彤嫁这根尺本咖云逮凶邑猛罚邦踩复锨糯屉读吞剖供谭袱虐淤赢署闽是vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课

27、程数字电路与系统设计国家级精品课程数字电路与系统设计1.2 结构体表达(结构体表达(ARCHITECTURE) 1 多路选择器的多路选择器的VHDL描述描述ARCHITECTURE 结构体名结构体名 OF 实体名实体名 IS 定义语句定义语句 内部信号,常数,数据类型,函数等定义;内部信号,常数,数据类型,函数等定义;BEGIN 功能描述语句功能描述语句;END ARCHITECTURE 结构体名;结构体名; 以关键字以关键字以关键字以关键字ARCHITECTUREARCHITECTURE引导,以引导,以引导,以引导,以END (ARCHITECTURE) xxxEND (ARCHITECTU

28、RE) xxx结结结结尾的语句部分,称为尾的语句部分,称为尾的语句部分,称为尾的语句部分,称为结构体结构体结构体结构体。描述电路的内部逻辑功能或电路结构。描述电路的内部逻辑功能或电路结构。描述电路的内部逻辑功能或电路结构。描述电路的内部逻辑功能或电路结构。焦茁镊鲍正润役袁末唬膝叭挫椰韶盯跃麓扼腾姜享味欲纯僳耐凹怪轰馋美vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】 结构体名称的命令:结构体名称的命令:它是该结构体的唯一名称。它是该结构体的唯一名称。“OF”后面紧跟的实体名表明了该结构体所对应的是后面紧跟的实体名表明了该结构体所对应的是哪一个实体。用哪一

29、个实体。用 “IS”来结束结构体的命名。来结束结构体的命名。ARCHITECTURE 结构体名结构体名结构体名结构体名 OF 实体名实体名 IS 定义语句定义语句定义语句定义语句 内部信号,常数,数据类型,函数等的定义;内部信号,常数,数据类型,函数等的定义;BEGIN 功能描述语句功能描述语句功能描述语句功能描述语句;END ARCHITECTURE 结构体名;结构体名;自狐酶奴瑰郁望操堆又有懊秀锚硝叙属寻棕颠掺乒巨辨脑使瑚宋契蛾鲜剂vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】 定义语句:定义语句:位于位于“ARCHITECTURE”和和“BEGI

30、N”之间。之间。用于对结构体内部所使用的信号、常数、数据类型和函数等用于对结构体内部所使用的信号、常数、数据类型和函数等进行定义。如:进行定义。如:ARCHITECTURE 结构体名结构体名结构体名结构体名 OF 实体名实体名 IS 定义语句定义语句定义语句定义语句 内部信号,常数,数据类型,函数等的定义;内部信号,常数,数据类型,函数等的定义;BEGIN 功能描述语句功能描述语句功能描述语句功能描述语句;END ARCHITECTURE 结构体名;结构体名;SIGNALSIGNALcont:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALSIGNALco_1:STD_LOG

31、IC;CONSTANTCONSTANTm:TIME:=2 ns;TYPETYPESTATESTATEISIS(INIT,DAD,ADC,SRF,FRF);(枚举类型);(枚举类型) 豫桂歹稍径蘑珠隘舒歉褂清嘎权旅盂拼骄莱熔垣婴肋抨英搐舀磁孪砷辉楚vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】 功能描述语句:功能描述语句:处于处于“BEGIN”和和“END”之间。之间。具体描述了结构体的行为及其连接关系。具体描述了结构体的行为及其连接关系。ARCHITECTURE 结构体名结构体名结构体名结构体名 OF 实体名实体名 IS 定义语句定义语句定义语句定义语

32、句 内部信号,常数,数据类型,函数等的定义;内部信号,常数,数据类型,函数等的定义;BEGIN 功能描述语句功能描述语句功能描述语句功能描述语句;END ARCHITECTURE 结构体名;结构体名;结构体功能可以用三种方式进行描述,即:结构体功能可以用三种方式进行描述,即: 行为描述、数据流描述、结构描述。行为描述、数据流描述、结构描述。紧骆玲吞贷江捎加蓄肥柜挝代痒起侥磅桃戈酱贿贼吸网珐账巨瓮蝶晌鸯雍vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】u.结构体的行为描述结构体的行为描述(behavioral) 结构体的行为描述表示输入与输出间转换的关系,

33、是结构体的行为描述表示输入与输出间转换的关系,是对设计实体按算法的路径来进行描述的。行为描述在对设计实体按算法的路径来进行描述的。行为描述在 EDA 工程中称为高层次描述或高级描述。工程中称为高层次描述或高级描述。看例题!看例题!例:例:如图所示的如图所示的半加器半加器,其功能,其功能真值表已经给出,写出它的真值表已经给出,写出它的行为描行为描述述。半加器半加器abcsabcs0000000011111110亦令劈赔丝刑哑堡供缄扦应讲呐朋脊世囚啄奇桃敬饺挝窜扰囚酗吓牧庐奠vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】半加器真值表半加器真值表:abcs0

34、000000011111110半加器半加器abcs (ENTITY部分省略)部分省略) ARCHITECTURE alg_ha OF half_adder IS BEGIN PROCESS (a , b) BEGIN IF a=0 AND b=0 THEN c=0 ; s=0 ELSIF a=1 AND b=1 THEN c=1 ; s=0; ELSE c=0 ; s=1; END IF; END PROCESS; END alg_ha; 高层次的功能描高层次的功能描述,不必考虑在述,不必考虑在电路中到底是怎电路中到底是怎样实现的。样实现的。爸闲挟别抛钵酸迢坤祸瑚赎盆蹿拥恢空逢筛它氰尧墟丢素匀

35、曳农寓抓鄙站vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】u.结构体的数据流描述结构体的数据流描述(dataflow) 它反映了从输入数据到输出数据之间所发生的逻辑变它反映了从输入数据到输出数据之间所发生的逻辑变换,或者说描述了数据流程的运动路径、运动方向和运动换,或者说描述了数据流程的运动路径、运动方向和运动结果。结果。u.结构体的结构化描述结构体的结构化描述(structural) 结构化描述给出了实体内部结构、所包含的模块或元结构化描述给出了实体内部结构、所包含的模块或元件间互连关系;与实体外部引线的对应关系。件间互连关系;与实体外部引线的对应关

36、系。练习:练习: 试用上面的两种方法描述半加器的功能。试用上面的两种方法描述半加器的功能。半加器半加器abcs夹爽螟槐窘夹草蛛取战或坍癌亿痕瞻姓炭保孺肩舱裕焙膊沥密笆显雌策渝vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计结构体中三种描述方式的比较结构体中三种描述方式的比较布尔函数定义明布尔函数定义明白白连接关系清晰,连接关系清晰,电路模块化清晰电路模块化清晰 优优 点点小门数设计小门数设计不易描述复杂电路,不易描述复杂电路,修改不易修改不易数据流描述数据流描述电路层次化设计

37、电路层次化设计电路不易理解、繁琐、电路不易理解、繁琐、复杂复杂结构化描述结构化描述 适用场合适用场合 缺缺 点点描述方式描述方式电路特性清楚明电路特性清楚明了了大型复杂的电路模块大型复杂的电路模块设计设计进行综合效率相对较进行综合效率相对较低低行为描述行为描述睦颂质室涵删好脓婶奉业钮襄碱漆即柑暇媳唆领伏斗釜尊岸诧技陷朔叼肿vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计 信号赋值符信号赋值符 “=” 表达式中的等号表达式中的等号“=”没没有赋值的含义,只是一种数有赋值的含义,

38、只是一种数据比较符号。据比较符号。 1.3 赋值符号和数据比较符号赋值符号和数据比较符号 1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明 ARCHITECTURE one OF mux21 ISBEGIN PROCESS (a,b,s) BEGIN IF s = = 0 THEN y = = a ; ELSE y = = b ; END IF; END PROCESS;END ARCHITECTURE one ; 奄籽垛州酷蒜捍婶怎敖右纳话仲叁剖仁庄毫星茎癸峡挨漳邪颖两丛骸吐迸vhdl设计初步(新模版)3251

39、3【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计1.4 逻辑操作符逻辑操作符 1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明y = (a ANDAND (NOTNOT s) OROR (b ANDAND s) ; ARCHITECTURE behave OF mux21 ISBEGINEND behave; VHDL共有共有7种基本逻辑操作符:种基本逻辑操作符: AND(AND(与与与与) )、OR(OR(或或或或) )、NO

40、T(NOT(取反)、取反)、取反)、取反)、NAND (NAND (与非与非与非与非) )、 NOR( NOR(或非或非或非或非) )、XOR(XOR(异或异或异或异或) )、XNOR(XNOR(同或同或同或同或) ) 要求数据类型:要求数据类型: BIT BOOLEAN STD_LOGIC刀诧刮芍迟震秽甥而史放潘纵层踌刷榜陶罕兴头布嘿吧约央穗告僳颜励录vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计ARCHITECTURE one OF mux21 IS BEGIN y =

41、 a WHENWHEN s = 0 ELSEELSE b ;END ARCHITECTURE one ; 1.5 WHEN_ELSE条件信号赋值语句条件信号赋值语句 1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明赋值目标赋值目标 = 表达式表达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式 ; 井诵哲妥坎籽席浮操譬孵什呕判源宿依逢揭饺硫山赏奢姜教错铺滦洲捶什vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子

42、科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计在在VHDL中中,所所有有的的顺顺顺顺序序序序语语语语句句句句,如如“IF_THEN_ELSE_END IF”,都都必必须放在由须放在由“PROCESSEND PROCESS”引导的进程结构中。引导的进程结构中。 在在一一个个结结构构体体(ARCHITECTURE)中中可可以以包包含含任任意意个个进进程程语语句句,所所有有的的进进程程语语句句都都是是并并并并行行行行语语语语句句句句,而而进进程程PROCESS引引导导的的内内部部语语句句结结构构属于属于顺序语句顺序语句顺序语句顺序语句。1.4 进程语句和顺序语句进程语句和顺

43、序语句 1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明增猩吱它档铭脊放受响蒸级墅榆礁表伍玖县嘛求侍几郎撂躁掂剑秦稀甫审vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计1 小结小结在在2选选1的的VHDL描述中出现的语言现象归纳:描述中出现的语言现象归纳:实体:实体: Entity结构体:结构体:Architecture端口定义:端口定义: Port( )端口模式:端口模式:In/Out/Ino

44、ut数据类型:数据类型:Bit、Std_Logic信号赋值符:信号赋值符:=条件比较符:条件比较符:=逻辑操作符:逻辑操作符:ANDIF条件语句:条件语句:IFEND IF并行条件语句:并行条件语句:WHENELSE进程语句:进程语句:ProcessEnd Process顺序语句:顺序语句:由进程语句引导由进程语句引导并行语句:简单赋值语句并行语句:简单赋值语句 when.else语句语句 with .select语句语句生存央激谬蹲镇彤个吞泽懊刀栏恶疚屋红摇撑析置帽鸥瓜基采剧甄融咖盂vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级

45、精品课程数字电路与系统设计国家级精品课程数字电路与系统设计补充 WITH . SELECT 语句用WITH . SELECT语句描述2选1多路选择器ENTITY mux21mux21 IS PORT (a, b : IN STD_LOGIC; S : IN STD_LOGIC; y : OUT STD_LOGIC); END mux21mux21; ARCHITECTURE one OF mux21 ISBEGIN WITH s SELECT y = a WHEN 0; b WHEN OTHERS ;END one ; 黑恢连距颧慑歉篇纤曝须蒋撂盆砸瞬涸形星捆沤孔侯具省偏厌姨滑贷琴为vhdl设

46、计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计2 时序电路的时序电路的VHDL描述描述例例2.1 D触发器的触发器的VHDL描述描述 最简单、最具有代表性的时序电路是最简单、最具有代表性的时序电路是D触发器。触发器。对对对对D D触发触发触发触发器的描述包含了器的描述包含了器的描述包含了器的描述包含了VHDLVHDL对时序电路的最基本和典型的表达方对时序电路的最基本和典型的表达方对时序电路的最基本和典型的表达方对时序电路的最基本和典型的表达方式,也包含了式,也包含了式,也包含了式,也

47、包含了VHDLVHDL中许多最具特色的语言现象。中许多最具特色的语言现象。中许多最具特色的语言现象。中许多最具特色的语言现象。(实体(实体Entity) 电路功能描述电路功能描述(结构体(结构体Architecture)?DCLKQDFF1惺挫堑惶讣咖爸佑拇堰施得敌沫檬呜眼跺登蔫仍瓣赂憾委眺准藻诲狮睡卒vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】LIBRARY LIBRARY IEEE ;IEEE ;USE USE IEEE.STD_LOGIC_1164.ALL ; IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS -

48、 端口声明端口声明 PORT (CLK, D : IN STD_LOGICSTD_LOGIC ; Q : OUT STD_LOGICSTD_LOGIC );END ENTITY DFF1;ARCHITECTURE bhv OF DFF1 IS -结构体描述结构体描述 SIGNALSIGNAL Q1 : STD_LOGIC ; -类似于在芯片内部定义一个数据的暂存节点类似于在芯片内部定义一个数据的暂存节点BEGIN PROCESS (CLK) - 进程进程 BEGIN IF CLKEVENT AND CLK = 1CLKEVENT AND CLK = 1 THEN Q1 = D ; END IF

49、; END PROCESS ; Q = Q1 ; -将内部的暂存数据向端口输出(双横线将内部的暂存数据向端口输出(双横线-是注释符号)是注释符号)END ARCHITECTURE bhv; 例例2.1 D触发器的触发器的VHDL描述描述 VHDL电路描述与设电路描述与设计平台和硬件实现对象计平台和硬件实现对象 (组合或时序逻辑组合或时序逻辑) 无关。无关。DCLKQDFF1粪吩玉铅尔抚柜云扑蛤礁拴亮纬刑捎龟卉豺胖茵劝潞绣誓络谊霹转从辞逛vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】例例2.1中中D触发器的触发器的VHDL描述的语言现象说明描述的语言现象

50、说明 2.1 完整完整VHDL程序程序基本构成基本构成VHDL设计设计VHDL文件文件库和程序包库和程序包 声声明明在在设设计计或或实实体体中中将将用用到到的的常常数数,数数据据类类型型,元元件件及子程序等及子程序等实体(实体(Entities) 声声明明到到其其实实体体及及其其设设计计的的接接口口,即即定定义义本本设设计计的输入的输入/出端口出端口结构体结构体(Architectures) 定定义义了了实实体体的的实实现现。即即电电路功能的具体描述路功能的具体描述澎蛊蜡揩拴铂猜怎辜纠惋怯躺燎问菜乒罐膀雄钨滚归戍戌亚陷扁羔它烃痉vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模

51、版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计库库(Library)和程序包和程序包(Package) 程程程程序序序序包包包包:定定义义了了一一组组数数据据类类型型说说明明、常常量量说说明明、元元件件说说明明和和子子程程序说明。以供其它多个设计实体引用。序说明。以供其它多个设计实体引用。 库:库:库:库:是专门存放预先编译好的程序包的地方,这样它们就可以在是专门存放预先编译好的程序包的地方,这样它们就可以在其它设计中被调用。其它设计中被调用。 库库库库/ /程程程程序序序序包包包包就就是是为为了了使使一一组组类类型型说说明明,常常量量说

52、说明明和和子子程程序序说说明明对对多多个个设设计计实实体体都都成成为为可可见见的的而而提提供供的的一一种种结结构构。它它们们如如同同C语语言言中中的的*.h文文件件,定定义义了了一一些些类类型型说说明明,函函数数一一样。样。辟旗春用骆黔柔基蜗恰寝束拐晾佛澡过虞格性油咋蝉秤梨付缆赡舟钦言粉vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计 例如:例如: LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_un

53、signed.ALL; IEEE是是IEEE标标准准库库的的标标志志名名,两两个个USE语语句句使使得得以以下下设设计计可可使使用用程程序序包包std_logic_1164, std_logic_unsigned中中所所有有预预定定义义的的内容,如内容,如std_logic,in,out的定义等。的定义等。格式:格式: LIBRARY ; USE .ALL;库库(Library)和程序包和程序包(Package)杨盂休迢胜惮藤铱脉帐舌倔叫速缓汤豢阜疤丸敖坡挂柿透橱如装垄患斋善vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数

54、字电路与系统设计国家级精品课程数字电路与系统设计常用标准库常用标准库常用标准库常用标准库stdstd和和和和ieeeieee库中的程序包库中的程序包库中的程序包库中的程序包库库(Library)和程序包和程序包(Package)茧哑寇肌钒揽础深伊遥冯淘饯晓飞婿税笔斯脂炸退睫菜舅临嘿敢郴擦铱墟vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计BITBIT数据类型定义:数据类型定义:数据类型定义:数据类型定义: TYPE BIT IS(0,1); 即即BIT数据类型仅可取值数据类型

55、仅可取值0或或1;STD_LOGICSTD_LOGIC数据类型定义:数据类型定义:数据类型定义:数据类型定义: TYPE STD_LOGIC IS (U,X,0,1,Z,W,L,H,-); 工业标准逻辑类型,取值工业标准逻辑类型,取值U,X,0,1,Z, W, L, H和和- 2.2 标准逻辑位数据类型标准逻辑位数据类型STD_LOGIC ENTITY DFF1DFF1 IS - 端口声明端口声明 PORT (CLK, D : IN STD_LOGICSTD_LOGIC ; Q : OUT STD_LOGICSTD_LOGIC );END ENTITY DFF1DFF1;ENTITY mux2

56、1mux21 IS PORT (a, b, : IN BITBIT ; S : IN BITBIT ; y : OUT BITBIT ); END ENTITY mux21mux21 ; 竭阉羌结攒孜裳券牛派绑耸估甥汀绿酋秧缆的遍训希继名拽禹烫啄犯赡睁vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计ARCHITECTURE bhv OF DFF1 ISARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 SIGNAL Q1:STD_LOGICSTD_LO

57、GIC;BEGINBEGIN2.3 信号定义和数据对象信号定义和数据对象 信号(信号(信号(信号(SignalSignal):):):): 信号的使用和定义范围是实体、结构体和程序包,信号的使用和定义范围是实体、结构体和程序包,在进程和子在进程和子程序的顺序语句中不允许定义信号。程序的顺序语句中不允许定义信号。(只有信号才能把进程外的信(只有信号才能把进程外的信息带入进程内部,或将进程内的信息带出进程)息带入进程内部,或将进程内的信息带出进程)SIGNAL SIGNAL 信号名信号名信号名信号名: : 数据类型数据类型数据类型数据类型 := := 初始值初始值初始值初始值; ;信号赋值语句:信

58、号赋值语句:信号赋值语句:信号赋值语句:目标信号名目标信号名目标信号名目标信号名=表达式表达式表达式表达式; ;队枣遂筒盈糠蓖实北玛捌请访眩鄂锑样备凑厢轨峰劳列忘竿辕娱脂瓶帚饼vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计VARIABLE VARIABLE 变量名变量名变量名变量名: : 数据类型数据类型数据类型数据类型 := :=初始值初始值初始值初始值; ;变量赋值语句:变量赋值语句:变量赋值语句:变量赋值语句: 目标变量名目标变量名目标变量名目标变量名:=:=表达式表

59、达式表达式表达式; ;ARCHITECTURE bhv OF DFF1 ISARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 SIGNAL Q1:STD_LOGICSTD_LOGIC;BEGINBEGIN2.3 信号定义和数据对象信号定义和数据对象 变量(变量(变量(变量(VariableVariable):):):): 在在VHDL中,变量是一个局部量,作为临时的数据存储单元,中,变量是一个局部量,作为临时的数据存储单元,只能在进程和子程序的顺序语句中使用只能在进程和子程序的顺序语句中使用。变量定义中的初始值仅对。变量定义中的初始值仅对仿真有效,实际的综合器并不支持

60、设置初始值。仿真有效,实际的综合器并不支持设置初始值。孪绚镀黍烟拉撰穷痹巾烘硬国质触价撂病皇舌滔烁僳剁妆兰矩腻容系练侮vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计CONSTANT CONSTANT 常量名常量名常量名常量名: : 数据类型数据类型数据类型数据类型:= := 表达式表达式表达式表达式; ;ARCHITECTURE bhv OF DFF1 ISARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 SIGNAL Q1:STD_LOGICST

61、D_LOGIC;BEGINBEGIN2.3 信号定义和数据对象信号定义和数据对象 常量(常量(常量(常量(ConstantConstant):):):): 常量的定义主要是为了程序更容易阅读和修改。在所有的常量的定义主要是为了程序更容易阅读和修改。在所有的VHDL结构中都可以定义常量,如实体、结构体、程序包、进程和子结构中都可以定义常量,如实体、结构体、程序包、进程和子程序等。常量是一个恒定不变的值。程序等。常量是一个恒定不变的值。店艘仓刨脏磋陛嫩洗柳桑厚湛垒扇雇亡呆蛰巳伸酷描塌当恋巷但蓬清鄂治vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技

62、大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计 EVENT EVENT (CLKEVENTCLKEVENT表示表示表示表示 CLK CLK信号发生变化)信号发生变化)信号发生变化)信号发生变化)2.4 上升沿检测表达式和信号属性函数上升沿检测表达式和信号属性函数EVENT PROCESS (CLK) - 进程进程 BEGIN IF CLKEVENT CLKEVENT ANDAND CLK = 1 CLK = 1 THEN Q1 = D ; END IF; END PROCESS ;边沿检测语句边沿检测语句用信号属性函数用信号属性函数用信号属性函数用信号属性函数EVENTE

63、VENT来测定某信号的跳变边沿,即来测定某信号的跳变边沿,即来测定某信号的跳变边沿,即来测定某信号的跳变边沿,即拘生执促挎唱惫羔捉孺壮扫昭厩汾嘿骸愁矮冒金敢默庙材疽台萎抑笆雁篱vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】2.5 不完整条件语句与时序电路不完整条件语句与时序电路 LIBRARY IEEE ;LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS - DFF 端口声明端口声明 PORT (CLK, D : IN STD

64、_LOGICSTD_LOGIC ; Q : OUT STD_LOGICSTD_LOGIC );END ENTITY DFF1;ARCHITECTURE bhv OF DFF1 IS SIGNALSIGNAL Q1 : STD_LOGIC ; BEGIN PROCESS (CLK) - 进程进程 BEGIN IF CLKEVENT AND CLK = 1CLKEVENT AND CLK = 1 THEN Q1 = D ; END IF; END PROCESS ; Q = Q1 ; END ARCHITECTURE bhv; IF IF语句中没有利用语句中没有利用语句中没有利用语句中没有利用EL

65、SEELSE明确指明确指明确指明确指出当出当出当出当IFIF语句不满足条件时如何操作,语句不满足条件时如何操作,语句不满足条件时如何操作,语句不满足条件时如何操作,即不完整条件语句。即不完整条件语句。即不完整条件语句。即不完整条件语句。IFIF语句表示:语句表示:语句表示:语句表示:CLKEVENT AND CLK = 1YesNoQ1 = D ; ?淋碍袍水牛伙芍静伤耐注缩牺精产虹氧柜驮姥眉髓凭蔓屡充肯蒙宅驹鹤持vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】 ARCHITECTURE one OF mux21 ISBEGIN PROCESS (a,b

66、,s) BEGIN IF s = 0 THEN y = a ; ELSE y = b ; END IF; END PROCESS;END ARCHITECTURE one ; -a,b,s 为敏感信号表为敏感信号表 完整的条件语句完整的条件语句完整的条件语句完整的条件语句只能构成组合逻辑电只能构成组合逻辑电只能构成组合逻辑电只能构成组合逻辑电路。路。路。路。IFIF语句表示:语句表示:语句表示:语句表示:S=0YesNoy = a;y b1 THEN q1 = 1 ; ELSIF a1 b1 THEN q1 b1 THEN q1 = 1 ; ELSE q1 = 0 ; END IF; END

67、PROCESS ;END ;例例b:EDA软件综合结果软件综合结果玻窿七守胡践份擦瘫汞博出袁慰圾歌含沧褐譬冯课坡准算龙揖欲昭成岳豢vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计2.6 实现时序电路的实现时序电路的VHDL不同表述不同表述 LIBRARY IEEE ;LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS - DFF 端口声明端口声明 PO

68、RT (CLK, D : IN STD_LOGICSTD_LOGIC ; Q : OUT STD_LOGICSTD_LOGIC );END ENTITY DFF1;ARCHITECTURE bhv OF DFF1 IS SIGNALSIGNAL Q1 : STD_LOGIC ; BEGIN PROCESS (CLK) - 进程进程 BEGIN IF CLKEVENT AND CLK = 1CLKEVENT AND CLK = 1 THEN Q1 = D ; END IF; END PROCESS ; Q = Q1 ; END ARCHITECTURE bhv; CLK CLK信号定义为信号定义

69、为信号定义为信号定义为STD_LOGICSTD_LOGIC数据类型,有数据类型,有数据类型,有数据类型,有9 9种取值,该描述并不能保种取值,该描述并不能保种取值,该描述并不能保种取值,该描述并不能保证证证证CLKCLK是从是从是从是从“0”“0”到到到到“1”“1”的上升沿跳变。的上升沿跳变。的上升沿跳变。的上升沿跳变。斡帅俏伯莎止腾驹邓韶母赠躬设矛否摩廷索统苫笺聚估兑惶蒜邢涉淹呀市vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】.PROCESS (CLK) BEGIN IF CLKEVENT AND (CLK=1) CLKEVENT AND (CLK

70、=1) ANDAND (CLKLAST_VALUE=0) (CLKLAST_VALUE=0) THEN Q = D ; -确保确保CLK的变化是一次上升沿的跳变的变化是一次上升沿的跳变 END IF; END PROCESS ; .PROCESS (CLK)BEGIN - 同上同上 IF CLK=1 CLK=1 ANDAND CLKLAST_VALUE=0 CLKLAST_VALUE=0 THEN Q = D ; END IF; END PROCESS ; 2.6 实现时序电路的实现时序电路的VHDL不同表述不同表述 CLKLAST_VALUE=0CLKLAST_VALUE=0为真,表示为真,

71、表示为真,表示为真,表示CLKCLK在变化之前时刻为在变化之前时刻为在变化之前时刻为在变化之前时刻为00。通贸湛殿武万饮邑腆迅移阻犁裔粳绩承嗜槛乘喜炒署砍翔戌斑剂脆媳檬罗vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALLUSE IEEE.STD_LOGIC_1164.ALL ;ENTITY DFF3 IS PORT (CLK,D : IN STD_LOGIC ; Q : OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF3 IS SI

72、GNAL Q1 : STD_LOGIC; BEGIN PROCESS (CLK) BEGIN IF rising_edge(CLK)rising_edge(CLK) THEN Q1 = D ; END IF; END PROCESS ; Q = Q1 ; END ; Rising_edge( ) Rising_edge( )是是是是IEEEIEEE库中库中库中库中STD_LOGIC_1164STD_LOGIC_1164标准程序包标准程序包标准程序包标准程序包内预定义的函数,该函数只能内预定义的函数,该函数只能内预定义的函数,该函数只能内预定义的函数,该函数只能用于标准逻辑位数据类型用于标准逻辑

73、位数据类型用于标准逻辑位数据类型用于标准逻辑位数据类型STD_LOGICSTD_LOGIC的信号。因此,的信号。因此,的信号。因此,的信号。因此,在实体前必须打开在实体前必须打开在实体前必须打开在实体前必须打开STD_LOGIC_1164STD_LOGIC_1164程序包。程序包。程序包。程序包。转无恿拥蜕侄粘勤医塞唁鹅苟均掣纠身透邑马狮凸拓剖刀扔题烁整垒著低vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计.PROCESS BEGIN wait untilwait until

74、 CLK = 1 ; Q = D ;END PROCESS; 当进程中使用当进程中使用wait语句后,就不必列出敏感信语句后,就不必列出敏感信号表。号表。2.6 实现时序电路的实现时序电路的VHDL不同表述不同表述 驰谦铝凸译肩遵厕束旭身萨滴减缝唁展番咨诅寐索盔海早驻祷压总坐别偿vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计.PROCESS (CLKCLK)BEGIN IF CLK = 1CLK = 1 THEN Q = D ; END IF; END PROCESS ;

75、将将将将CLKCLK放入敏感信号表中,放入敏感信号表中,放入敏感信号表中,放入敏感信号表中,CLKCLK边沿的检测由边沿的检测由边沿的检测由边沿的检测由PROCESSPROCESS和和和和IFIF语句结合实现。语句结合实现。语句结合实现。语句结合实现。注:注:注:注:D D信号并没有在敏感表中。信号并没有在敏感表中。信号并没有在敏感表中。信号并没有在敏感表中。上升沿触发上升沿触发DFF的仿真波形:的仿真波形:2.6 实现时序电路的实现时序电路的VHDL不同表述不同表述 肇绣网蚀闸净点糯负灼徐沁厉纯隆洼狠朱涤键酬传哉导店伍堰巩篆柬辛网vhdl设计初步(新模版)32513【课件】vhdl设计初步(

76、新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计.PROCESS (CLKCLK,D D) BEGIN IF CLK = 1CLK = 1 THEN Q = D ; END IF; END PROCESS ; 电平触发电平触发电平触发电平触发DFFDFF,即在,即在,即在,即在CLKCLK为为为为高电平高电平高电平高电平11时,输出时,输出时,输出时,输出QQ随随随随D D的变化的变化的变化的变化而变化,而而变化,而而变化,而而变化,而CLKCLK为为为为00时输出保时输出保时输出保时输出保持不变。持不变。持不变。持不变。 注:注:注:

77、注:D D信号在敏感表中。信号在敏感表中。信号在敏感表中。信号在敏感表中。电平触发电平触发DFF的仿真波形:的仿真波形:2.6 实现时序电路的实现时序电路的VHDL不同表述不同表述 哄跋玩侧郑饯送婉项封裹馅李玄瓜舵北巡戚破泰项汲卵克包钉私掌初炸廖vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计2 小结小结VHDL VHDL 库:库:库:库:LibraryLibrary语句,包括语句,包括语句,包括语句,包括IEEEIEEE库、标准库库、标准库库、标准库库、标准库STDSTD、

78、工作库、工作库、工作库、工作库WorkWork等;等;等;等;程程程程 序序序序 包:包:包:包:USEUSE语句,如语句,如语句,如语句,如Std_logic_1164Std_logic_1164程序包、程序包、程序包、程序包、StandardStandard程序包等;程序包等;程序包等;程序包等;数据类型:数据类型:数据类型:数据类型:Std_logicStd_logic,定义值中包括,定义值中包括,定义值中包括,定义值中包括00、11、ZZ和和和和XX等共等共等共等共9 9种取值;种取值;种取值;种取值;数据对象:数据对象:数据对象:数据对象:信号信号信号信号SignalSignal、变

79、量、变量、变量、变量VariableVariable、常量、常量、常量、常量ConstantConstant;信号属性:信号属性:信号属性:信号属性:信号属性函数信号属性函数信号属性函数信号属性函数EVENTEVENT、LAST_VALUELAST_VALUE;时钟检测:时钟检测:时钟检测:时钟检测:上升沿检测上升沿检测上升沿检测上升沿检测Clkevent AND Clk=1Clkevent AND Clk=1、Rising_edge( )Rising_edge( )。时序电路:时序电路:时序电路:时序电路:不完整条件语句产生时序电路。不完整条件语句产生时序电路。不完整条件语句产生时序电路。不

80、完整条件语句产生时序电路。擂下忌宏吓逻奸嫡哭再贾睬肪驾调至蜕息并勇芒周高崩哦项篷金悄贰篡黍vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计3 更复杂电路的更复杂电路的VHDL描述描述CLKQn 时序电路中,一般计数器的输入时序电路中,一般计数器的输入/输出信号包括:输出信号包括:?EntityArchitecture电路设计电路设计3.1 计数器的计数器的VHDL描述描述闯玩傈诧凡佣沤可匆倔嘎蠢悼即孙耳连渊现社骤塘彤丽廷揍赔验橙权署德vhdl设计初步(新模版)32513【课件

81、】vhdl设计初步(新模版)32513【课件】ENTITY CNT4 IS PORT ( CLK : IN BIT ; Q : BUFFERBUFFER INTEGER range 15 downto 0 ) ; INTEGER range 15 downto 0 ) ; END CNT4; ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q = Q + 1 ;Q = Q + 1 ; END IF; END PROCESS ;END bhv; 【例【例1】: 4位二进制加法计数

82、器位二进制加法计数器注意注意注意注意:( (1) Q1) Q的端口模式为的端口模式为的端口模式为的端口模式为BUFFERBUFFER; (2) Q (2) Q的数据类型为的数据类型为的数据类型为的数据类型为INTEGERINTEGER。注意注意注意注意CLKQn?阔阵肢妹卧醇壬费积出串序锄拎阳跪惊俯彤臼淌猖亭拱愤态沛秃姬息祟朋vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】ENTITY CNT4 IS PORT ( CLK : IN BIT ; Q : BUFFERBUFFER INTEGER range 15 downto 0 ) ; INTEGER

83、range 15 downto 0 ) ; END CNT4; ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q = Q + 1 ;Q = Q + 1 ; - -如何理解?如何理解?如何理解?如何理解? END IF; END PROCESS ;END bhv; 【例【例1】: 4位二进制加法计数器位二进制加法计数器注意注意注意注意注意注意注意注意:在使用整数时,:在使用整数时,:在使用整数时,:在使用整数时,VHDLVHDL综合器要求必综合器要求必综合器要求必综合器要求必须

84、使用须使用须使用须使用“Range”“Range”限定范围,否则无限定范围,否则无限定范围,否则无限定范围,否则无法综合。法综合。法综合。法综合。傍先烤捎于运砷渠云眠阉梨划茁终超让届烬娜刻养夏稻汹豆疚恼摩倒脊强vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计 VHDL VHDL中规定,算术操作符中规定,算术操作符中规定,算术操作符中规定,算术操作符“+”“+”、“-”“-”的数据类型的数据类型的数据类型的数据类型(除特殊说明,如重载函数)只能是整型(除特殊说明,如重载函数)只

85、能是整型(除特殊说明,如重载函数)只能是整型(除特殊说明,如重载函数)只能是整型“INTEGER”“INTEGER”。1 十进制整数十进制整数35 十进制整数十进制整数10E3 十进制整数十进制整数16#D9# 十六进制整数十六进制整数8#562# 八进制整数八进制整数2#11001001# 二进制整数二进制整数整数的表达不加引整数的表达不加引号,而逻辑位的数号,而逻辑位的数据必须加引号,如据必须加引号,如1、0、“101”。整数(整数(Integer)类型)类型VHDL中整数常量的书写方式:中整数常量的书写方式:抨压陵束缨荒任睁搬帕宽萎殃患腋船友俊膨婴址窘樊栅吹痕潭浙扁擂妹草vhdl设计初步

86、(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计3.2 计数器设计的其他表述方法计数器设计的其他表述方法LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALLUSE IEEE.STD_LOGIC_UNSIGNED.ALL ; - 运算符重载运算符重载ENTITY CNT4 IS PORT ( CLK : IN STD_LOGICSTD_LOGIC ; Q : OUTOUT STD_LOGIC_V

87、ECTOR(3 DOWNTO 0)STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END ENTITY CNT4; ARCHITECTURE bhv OF CNT4 IS SIGNAL Q1 : SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = Q1 + 1 ;Q1 = Q1 + 1 ; -“+” 运算符重载运算符重载 END IF; END PROCESS ; Q =

88、 Q1 ;Q = Q1 ;END ARCHITECTURE bhv; 桓障釜檄蛇粪踌处毯冒冬杰菌线玖熙圆滔存吱幼抿僻沸斟记铰瘫约蹈辑位vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计3.2 计数器设计的其他表述方法计数器设计的其他表述方法LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALLUSE IEEE.STD_LOGIC_UNSIGNED.ALL ; - 运算符重载运算符重

89、载ENTITY CNT4 IS PORT ( CLK : IN STD_LOGICSTD_LOGIC ; Q : OUTOUT STD_LOGIC_VECTOR(3 DOWNTO 0)STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END ENTITY CNT4; ARCHITECTURE bhv OF CNT4 IS SIGNAL Q1 : SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK =

90、1 THEN Q1 = Q1 + 1 ;Q1 = Q1 + 1 ; -“+” 运算符重载运算符重载 END IF; END PROCESS ; Q = Q1 ;Q = Q1 ;END ARCHITECTURE bhv; EDA软件综合结果软件综合结果组合电路加组合电路加1逻辑逻辑4位二进制位二进制锁存器锁存器输出反输出反馈馈锁存时锁存时钟钟职茅躇经行刊了这迅遁滋擂轻竹炼咆跺剑署职椰写殃褐五蟹飞释物钠中素vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计3.2 计数器设计的其他表

91、述方法计数器设计的其他表述方法LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALLUSE IEEE.STD_LOGIC_UNSIGNED.ALL ; - 运算符重载运算符重载ENTITY CNT4 IS PORT ( CLK : IN STD_LOGICSTD_LOGIC ; Q : OUTOUT STD_LOGIC_VECTOR(3 DOWNTO 0)STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END ENTITY CNT4; ARCHITECTURE bhv OF CN

92、T4 IS SIGNAL Q1 : SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = Q1 + 1 ;Q1 = Q1 + 1 ; -“+” 运算符重载运算符重载 END IF; END PROCESS ; Q = Q1 ;Q 0); -计数器复位(高有效)计数器复位(高有效) ELSIF (clkEVENT AND clk = 1) THEN -检测时钟上升沿检测时钟上升沿 IF (en

93、=1) THEN -检测是否允许计数(不完全条件语句)检测是否允许计数(不完全条件语句) IF cqi 9 THEN cqi :=cqi+1; -允许计数,且计数允许计数,且计数0); -计数状态计数状态=9,下一状态清零,下一状态清零 END IF; END IF; END IF; IF cqi = 9 THEN co = 1; -计数状态计数状态=9,输出进位信号,输出进位信号 ELSE co =0; END IF; qcnt 0); -计数器复位(高有效)计数器复位(高有效) ELSIF (clkEVENT AND clk = 1) THEN -检测时钟上升沿检测时钟上升沿 IF (en

94、=1) THEN -检测是否允许计数(不完全条件语句)检测是否允许计数(不完全条件语句) IF cqi 9 THEN cqi :=cqi+1; -允许计数,且计数允许计数,且计数0); -计数状态计数状态=9,下一状态清零,下一状态清零 END IF; END IF; END IF; IF cqi = 9 THEN co = 1; -计数状态计数状态=9,输出进位信号,输出进位信号 ELSE co =0; END IF; qcnt X) (OTHERS=X) SIGNAL d1 : STD_LOGIC_VECTOR(4 DOWNTO 0); VARIABLE a1 : STD_LOGIC_VE

95、CTOR(15 DOWNTO 0); . d1 0); a1 := (OTHERS=0) ; 相关语法说明相关语法说明曰昔篡拯记回赏臣魏誊绷钦靡琼倾午写趾唤揽侠傣搏攀格氓拉拐痰雷箔举vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计3.3 不同工作方式的时序电路设计不同工作方式的时序电路设计 例例例例3.3.23.3.2:设计一个带有并行输入置数,串行输出的移位寄存器。:设计一个带有并行输入置数,串行输出的移位寄存器。:设计一个带有并行输入置数,串行输出的移位寄存器。:设计一个

96、带有并行输入置数,串行输出的移位寄存器。library ieee;use ieee.std_logic_1164.all;ENTITY shifter IS-实体声明实体声明实体声明实体声明 PORT( clk, load : IN std_logic; din : IN std_logic_vector(7 downto 0); qb : OUT std_logic);END ENTITY shifter;凹蕴瞩馋典叮桌迹翼按豹洪道托肺仓帧绚锅番玩则屉辈卖饶敷瞒杯杰嫡娃vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】ARCHITECTURE behav

97、e OF shifter 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 - load=0, - load=0, 移位操作移位操作移位操作移位操作 reg8(6 downto 0) :=reg8 (7 downto 1); END IF; END IF; qb = reg8(

98、0) ; - 串行输出最低位串行输出最低位 END PROCESS; END ARCHITECTURE behave;移位寄存器时序波形仿真结果移位寄存器时序波形仿真结果守颤暮削婶眉放怖贾奔裔卡器转窃直昂脯苔食翅图刊娃并甲氖宵羹镭会僵vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计3.4 1位二进制全加器的位二进制全加器的VHDL描述描述 1位二进制全加器引脚图位二进制全加器引脚图1位二进制全加器实现原理图位二进制全加器实现原理图1位二进制位二进制半加器半加器越祸幅雀羽繁诈似

99、独弊古收枚藻扫郧巨咯绎铆困诉官爆肌历淑乙慑六濒软vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计3.4.1 半加器的半加器的VHDL描述描述 1001010110001100cosoba半加器真值表半加器真值表 coasobnotxnor2and2半加器电路图半加器电路图3.4 1位二进制全加器的位二进制全加器的VHDL描述描述 so=?co=?试锨撵资遗毅惯媚赚晴广竭智譬宇恨中貉辑涨摇叮挥讥蹋洒袍均斧联滚匹vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版

100、)32513【课件】-半加器描述半加器描述(1):布尔方程描述方法:布尔方程描述方法LIBRARY IEEE; 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; 3.4.1 半加器的半加器的V

101、HDL描述描述 屹紫烧籍弘桩伏坏炯乳虏恰糜函七论删皱给宇扼堂苍贷打泡绵班褒豹籍琴vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】-半加器描述半加器描述(2):真值表描述方法(:真值表描述方法(1) -这里省略库和实体声明部分这里省略库和实体声明部分ARCHITECTURE fh1 OF h_adder is SIGNALSIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; BEGIN abc = a & b ; -aabc = so=0; co= so=1; co= so=1; co= so=0; co = NULL ;

102、 END CASE; END PROCESS; END ARCHITECTURE fh1 ; 矫尿罢笆狸蓉碌著阑贬殿迭换痰雨摹猾贬备衷舀光采胳鲍刷歹孪赣卿译欺vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】VHDL描述中的基本结构与语法:描述中的基本结构与语法:VHDL运算符运算符 &:连接运算符:连接运算符 &连连接接,将将两两个个对对象象或或矢矢量量连连接接成成维维数数更更大大的矢量的矢量, 它可给代码书写带来方便。它可给代码书写带来方便。 例例如如,为为表表达达a=1 and b=0 and c=1概概念念,可可定定义义一一个个变变量量: vabc

103、=a & b & c;则则可可用用 vabc=“101”表达上述内容。表达上述内容。贞谢特爬氧动獭俭冯儡庶钨橡廉烙骋麦屯乡冷猫崇氢休涝畏蔓尔暗抿赌站vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】-半加器描述半加器描述(3):真值表描述方法(:真值表描述方法(2) -这里省略库和实体声明部分这里省略库和实体声明部分ARCHITECTURE fh1 OF h_adder IS SIGNAL abc, cso : std_logic_vector(1 downto 0) ;SIGNAL abc, cso : std_logic_vector(1 downto

104、 0) ;BEGIN abc = a & b; co = cso(1) ; so = cso(0);co = cso(1) ; so cso cso cso cso null ; -或或“00” END CASE; END PROCESS;END fh1;修孙吼乘酷吨摇豹膘万像毕涕林河篇蛾狰剥局两谊凶尝放蚜骚批瘸葱恳佛vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计-“或门或门”逻辑描述逻辑描述LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.AL

105、L; -库、函数包调用库、函数包调用ENTITY or2a IS -实体声明实体声明 PORT (a, b : IN STD_LOGIC; c : OUT STD_LOGIC );END ENTITY or2a;ARCHITECTURE one OF or2a IS -结构体描述结构体描述 BEGIN c = a OR b ;c 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 ARC

106、HITECTURE fd1;滋尽萨纵媒酋键赖昌减钡想诣俄孵肌衫帽戍妥隘蔑透擒在诅赘抨酥讹席米vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】(1) CASE语句语句 CASE CASE IS IS When When = = ; . ; ; . ; ; When When = = ; . ; ; . ; ; . . WHEN OTHERS = ;END CASE END CASE ; VHDL描述中的基本结构与语法:描述中的基本结构与语法:翔琵拔头簧抛谢蕉摄欲晴落赤谭迭诛百呀喻铜啄时葫质莆蔼挠膜碱粤蜗淳vhdl设计初步(新模版)32513【课件】vhdl

107、设计初步(新模版)32513【课件】STD_LOGIC_VECTOR STD_LOGIC 在在使使用用STD_LOGIC_VECTOR中中,必必须须注注明明其其数数组组宽宽度度,即位宽,如:,即位宽,如: B : OUT STD_LOGIC_VECTOR (7 DOWNTO 0)(7 DOWNTO 0) ; SIGNAL A :STD_LOGIC_VECTOR (1 TO 4)(1 TO 4) ; B = 01100011 ; - B(7)为为 0 B(4 DOWNTO 1) = “0001 ; - B(4)为为 0 B(7 DOWNTO 4) = A ; - B(6)等于等于 A(2) (2

108、) 标准逻辑矢量数据类型标准逻辑矢量数据类型 裸拼拢俱昼妆郴颅袒瘦竹轿畴唉捌疚涣陶炬籽到电啪闸鹃上烟聚京崔敖陶vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ;SIGNAL d : STD_LOGIC_VECTOR (1 DOWNTO 0) ;. a 连接端口名,连接端口名,.); (4) 元件声明及例化语句元件声明及例化语句U1:h_adder PORT MAP(a=ain, b=bin, co=d, so=e);氢箔隔距拼公戍咏菲到判府橡仿六斡级锤申坪脂虑灌仰短冀饯俩明

109、侥刷观vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计1、状态机分类:、状态机分类:按输出方按输出方式分式分Mealy型型Moore型型输出仅为当前状态的函输出仅为当前状态的函数数输出是当前状态和输入输出是当前状态和输入的函数的函数按结按结构分构分单单 进进 程程多多 进进 程程主进程和辅进程合一主进程和辅进程合一分时序、组合主进程,分时序、组合主进程,辅助进程辅助进程4 有限状态机设计有限状态机设计 4.1 一般有限状态机的设计一般有限状态机的设计 时序电路可以称为有限状态

110、机时序电路可以称为有限状态机(Finite State Machine, FSM),以此命名的,以此命名的原因是可以使用有限数量的状态表示时序电路的功能行为。原因是可以使用有限数量的状态表示时序电路的功能行为。舌薪萨淮新塔赞尹水稗侨揽貉要客走甭皖径杉辅淬湍鸦榆崭倍钡合暴膊辛vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计按状态按状态表达分表达分符号状态机符号状态机确定编码状态机确定编码状态机S0,S1,S2,000,001,010, 按编码按编码方式分方式分顺序编码顺序编码一

111、位热码一位热码二进制顺序编码等二进制顺序编码等00001,00010,00100, 其它编码其它编码格雷码,循环码,等格雷码,循环码,等4 有限状态机设计有限状态机设计君终预忍缅料讳囚俗搁喷熟佳乞吩福婚界阑攫疤涂卧杂辕老证腺桨蛊络葫vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计2、用户自定义数据类型、用户自定义数据类型4 有限状态机设计有限状态机设计4.1 一般有限状态机的设计一般有限状态机的设计TYPE 数据类型名数据类型名 IS 数据类型定义;数据类型定义;例如:例如:

112、TYPE m_state IS (st0,st1,st2,st3,st4,st5);SIGNAL present_state,next_state : m_state;娜秆撅缕该唯袄遍扦证靛卜足凉秉抗缝新计锭刷毁讳渠低猩隙虚君袍来径vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计3、一般状态机的设计、一般状态机的设计a、说明部分、说明部分例如:例如: SIGNAL current_state,next_state : m_state; ARCHITECTURE beh OF

113、s_machine IS TYPE m_state IS (st0,st1,st2,st3,st4,st5);4 有限状态机设计有限状态机设计4.1 一般有限状态机的设计一般有限状态机的设计滋哟泥敛音浆撂止瞪凑儿蔓驻卓矣释师入哑锰壁砌俞锦焙命踌播镑竿双嚼vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】b、主控时序进程、主控时序进程 该部分是在该部分是在CLK控制下,进行状态转换控制下,进行状态转换: current_state = next_state ;c、主控组合进程、主控组合进程 该部分是确定该部分是确定current_state,next_sta

114、te的取值,的取值,为时序进程提供参数;进行状态转换条件的判定;进为时序进程提供参数;进行状态转换条件的判定;进行输出判定。行输出判定。d、辅助进程、辅助进程 该部分是配合主控时序进程或主控组合进程,完该部分是配合主控时序进程或主控组合进程,完成某种成某种算法算法、输出输出数据锁存数据锁存等。等。阁履爷羚诌耪空辰酞钾测狂滓熙贰削坏恕果彬彦吧貉侍仰巫湘灰觅考坑汽vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计RSTS0/5S2/12S3/14S1/80000elseelseel

115、se1111else State_inputsState/outputclkresetState inputs24Comb_outputs状态机4 有限状态机设计有限状态机设计4.2 双进程双进程Moore型有限状态机的设计型有限状态机的设计盂喊咬虫彩慰他俏越埠钩丛瞻嫩擎媒鼎泡瓜乳眩怕柞岩磅卡录外娩糕扑毒vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】Library ieee; Use ieee.std_logic_1164.all;Entity s_machine is Port ( clk, reset : in std_logic; State_i

116、nputs : in std_logic_vector(0 to 1); comb_outputs : out integer range 0 to 15); End s_machine; Architecture behv of s_machine is type fsm_st is (s0,s1,s2,s3); type fsm_st is (s0,s1,s2,s3); Signal current_state, next_state : fsm_st; Signal current_state, next_state : fsm_st; clkresetState inputs24Com

117、b_outputs状态机炙钝历骨碳脸书讫件柔狡羊金狄乎改掖坑系处数静乙卞斗空淹终冉蛔秀奠vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】Beginreg: process (reset, clk)begin if reset =1 then current_state = s0;elsif (clkevent and clk =1 ) then current_state comb_outputs = 5; if state_inputs =“00” then next_state = s0; else next_state comb_outputs =

118、 8; if state_inputs =“00” then next_state = s1;else next_state comb_outputs = 12; if state_inputs =“11” then next_state = s0;else next_state comb_outputs = 14; if state_inputs =“11” then next_state = s3;else next_state = s0; end if;end case;end case;end process;end behv;RSTS0/5S2/12S3/14S1/80000else

119、elseelse1111else户乃糯确车椎锥蛰基飞误辱汇汉娟笨纯酌敞俩右滑偿良滓函喷乔络额至医vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计Mealy型型输出是当前状态和输入的函数输出是当前状态和输入的函数例:例: “1110”序序列检测器设计列检测器设计0/11/01/0sa1/00/00/00/0sbscsdx/z1/04 有限状态机设计有限状态机设计4.3 Mealy型有限状态机的设计型有限状态机的设计多颠拐诺锚欧峭史畸豁孽狭拓粤咱翟漱秩澡采哎嗜嘎玄厨琵拨虾雨辙沙简

120、vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY statem IS PORT ( clk : IN std_logic; x,reset : IN std_logic; z: out std_logic );END statem;0/11/01/0sa1/00/00/00/0sbscsdx/z1/0例:例: “1110”序列检测器设计序列检测器设计筑琴姆佳责贤鼓的硒狐钞觅膏怒星享完碌蔚埋娶扯航毙芍鱼绽项狞筐瞬诵vhdl设计初步(新模版)32513【课件】vhd

121、l设计初步(新模版)32513【课件】ARCHITECTURE behave OF statem ISTYPE STATE_TYPE IS (sa, sb, sc,sd);SIGNAL state: STATE_TYPE;BEGIN PROCESS (clk,reset) BEGIN IF reset = 1 THEN state IF x=1 THEN state = sb; ELSE state IF x=1 THEN state = sc; ELSE state IF x=1 THEN state=sd; ELSE state IF x=1 THEN state = sd; ELSE s

122、tate=sa; END IF;END CASE; END IF; -reset END PROCESS; z=1 when state=sd and x=0 else 0; END ARCHITECTURE behave;0/11/01/0sa1/00/00/00/0sbscsdx/z1/0锅拖波僵妈槐蚜阑尤睹裂腆嵌兜辰冒扇互指冈穿氟奠磋詹快闪垮蛤燥原爱vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】 2006 Altera CorporationFinite State Machine (FSM) - State DiagramRESETnw = 1

123、Tap1select = 0first = 1Idlenxt = 0first = 0Tap2select = 1first = 0Tap3select = 2Tap4select = 3nxt = 1nw = 1nw = 0Inputs: reset nwOutputs: select first nxt倘四爬尔痹染涧真善遵萧厩卯卧唐淡垢扣扩你谷翠瘤蘑笺俭貌晤埠优栖管vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】97 2006 Altera CorporationWriting VHDL Code for FSMnTo Determine Next

124、State Transition/Logic:-Use a CASE Statement Inside IF-THEN Statement That Checks for the Clock ConditionlRemember: State Machines Are Implemented Using RegistersnTo Determine State Machine Outputs:-Use Conditional and/or Selected Signal Assignments-Or Use a Second Case Statement to Determine the St

125、ate Machine Outputs牢畅司秸蛹拭陷重辱耿彻圣谜骗脯第吠贱猩浸捐撞哪比患戊赖漂绚乾痛介vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】98 2006 Altera CorporationFSM VHDL Code - Enumerated Data TypeRESETnw = 1Tap1select = 0first = 1Idlenxt = 0first = 0Tap2select = 1first = 0Tap3select = 2Tap4select = 3nxt = 1nw = 1nw = 0Enumerated Data Typ

126、eLIBRARY IEEE;USE IEEE.std_logic_1164.all;USE IEEE.std_logic_unsigned.all;USE IEEE.std_logic_arith.all;ENTITY state_m2 ISPORT(clk, reset, nw : in std_logic;sel: out std_logic_vector(1 downto 0);nxt, first: out std_logic);END state_m2;ARCHITECTURE logic OF state_m2 ISTYPE state_type IS (idle, tap1, t

127、ap2, tap3, tap4);SIGNAL filter : state_type;Inputs: reset nwOutputs: select first nxt顶肪舰尾蓝示禾墨寞痒纠跟园搓训拱赖蓖峰澈闹堪品幽奈荣旧李逊辣札敬vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】99 2006 Altera CorporationFSM VHDL Code - Next State LogicRESETnw = 1Tap1select = 0first = 1Idlenxt = 0first = 0Tap2select = 1first = 0Tap3

128、select = 2Tap4select = 3nxt = 1nw = 1nw = 0BEGINPROCESS (reset, clk)BEGINIF reset = 1 THENfilter IF nw = 1 THENfilter filter filter filter IF nw = 1 THENfilter = tap1;ELSEfilter = idle;END IF;END CASE;END IF;END PROCESS;滋豫昆躁舱侩榨窟绘郝容淆械生仅居覆法筋滞祁澎臂雨彦影烃抢索勾利炉vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】100

129、2006 Altera CorporationFSM VHDL Code - Outputsnxt = 1 WHEN filter=tap4 ELSE 0;first = 1 WHEN filter=tap1 ELSE 0;WITH filter SELECT sel nxt = 0;first sel = 00;first sel = 01;first sel sel = 11;nxt = 1;END CASE; END PROCESS output;END logic;RESETnw = 1Tap1select = 0first = 1Idlenxt = 0first = 0Tap2sel

130、ect = 1first = 0Tap3select = 2Tap4select = 3nxt = 1nw = 1nw = 0痛铃筷兜兆坟恤半赦略右拖很瘁狰任坡羹疚急虞然试栋侥镜驴荡馒苗侍湖vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】102西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计习习 题题 (Ex-1Ex-1)画出下例实体描述对应的原理图符号元件:)画出下例实体描述对应的原理图符号元件:)画出下例实体描述对应的原理图符号元件:)画出下例实体描述对应的原理图符号元件:ENTITY buf3s IS - 实体实体1

131、: 三态缓冲器三态缓冲器 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); END ENTITY mux21;菱惺熊势疡狡膘垣缀伏韧泛悉武帘迄羽钟悠秤削挛摔侧岸壳鸦包囊孰淫诌vhdl设计初步(新模版)32513【课件

132、】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计(Ex-2Ex-2)图图中中所所示示的的是是4选选1多多路路选选择择器器,试试分分别别用用IF_THEN语语句句和和WITH.SELECT语语句句的的表表达达方方式写出此电路的式写出此电路的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。 习习 题题

133、 黄牟衙关忿垛般擎转檀习促瑶甭图蜀蛛芳尿衍阻副唇朱睁需圭椰击今襟仰vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计(Ex-3Ex-3)图图中中所所示示的的是是双双2选选1多多路路选选择择器器构构成成的的电电路路MUXK,对对于于其其中中MUX21A,当当s=0和和1时时,分分别别有有y=a和和y=b。试试在在一一个个结结构构体体中中用用两两个个进进程程来来表表达达此此电电路路,每每个个进进程程中中用用CASE语语句句描描述述一个一个2选选1多路选择器多路选择器MUX21A。

134、习习 题题 捉偷募斧花羹柱糜狈里闽傻渊百劈极纸冯歧晦算卯鹏独岭血垄璃艘簧痕平vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计(Ex-4Ex-4)图图中中是是一一个个含含有有上上升升沿沿触触发发的的D触触发发器器的的时时序序电电路,试写出此电路的路,试写出此电路的VHDL设计文件。设计文件。 习习 题题 溪陛豌趾甄甸牢摔脏舵党声椰触买喀挡旧乙卿颜朵肄蚀迅咆嘛吨漏羡撒楔vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精

135、品课程数字电路与系统设计国家级精品课程数字电路与系统设计(Ex-5Ex-5)给出给出1位全减器的位全减器的VHDL描述。要求:描述。要求: (1)首首先先设设计计1位位半半减减器器,然然后后用用例例化化语语句句将将它它们们连连接接起起来来,图图中中h_suber是是半半减减器器,diff是是输输出出差差,s_out是是借借位位输输出出,sub_in是是借位输入。借位输入。 (2)以以1位位全全减减器器为为基基本本硬硬件件,构构成成串串行行借借位位的的8位位减减法法器器,要要求用例化语句来完成此项设计求用例化语句来完成此项设计(减法运算是减法运算是 x y - sun_in = diffr)。

136、习习 题题 鲸煞垂纺乘载摈驳悯复诫燃办骤忘戴通倦扒匙伯摹兆庞罢碘藤妥铝附簧色vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计(Ex-6Ex-6)根据下图,写出顶层文件根据下图,写出顶层文件MX3256.VHD的的VHDL设计文件。设计文件。 (Ex-7Ex-7)设设计计含含有有异异步步清清零零和和计计数数使使能能的的16位位二二进进制制加加减减可可控控计计数数器。器。 习习 题题 浸邀苹乏熊挡毁臼喝筒讶腑介歼逢卉钠所椭宙鲸缨抡简祖彬耸祸香褥钟尧vhdl设计初步(新模版)325

137、13【课件】vhdl设计初步(新模版)32513【课件】西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计数字信号的发送和接收电路数字信号的发送和接收电路序列产生器序列产生器数字锁数字锁汽车尾灯控制电路汽车尾灯控制电路交通灯控制器交通灯控制器三层电梯控制器三层电梯控制器竞赛抢答计时器竞赛抢答计时器EDA实验题目实验题目出租车计费器出租车计费器秒表秒表智能数字钟智能数字钟电子琴电子琴乐曲演奏自动演奏器乐曲演奏自动演奏器流水灯流水灯自动售票机自动售票机含徘裁架港沽奸完辞祸葬沤痹雪矫绳肠刷恒苏诣恰处朗惮托血怪欠垦哦获vhdl设计初步(新模版)32513【课件】vhdl设计初步(新模版)32513【课件】

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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