电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

数字系统设计与EDA技术 第2版 教学课件 ppt 作者 于润伟 第5章 VHDL语言的并行语句

32页
  • 卖家[上传人]:E****
  • 文档编号:89503410
  • 上传时间:2019-05-26
  • 文档格式:PPT
  • 文档大小:2.67MB
  • / 32 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、数字系统设计与EDA技术,主编:于润伟,本章要点 VHDL程序的结构 VHDL的数据结构 VHDL的并行语句 编码器的设计,第5章 VHDL语言的并行语句,-库和程序包部分 LIBRARY IEEE; -IEEE库 USE IEEE.STD_LOGIC_1164.ALL;-调用IEEE库中STD_LOGIC_1164程序包 -实体部分 ENTITY notA IS -实体名为 notA PORT ( -端口说明 a:IN STD_LOGIC; -定义端口类型和数据类型 y:OUT STD_LOGIC); END notA; -实体结束 -结构体部分 ARCHITECTURE inv OF notA IS -结构体名为 inv BEGIN y = NOT a; -将a取反后赋值给输出端口y END inv; -结构体结束,5.1 VHDL程序的结构,1库 LIBRARY 库名 ; 常用的库有IEEE库、STD库和WORK库。 2程序包 调用程序包的通用模式为:USE 库名.程序包名.ALL; 例如调用STD_LOGIC_1164程序包中的项目需要使用以下语句: LIBRARY IEEE;

      2、 USE IEEE.STD_LOGIC_1164.ALL;,5.1.1 库和程序包,5.1.2 VHDL的实体,实体的格式如下: ENTITY 实体名 IS GENERIC(类属说明) PORT(端口说明) END ENTITY 实体名; 1类属说明 GENERIC(常数名1:数据类型1:= 设定值1; ; 常数名n:数据类型n:= 设定值n); 2端口说明 PORT(端口信号名1:端口模式1 数据类型1; ; 端口信号名n:端口模式n 数据类型n);,5.1.3 VHDL的结构体,一个实体中可以有一个结构体,也可以有多个结构体,但各个结构体不应有重名, 其格式如下: ARCHITECTURE 结构体名 OF 实体名 IS 结构体说明部分; BEGIN 功能描述语句; END ARCHITECTURE 结构体名;,5.2.1 标识符 (1)由26个英文字母、数字09及下划线“_”组成。 (2)第一个字符必须以字母开头。 (3)下划线不能连用,最后一个字符不能是下划线。 (4)对大小写字母不敏感(英文字母不区分大小写)。,5.2 VHDL的数据结构,1常量 CONSTANT 常量名,常量

      3、名:数据类型:= 表达式; 2变量 VARIABLE 变量名,变量名:数据类型 约束条件 := 表达式; 3信号 SIGNAL 信号名,信号名:数据类型 约束条件 := 表达式;,5.2.2 数据对象,1STANDARD程序包中预定义的数据类型 (1)整数类型(INTEGER) (2)自然数(NATURAL)和正整数(POSITIVE)类型。 (3)实数(REAL)类型。 (4)位(BIT)类型。 (5)位向量(BIT_VECTOR)类型。,5.2.3 数据类型,(6)布尔(BOOLEAN)类型。 (7)字符(CHARACTER)类型。 (8)字符串(STRING)类型 (9)时间(TIME)类型。 (10)错误等级(SEVERITY LEVEL)类型。,(1)标准逻辑位(STD_LOGIC)数据类型。 (2)标准逻辑位向量(STD_LOGIC_VECTOR)数据类型。 (3)无符号(UNSIGNED)数据类型。 (4)有符号(SIGNED)数据类型。,2IEEE库中预定义的数据类型,(1)枚举类型(ENUMERATED) TYPE 数据类型名 IS(取值1,取值2,); (2)数组类

      4、型(ARRAY)。 TYPE 数据类型名 IS ARRAY 数组下标范围 OF 数组元素的数据类型; (3)用户自定义子类型 SUBTYPE 子数据类型名 IS 数据类型名 RANGE 数据范围;,3用户自定义数据类型,例如把INTEGER数据类型的信号A转换为STD_LOGIC_VECTOR数据类型的信号B,程序如下: SIGNAL A:INTEGER RANGER 0 TO 15; -定义信号A SIGNAL B:STD _LOGIC_VECTOR(3 DOWNTO 0); -定义信号B B=CONV_STD_LOGIC_VECTOR(A); -调用转换函数 注意:使用数据类型转换函CONV_STD_LOGIC_VECTOR,需要调用IEEE库中的STD_LOGIC_ARITH程序包。,5.2.4 数据类型间的转换,(1)逻辑运算符。 (2)关系运算符。 (3)移位运算符。 (4)符号运算符。 (5)连接运算符。 (6)算术运算符。,5.2.5 VHDL的运算符,5.3.1 信号赋值语句 1简单信号赋值语句 信号 = 表达式; 2条件信号赋值语句 信号 = 表达式1 WHEN 赋值

      5、条件1 ELSE 表达式2 WHEN 赋值条件2 ELSE 表达式n;,5.3 VHDL的并行语句,执行该语句时首先要进行条件判断,然后再进行信号赋值操作。当条件1满足时,就将表达式1的值赋给目标信号;当条件2满足时,就将表达式2的值赋给目标信号;当所有的条件都不满足时,就将表达式n的值赋给目标信号。 (1)只有当条件满足时,才能将该条件前面的表达式值赋给目标信号。 (2)对条件进行判断是有顺序的,位置靠前的条件具有较高的优级,只有不满足本条件的时候才判断下一个条件。 (3)条件表达式的结果为布尔类型。 (4)最后一个表达式后面不含有WHEN子句。 (5)条件信号赋值语句允许条件重叠,但位置在后面的条件不会被执行。,WITH 选择表达式 SELECT 目标信号 = 信号表达式1 WHEN 选择条件1, 信号表达式2 WHEN 选择条件2, , 信号表达式n WHEN 选择条件n; 先对选择条件表达式进行判断,当选择条件表达式的值符合某一选择条件时,就将该条件前面的信号表达式赋给目标信号。例如,当选择条件表达式的值符合条件1时,就将信号表达式1赋给目标信号;当选择条件表达式的值符合选择条

      6、件n时,就将信号表达式n赋给目标信号。,3选择信号赋值语句,(1)只有当选择条件表达式的值符合某一选择条件时,才将该选择条件前面的信号表达式赋给目标信号。 (2)每一个信号表达式后面都含有WHEN子句。 (3)由于选择信号赋值语句是并发执行的,所以不能够在进程中使用。 (4)对选择条件的测试是同时进行的,语句将对所有的选择条件进行判断,而没有优先级之分。这时如果选择条件重叠,就有可能出现两个或两个以上的信号表达式赋给同一目标信号,这样就会引起信号冲突,因此不允许有选择条件重叠的情况。 (5)选择条件不允许出现涵盖不全的情况。如果选择条件不能涵盖选择条件表达式的所有值,就有可能出现选择条件表达式的值找不到与之符合的选择条件,这时编译将会给出错误信息。,块语句是一种并行语句的组合方式,可以使程序更加有层次、更加清晰。在物理意义上,一个块语句对应一个子电路;在逻辑电路图上,一个块语句对应一个子电路图。块语句的格式如下: 块标号:BLOCK 说明语句; BEGIN 并行语句; ; END BLOCK 块标号; 块标号是块的名称,块说明语句与结构体的说明语句相同,用来定义块内局部信号、数据类型、

      7、元件和子程序,在块内并行语句区可以使用所有的并行语句。,5.3.2 块语句,一个结构体内可以包含多个进程语句,多个进程之间是同时执行的。进程语句本身是并行语句,但每个进程的内部则由一系列顺序语句构成。进程语句的格式如下: 进程名:PROCESS(敏感信号表) 进程说明; -说明用于该进程的常数,变量和子程序 BEGIN 变量和信号赋值语句; 顺序语句; END PROCESS 进程名;,5.3.3 进程语句,进程语句的主要特点归纳如下: (1)同一结构体中的各个进程之间是并发执行的,并且都可以使用实体说明和结构体中所定义的信号;而同一进程中的描述语句则是顺序执行的,并且在进程中只能设置顺序语句。 (2)为启动进程,进程的结构中必须至少包含一个敏感信号。 (3)一个结构体中的各个进程之间可以通过信号或共享变量来进行通信,但任一进程的进程说明部分不允许定义信号和共享变量。 (4)进程语句是VHDL中的重要的建模语句,进程语句不但可以被综合器所支持,而且进程的建模方式直接影响仿真和综合的结果。,1元件声明语句(COMPONENT)格式如下: COMPONENT 元件名 PORT 元件端口说明

      8、 (与该元件源程序实体中的PORT部分相同) END COMPONENT; 2元件例化语句(PORT MAP)格式如下: 例化名:元件名 PORT MAP(元件端口对应关系列表);,5.3.4 元件例化语句,(1)位置映射。就是被调用元件端口说明中信号的书写顺序及位置和PORT MAP语句中实际信号的书写顺序及位置一一对应。例如某元件的端口说明为:PORT(a,b:IN BIT;c:OUT BIT);调用该元件时可使用:com1:u1 PORT MAP(n1,n2,m);显然n1对应a,n2对应b,m对应c,com1是例化名,u1是元件名。 (2)名称映射。就是将库中已有的模块的端口名称赋予设计中的信号名。上例可改为:com1:u1 PORT MAP(a = n1,b = n2,c = m);,信号之间有位置映射和名称映射两种映射(关联)方式:,1FOR工作模式的生成语句 FOR工作模式常常用来进行重复结构的描述,格式如下: 生成标号: FOR 循环变量 IN 取值范围 GENERATE 并行语句; END GENERATE 生成标号; 2IF工作模式的生成语句 IF工作模式的生成语句

      9、常用来描述带有条件选择的结构。格式如下: 生成标号: IF 条件 GENERATE 并行语句; END GENERATE 生成标号;,5.3.5 生成语句,在一些场合,需要用特定的符号或数码表示特定的对象,例如一个班级中的每个同学都有不重复的学号,每个电话用户都有一个特定的号码等。在数字电路中,需要将具有某种特定含义的信号变成代码,利用代码表示具有特定含义对象的过程,称为编码。能够完成编码功能的器件,称为编码器(Encoder)。编码器分为普通编码器和优先级编码器两类。,5.4 编码器的设计,普通编码器在某一时刻只能对一个输入信号进行编码,即只能有一个输入端有效,当信号高电平有效时,则应只有一个输入信号为高电平,其余输入信号均为低电平。一般来说,由于n位二进制代码可以表示2n种不同的状态,所以,2n个输入信号只需要n个输出就完成编码工作。,5.4.1 8-3普通编码器,8-3线普通编码器电路具有8个输入端,3个输出端(23=8),属于二进制编码器。用X7X0表示8路输入,Y2Y0表示3路输出。原则上对输入信号的编码是任意的,常用的编码方式是按照二进制的顺序由小到大进行编码。,电路设计,LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY ENCODE IS PORT(X : IN std_logic_VECTOR(7 DOWNTO 0); Y : BUFFER std_logic_VECTOR(2 DOWNTO 0); END ENCODE; ARCHITECTURE A OF ENCODE IS BEGIN WITH X SELECT,参考程序:,Y=“000“ WHEN “00000001“, “001“ WHEN “00000010“, “010“ WHEN “

      《数字系统设计与EDA技术 第2版 教学课件 ppt 作者 于润伟 第5章 VHDL语言的并行语句》由会员E****分享,可在线阅读,更多相关《数字系统设计与EDA技术 第2版 教学课件 ppt 作者 于润伟 第5章 VHDL语言的并行语句》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.