EDA 第9章 VHDL结构与要素

合集下载

vhdl程序的基本结构vhdl程序一般由5个部分组成

vhdl程序的基本结构vhdl程序一般由5个部分组成

块语句
块标号:BLOCK[保护表达式] [类属子句;] [端口子句;] [块说明部分;] BEGIN
<块语句部分;>
; END BLOCK 块标号
类属子句用于参数的定义;端口子句用于信号的定义; 块说明部分对该块要用到的信号、常数、元件和子程序 等进行说明;块语句部分对该块的功能进行描述,块语 句部分的语句是并行执行的,和书写顺序无关。
缺省说明: library std; use std.standard.all;
常用库及其程序包
IEEE: IEEE认可的标准库 std_logic_1164:定义了 std_logic, std_logic_vector, std_ulogic, std_ulogic_vector 等数据类型
VHDL 程序的基本结构
设计实体
实体说明
构造体
设计实体的组成
实体说明
Entity <实体名> is
[类属说明;] [端口说明;]
[实体说明部分;] [实体语句部分;] End [entity]<实体名>;
最简单的例: entity nothing is end nothing;
实体说明--类属说明
类属为设计实体和外部环境通讯的静态通信提供通道。可以定
实体说明--实体语句部分
是设计实体接口的共同部分。只能由并行断 言语句、并行过程调用语句、被动进程语 句组成,且不能在语句中给信号赋值。
设计实体
实体说明
构造体
设计实体的组成
构造体
architecture <构造体名> of <实体名> is
[构造体说明语句;]
Begin
<功能描述语句;>

VHDL语言的基本结构

VHDL语言的基本结构
1 实体说明 1)实体语句结构 ENTITY 实体名 IS [GENERIC(类属表);] [PORT(端口表);] END ENTITY 实体名 2)类属参数说明 GENERIC([常数名:数据类型[:设定值] {;常数名:数据类型[:设定值]};
4
一、VHDL语言设计的基本单元及其构成
3)端口说明 PORT(端口名{,端口名}:方向 数据类型; 是对设计实体与外部接口 的描述,即对元件引脚、 ┇ 数据类型和I/O方向的描述 端口名{,端口名}:方向 数据类型); 1端口名
设计实体
进程 或其它并行结构 结构体 n (ARCHITECTURE 进程 或其它并行结构
配置(CONFIGURATION)
VHDL程序设计实体的一般结构
2
VHDL语言的基本结构
主要内容
一、 VHDL语言设计的基本单元及其构成 二、 VHDL语言构造体的子结构描述 三、 包集合、库及配置
3
一、VHDL语言设计的基本单元及其构成
VHDL语言
15
二、VHDL语言构造体的子结构描述
【例】4位二进制加法计数器构造体逻辑描述。
SIGNAL cnt4:INTEGER RANGE O TO 15; ... PROCESS(clk,clear,Stop) BEGIN IF clear='0' THEN cnt4<=0; ELSIF clk'EVENT AND clk='1' THEN IF stop='0' THEN cnt4<=cnt4+1; END IF; END IF; END PROCESS; --注意cnt4的数据类型
存盘文件 为 bpac.vhd

2023年大学_EDA技术与VHDL第二版(潘松著)课后习题答案下载

2023年大学_EDA技术与VHDL第二版(潘松著)课后习题答案下载

2023年EDA技术与VHDL第二版(潘松著)课后习题答案下载EDA技术与VHDL第二版(潘松著)课后答案下载第1章 EDA技术概述1.1 EDA技术及其发展1.1.1 EDA技术的发展1.1.2 EDA技术的涵义1.1.3 EDA技术的基本特征1.2 EDA技术的主要内容及主要的EDA厂商1.2.1 EDA技术的主要内容1.2.2 主要EDA厂商概述1.3 EDA技术实现目标1.3.1 超大规模可编程逻辑器件1.3.2 半定制或全定制ASIC1.3.3 混合ASIC1.4 EDA技术应用1.4.1 EDA技术应用形式1.4.2 EDA技术应用场合1.5 EDA技术的发展趋势1.5.1 可编程器件的发展趋势1.5.2 软件开发工具的发展趋势1.5.3 输入方式的发展趋势__小结思考题和习题第2章大规模可编程逻辑器件2.1 可编程逻辑器件概述2.1.1 PLD的'发展进程2.1.2 PLD的种类及分类方法2.2 简单可编程逻辑器件2.2.1 PLD电路的表示方法及有关符号 2.2.2 PROM基本结构2.2.3 PLA基本结构2.2.4 PAL基本结构2.2.5 GAL基本结构2.3 复杂可编程逻辑器件2.3.1 CPLD基本结构2.3.2 Altera公司器件2.4 现场可编程逻辑器件2.4.1 FPGA整体结构2.4.2 Xilinx公司FPGA器件2.5 在系统可编程逻辑器件2.5.1 ispLSl/pLSl的结构2.5.2 Lattice公司ispLSI系列器件 2.6 FPGA和CPLD的开发应用2.6.1 CPLD和FPGA的编程与配置2.6.2 FPGA和CPLD的性能比较2.6.3 FPGA和CPLD的应用选择__小结思考题和习题第3章 EDA设计流程与开发3.1 EDA设计流程3.1.1 设计输入3.1.2 综合3.1.3 适配3.1.4 时序仿真与功能仿真3.1.5 编程下载3.1.6 硬件测试3.2 ASIC及其设计流程3.2.1 ASIC设计方法3.2.2 一般的ASIC设计流程3.3 可编程逻辑器件的开发环境 3.4 硬件描述语言3.5 IP核__小结思考题和习题第4章硬件描述语言VHDL4.1 VHDL概述4.1.1 VHDL的发展历程4.1.2 VHDL的特点4.2 VHDL程序基本结构4.2.1 实体4.2.2 结构体4.2.3 库4.2.4 程序包4.2.5 配置4.3 VHDL基本要素4.3.1 文字规则4.3.2 数据对象4.3.3 数据类型4.3.4 运算操作符4.3.5 VHDL结构体描述方式 4.4 VHDL顺序语句4.4.1 赋值语句4.4.2 IF语句4.4.3 等待和断言语句4.4.4 cASE语句4.4.5 LOOP语句4.4.6 RETIARN语句4.4.7 过程调用语句4.4.8 REPORT语句4.5 VHDL并行语句4.5.1 进程语句4.5.2 块语句4.5.3 并行信号代人语句4.5.4 并行过程调用语句4.5.5 并行断言语句4.5.6 参数传递语句4.5.7 元件例化语句__小结思考题和习题第5章 QuartusⅡ软件及其应用5.1 基本设计流程5.1.1 建立工作库文件夹和编辑设计文件 5.1.2 创建工程5.1.3 编译前设计5.1.4 全程编译5.1.5 时序仿真5.1.6 应用RTL电路图观察器5.2 引脚设置和下载5.2.1 引脚锁定5.2.2 配置文件下载5.2.3 AS模式编程配置器件5.2.4 JTAG间接模式编程配置器件5.2.5 USBBlaster编程配置器件使用方法 __小结思考题和习题第6章 VHDL应用实例6.1 组合逻辑电路设计6.1.1 基本门电路设计6.1.2 译码器设计6.1.3 数据选择器设计6.1.4 三态门设计6.1.5 编码器设计6.1.6 数值比较器设计6.2 时序逻辑电路设计6.2.1 时钟信号和复位信号6.2.2 触发器设计6.2.3 寄存器和移位寄存器设计6.2.4 计数器设计6.2.5 存储器设计6.3 综合实例——数字秒表的设计__小结思考题和习题第7章状态机设计7.1 一般有限状态机7.1.1 数据类型定义语句7.1.2 为什么要使用状态机 7.1.3 一般有限状态机的设计 7.2 Moore型有限状态机设计 7.2.1 多进程有限状态机7.2.2 单进程有限状态机7.3 Mealy型有限状态机7.4 状态编码7.4.1 状态位直接输出型编码 7.4.2 顺序编码7.4.3 一位热码编码7.5 状态机处理__小结思考题和习题第8章 EDlA实验开发系统8.1 GW48型实验开发系统原理与应用8.1.1 系统性能及使用注意事项8.1.2 GW48系统主板结构与使用方法8.2 实验电路结构图8.2.1 实验电路信号资源符号图说明8.2.2 各实验电路结构图特点与适用范围简述8.3 GW48CK/GK/EK/PK2系统信号名与芯片引脚对照表 __小结思考题和习题第9章 EnA技术实验实验一:全加器的设计实验二:4位加减法器的设计实验三:基本D触发器的设计实验四:同步清零计数器的设计实验五:基本移位寄存器的设计串人/串出移位寄存器实验六:同步预置数串行输出移位寄存器的设计实验七:半整数分频器的设计实验八:音乐发生器的设计实验九:交通灯控制器的设计实验十:数字时钟的设计EDA技术与VHDL第二版(潘松著):内容简介《EDA技术与VHDL》主要内容有Altera公司可编程器件及器件的选用、QuartusⅡ开发工具的使用;VHDL硬件描述语言及丰富的数字电路和电子数字系统EDA设计实例。

《EDA技术》教学大纲

《EDA技术》教学大纲

课程编号:04021144《EDA技术》课程教学大纲学时:48 学分:3一、教学大纲的说明1、授课对象:电子信息工程专业、四年制本科2、课程性质:专业方向类必修课3、任务及要求:电子设计自动化(EDA)是电子信息类专业的一门重要课程。

EDA是20世纪90年代初发展起来的新技术。

本课程的任务是使学生学习和掌握可编程逻辑器件、EDA开发系统软件以及硬件描述语言(VHDL),为掌握EDA技术打下必要的基础;初步学会应用EDA技术解决一些简单的电子设计问题。

4、与其它课程的联系:先修课程:模拟电子技术、数字电子技术、Java语言与程序设计后续课程:电子系统设计二、教学大纲1、课程内容:第一章EDA技术概述EDA技术的由来、可编程逻辑器件的发展历程、可编程逻辑器件产品简介、硬件描述语言简介。

通过本章的学习,使学生对EDA技术有一个初步的认识。

第二章EDA设计流程及其工具设计流程、EDA开发工具简介。

通过本章的学习,使学生对常用EDA开发工具有一个初步的认识。

第三章FPGA/CPLD结构与应用本章具体介绍数种可编程逻辑器件。

通过本章的学习,使学生深入了解可编程逻辑器件,为掌握EDA技术打下坚实的基础。

第四章原理图输入设计方法本章通过实例详细介绍了Quartus II软件中原理图输入设计方法、波形输入设计方法。

第五、六、七、八、九章VHDL设计VHDL程序结构、VHDL语言要素、VHDL顺序语句、VHDL并行语句、VHDL的描述风格、仿真、综合。

本章内容是介绍一种通用的硬件描述语言VHDL。

该语言与一般的计算机高级语言有相似之处,但是它是以硬件为目标的。

通过本章的学习,应掌握VHDL的主要内容,并通过上机操作,学会编程方法。

第十章设计优化和设计方法介绍面积优化、速度优化的常用方法,并详细介绍如何在Quartus II软件中实现上述优化。

第十一章EDA工具软件接口介绍Quartus II软件与常用第三方EDA软件如Synplify、ModelSim的接口方法。

EDA知识点汇总

EDA知识点汇总

EDA知识点汇总
一、VHDL基本概念
1、VHDL概念
VHDL(VHSIC(Very High Speed Integrated Circuit)Hardware Description Language)是用于描述硬件结构的高级语言,也是一种数字
系统设计语言,可以描述系统的逻辑结构,数据流,与特定硬件的映射实现,包括模块化,可重用,可综合和可测试特性,是精密,功能强大,拥
有仿真功能的高级硬件描述语言。

2、VHDL的作用
VHDL是一门语言,用它描述数字系统,使用它可以实现在抽象结构
与物理实现间的转换,也就是说VHDL把模型描述作为数字逻辑设计的一
部分,它把数字电路设计与电路的描述分离,实现了电路的抽象化,VHDL
作为一个设计语言,它既可以描述电路,也可以用于设计新的电路
3、VHDL的基本结构
VHDL由三部分组成,包括类型定义部分,声明部分,以及功能实现
部分;
(1)类型定义部分
类型定义部分提供了VHDL语言中的语法,包括数据类型、常量声明、变量声明、信号声明、类型定义等。

(2)声明部分
声明部分提供了用于定义数据类型和信号的描述,包括定义数据类型、变量声明、信号声明等。

(3)功能实现部分
功能实现部分描述了如何将信号和变量连接起来形成所需的逻辑功能。

第九章VHDL结构与要素(2)

第九章VHDL结构与要素(2)

END 程序包名;
9.5 程序包
【例9-16】 PACKAGE pacl IS -- 程序包首开始 TYPE byte IS RANGE 0 TO 255 ; -- 定义数据类型byte SUBTYPE nibble IS byte RANGE 0 TO 15 ; -- 定义子类型nibble CONSTANT byte_ff : byte := 255 ; -- 定义常数byte_ff SIGNAL addend : nibble ; -- 定义信号addend COMPONENT byte_adder -- 定义元件 PORT( a, b : IN byte ; c : OUT byte ; overflow : OUT BOOLEAN ) ; END COMPONENT ; FUNCTION my_function (a : IN byte) Return byte ; -- 定义函数 END pacl ; -- 程序包首结束 LIBRARY WORK; USE WORK.PACL.ALL;
【例9-17】 PACKAGE seven IS SUBTYPE segments is BIT_VECTOR(0 TO 6) ; TYPE bcd IS RANGE 0 TO 9 ; END seven ; USE WORK.seven.ALL ; -- WORK库默认是打开的, ENTITY decoder IS PORT (input: bcd; drive : out segments) ; END decoder ; ARCHITECTURE simple OF decoder IS BEGIN WITH input SELECT drive <= B"1111110" WHEN 0 , B"0110000" WHEN 1 , B"1101101" WHEN 2 , B"1111001" WHEN 3 , B"0110011" WHEN 4 , B"1011011" WHEN 5 , B"1011111" WHEN 6 , B"1110000" WHEN 7 , B"1111111" WHEN 8 , B"1111011" WHEN 9 , B"0000000" WHEN OTHERS ; END simple ;

第9章VHDL结构与要素

第9章VHDL结构与要素

9.8 数 据 类 型
9.8.1 VHDL预定义数据类型
7. 字符串类型
8. 时间类型
9.8 数 据 类 型
9.8.1 VHDL预定义数据类型
9. 文件类型
9.8 数 据 类 型
9.8.2 IEEE预定义标准逻辑位与矢量
1. 标准逻辑位数据类型
2. 标准逻辑矢量数据类型
9.8 数 据 类 型
9.3.4 决断函数
决断函数不可综合,主要用于VHDL仿真中解决信号被多个驱动源 驱动时,驱动信号间的竞争问题。
当多个驱动源都同时产生一个处理事项,只有其中一个驱动源的 信号值能赋给被驱动的信号。
决断函数输入一般是单一变量,多个驱动源的信号值组成非限定 数组, 多个信号驱动源,其信号值组成的未限定数组可依次类推。
9.9 VHDL操作符
9.9.1 逻辑操作符
9.9 VHDL操作符
9.9.1 逻辑操作符
9.9 VHDL操作符
9.9.1 逻辑操作符
9.9 VHDL操作符
9.9.1 逻辑操作符
9.9 VHDL操作符
9.9.2 关系操作符
“ = ”(等于)、“/=”(不等于)、“ >”(大于)、 “< ”(小于)、“>=”(大于等于)和“<=”(小于等于)
实验与设计
9-1 乐曲硬件演奏电路设计
(1)实验目的: (2)实验原理:
实验与设计
9-1 乐曲硬件演奏电路设计
(1)实验目的: (2)实验原理:
实验与设计
9-1 乐曲硬件演奏电路设计
(3)实验内容1: (4)实验内容2: (5)实验内容3: (6)实验内容4: (7)实验内容5: (8)实验内容6: (9)实验内容7: (10)实验报告:5E+系统的演示文件: /KX_7C5EE+/EXPERIMENTs/EXP4_Music/。

EDA教程之VHDL结构

EDA教程之VHDL结构
VHDL结构
பைடு நூலகம்
前言: VHDL程序基本结构
基本结构包括:
实体(Entity) 结构体(Architecture) 配置(Configuration) 库(Library)、程序包(Package)
库、程序包 实体(Entity)
结构体 (Architecture)
进程 或其它并行结构
配置(Configuration)
8.7.1 数字
(1)整数:十进制整数 如:5,678,156E2(=15600), 45_234_287 (=45234287)
(2)实数:带小数的十进制数 如:23.34,2.0,44.99E-2(=0.4499) 88_67_551.23_909(8867551.23909)
注意:数字间的下划线仅仅是为了提高文字的可读 性,相当于一个 空的间隔符。
库的种类:
1、IEEE 库 定义了四个常用的程序包:
std_logic_1164 最重要、最常用; std_logic_arith std_logic_signed std_logic_unsigned Synopsys公司的程序包,成为工业标准。
2、STD 库(默认库) 库中程序包为:STANDARD,TEXTIO
程序包说明的内容:
常量说明:如定义系统数据总线宽度。 VHDL数据类型说明:定义在整个设计中通用的 数据类型。 元件说明:规定参与文件例化的文件接口界面 子程序说明:并入程序包的子程序有利于在设计 中任一处进行方便调用。
定义程序包的一般语句格式如下:
PACKAGE 程序包名 IS 程序包首说明部分 END 程序包名;
--定义信号addend
component byte_adder

第9章VHDL结构与要素

第9章VHDL结构与要素
存放已经编译的实体、结构体、包集合和配置
2019/7/24
2
9.1 实体
VHDL实体作为一个设计实体(独立的电路功能结构)的组成部分,其功能是 对这个设计实体与外部电路进行接口描述。
实体是设计实体的表层设计单元,实体说明部分规定了设计单元的输入输 出接口或引脚,它是设计实体对外的一个通信界面。
它可以是一个简单的数字电路,也可以是复杂的数字电路,但基本构成是 一致的。
通常命名为behavioral(行为), dataflow(数据 流),structural(结构)
位于ARCHITECTURE和BEGIN之间,对信号、常数、数据类型、函数 进行定义
位于BEGIN和END之间,描述构造体的行为及连接关系
2019/7/24
7
在HDL设计中,设计者将自上至下分为3个层次:
2. 有符号数据类型(SIGNED TYPE)
例如: SIGNED'("0101") 代表 +5,5 SIGNED'("1011") 代表 –5
2019/7/24
变量var有11位数值, 最高位是var(0)
信号sig有6位数值, 最高位是sig(5)
最高位是符号位
16
9.9 VHDL语言的运算操作符
实体名 端口名 方向
实体
进 程 语
结 构 体

2019/7/24
4
一、实体说明
基本结构:ENTITY 实体名 IS [类属参数说明]; [端口说明]; END 实体名;
1、类属参数说明 必须放在端口说明之前,用于指定参数。
如:q<=tmp AFTER m;说明tmp建立一个延时值。 GENERIC(m:TIME:=1ns);构造体内m的值为1ns。 2、端口说明

精品课件-EDA技术应用基础-第2讲 VHDL程序基本结构及语言要素

精品课件-EDA技术应用基础-第2讲   VHDL程序基本结构及语言要素

fs: 单位
ps=1000 fs :
--飞秒,VHDL中的最小时间 --皮秒
ns=1000 ps:
--纳秒
EDA技术
讲授:课题组教师
二、 VHDL语言要素
3. VHDL数据类型
2)IEEE预定义标准逻辑位与矢量
(1)标准逻辑位STD_LOGIC数据类型
数据类型STD_LOGIC的定义如下所示:
TYPE
▪ 教学方法:讲授法、计算机辅助法。
▪ 课时计划:2学时
▪ 使用教材:EDA技术及应用.谭会生等.西安:西安电子 科技大学出版社
▪ 主要参考文献: [1] 徐光辉等.CPLD/FPGA的开发和应用[M].北京:
电子工业出版社 [2] 侯伯亨等.VHDL硬件描述语言与数字逻辑电路
设计[M].西安:西安电子科技大学出版社
在程序中使用此数据类型前,需加入下面的语句:
EDA技术
讲授:课题组教师
二、 VHDL语言要素
3. VHDL数据类型 3)其它预定义标准数据类型矢量
VHDL综合工具配备的扩展程序包中,定义了一 些有用的类型。如 Synopsys公司在IEEE库中加入的程序 包 STD_LOGIC_ARITH 中 定 义 了 的 数 据 类 型 有 : 无 符 号 型 ( UNSIGNED ) , 有 符 号 型 ( SIGNED ) , 小 整 型 (SMALL_INT)。 在程序包STD_LOGIC_ARITH中的类型定义如下: TYPE UNSIGNED IS ARRAY(NATURAL RANGE <> ) OF STD_LOGIC; TYPE SIGNED IS ARRAY(NATURAL RANGE<> = 0F STD_LOGIC;
STD_LOGIC

VHDL的结构和实体介绍

VHDL的结构和实体介绍

典型端口的定义和硬件模型
位类型端口:端口由一根导线组成,导线上传递’1’或’0’的高低电 平。
如en: IN BIT;
en
位矢量类型端口:端口由一组导线组成,导线的数量由位矢量的位 数决定,导线上传递’1’或’0’的高低电平。’TO’与’DOWNTO’ 关键字表示从高位到低位在导线上的排列方向。
如 data: IN BIT_VECTOR(2 DOWNTO 0);
2. 标准逻辑矢量(STD_LOGIC_VECTOR) 数据类型

STD_LOGIC_VECTOR是数组,数组中每个元素 的数据类型都是标准逻辑位STD_LOGIC。 只有同位宽、同数据类型的矢量之间才能进行赋 值。 在使用STD_LOGIC_VECTOR时,要打开IEEE 库中相应的程序包: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;
clk
标准逻辑位矢量类型端口:端口由一组导线组成,矢量的位数决定 了导线的数量,导线上标准逻辑定义的电平信号。
如data_out: OUT STD_LOGIC_VECTOR(0 to 7) ;
data_out data_out [0..7]
定义一个输出端口data_out,端口上流动的信号是一个8位的标准逻辑矢 量,最上一位是最低位data_out(0),最下一位是最高位data_out(7)。
三人表决器的VHDL描述
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY voter IS PORT( a, b, c : IN STD_LOGIC; x : BUFFER STD_LOGIC; y : OUT STD_LOGIC ) ; END ENTITY voter ; ARCHITECTURE one OF voter IS BEGIN x <= (a AND b) OR (b AND c) OR (c AND a); y<=NOT x; END ARCHITECTURE one ;

VHDL的基本结构

VHDL的基本结构

自 例如:

PORT(d0,d1,sel:IN BIT;

q:OUT BIT;
bus:OUT BIT_VECTOR(7 DOWNTO 0));
端口名:
定义外部引脚的名称,通常用一个或几个英文字
母,或者用英文字母加数字命名。例如例子中的外部引脚
为d0、d1、sel、q。
——EDA
电气 王昕
9
1.1.1 实体说明
动 信号称为端口,它对应于电路图上的一个引脚。

端口说明:对设计的外部引脚信号的名称、数
据类型和输入/输出方向的描述。与传统的电路图
相比,它描述的是器件的外观。
——EDA
电气 王昕
8
1.1.1 实体说明
电 端口说明的格式:

PORT(端口名{,端口名}:方向 数据类型名;



端口名{,端口名}:方向 数据类型名);
电 子
一、库的种类


当前在VHDL语言中存在的库大致可以
自 归纳为5种:


IEEE库
*STD库
*ASIC矢量库
*用户定义的库
*WORK库
——EDA
17
1.2.1 库
——EDA
电 (1)IEEE库

设 计
IEEE库是目前使用频度最高和应用最广泛的资源库。

其 中 包 括 程 序 包 STD_LOGIC_1164 、
序设计:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;

课件:第02讲 VHDL结构和语法要素

课件:第02讲  VHDL结构和语法要素

以半加器的设计为例,给出不同的描述方法
第2讲 VHDL结构与要素
§2. 1.4 配置
可以为实体指定或配属一个结构体.
CONFIGURATION 配置名 OF 实体名 IS FOR 选配结构体名 END FOR; END 配置名;
txwy
第2讲 VHDL结构与要素
§2.2 VHDL的语法要素
➢2.2.1 VHDL的词法元素 ➢2.2.2 VHDL的数据对象 ➢2.2.3 VHDL的数据类型 ➢2.2.4 VHDL的操作符
std_logic_vector
CONV_INTEGER(A)
由signed\unsigned转为integer
Std_logic_unsi gned
CONV_INTEGER(A)
由std_logic_vector转为 integer
txwy
第2讲 VHDL结构与要素
§2.2.4 VHDL的操作符
txwy
第2讲 VHDL结构与要素
描述方式
优点
缺点
适用场合
结构化 描述
数据流 描述 行为 描述
txwy
连接关系 电路不易理解、 清晰,电路 繁琐、复杂 模块化清晰
布尔函数 不易描述复杂电 定义明白 路,修改不易
电路层次 化设计
小门数 设计
电路特性 清楚明了
进行综合效率 大型复杂的电
相对较低
路模块设计
•architecture rt1 of var is •begin •process •variable a,b : std_logic; •begin • a:=b; • b:=a; •end process; •end architecture rtl;

简述VHDL的基本结构及每部分的基本功能。

简述VHDL的基本结构及每部分的基本功能。

简述VHDL的基本结构及每部分的基本功能。

1.1. 简述VHDL的基本结构及每部分的基本功能。

(1)库库是经编译后的数据集合,库中存放的是各种程序包、实体定义、结构体描述等。

设计人员在用VHDL语言设计系统时,库中内容有的可作为标准,有的可作为资源被引用。

库的作用就在于使设计者可以共享已经编译过的设计文件及有用数据。

(2)程序包程序包是VHDL程序的公共存储区,在程序包内说明的数据对实体是透明的。

程序包由程序包说明和程序包体组成。

(3)实体实体可以表示小到一个与门,也可以大到一个数字系统,这个系统可以像微处理器一样的复杂。

在实体的说明部分主要完成设计对象的输入输出端口名称、传输方向、数据类型的定义,即端口的定义。

(4)结构体结构体是设计实体的具体描述,如果把设计实体抽象为一个功能方块图,结构体则描述这个功能方块图内部的具体逻辑实现细节。

一个设计实体的内部实现细节通过结构体的具体描述表现出来。

(5)配置配置是用于描述设计不同层次之间的关系和实体与结构体之间的连接关系。

在实体与结构体之间的连接关系配置说明中,设计者可以利用配置语句为实体提供不同的结构体与之相匹配。

在仿真设计中,可以利用不同配置方式选择不同结构体,分别对不同结构体进行仿真测试。

2. 简述VHDL语言实体申明中:IN、OUT、BUFFER和INOUT等端口模式各自的特点。

IN:输入型,只读模式。

OUT:输出型,只写。

BUFFER:缓冲型,带有读功能的输出模式,即输出并向内部反馈,out相似,但可读。

INOUT:输入输出型,可读可写,可以通过该端口读入或写出信息。

3. 在VHDL语言中,标识符必须遵循一些规则,有哪些规则?(1)标示符的第一个字母必须是英文字母。

(2)标示符的最后一个字母不能使下划线字符。

(3)标示符不允许连续出现两个下划线字符。

(4)标示符不区分字母的大小写。

(5)VHDL的保留字不能用于作为标示符使用。

4. VHDL的数据对象有哪几种,它们之间有什么不同?答:VHDL的数据对象包括信号、常量、变量和文件4类。

第9章 VHDL结构与要素

第9章 VHDL结构与要素

信息工程系
9.1 实体
9.1.3 参数传递映射语句
图9-1 例9-4的RTL电路图(Synplify综合)
信息工程系
9.1 实体
9.1.4 端口说明语句
PORT ( 端口名 : 端口模式
数据类型 ;
{ 端口名 : 端口模式 数据类型} ) ;
信息工程系
9.2 结构体
对数据类型、常数、 信号、子程序和元件 等元素的说明部分
9.1 实体
9.1.2 参数传递说明语句
信息工程系
【例9-2】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY exn IS PORT(d1,d2,d3,d4,d5,d6,d7 : IN STD_LOGIC; q1,q2 : OUT STD_LOGIC); END; ARCHITECTURE exn_behav OF exn IS COMPONENT andn --调用例10-1的元件调用声明 GENERIC ( n : INTEGER); PORT(a : IN STD_LOGIC_VECTOR(n-1 DOWNTO 0); C : OUT STD_LOGIC); END COMPONENT ; BEGIN u1: andn GENERIC MAP (n =>2) -- 参数传递映射语句,定义类属变量,n赋值为2 PORT MAP (a(0)=>d1,a(1)=>d2,c=>q1); u2: andn GENERIC MAP (n =>5) -- 定义类属变量,n赋值为5 PORT MAP (a(0)=>d3,a(1)=>d4,a(2)=>d5, a(3)=>d6,a(4)=>d7, c=>q2); END;

EDA技术与应用实践—VHDL语言要素

EDA技术与应用实践—VHDL语言要素

时间(Time)
时间单位fs, ps, ns,us,ms,sec,min,hr
错误等级(Severity Level)NOTE,WARNING,ERROR,FAILURE
自然数、正整数(Natual & Positive)
整数的子集
字符串(String)
字符矢量Biblioteka 表 4 - 3 标准的数据类型
6
4.3 VHDL 语言要素
由STD_LOGIC_VECTOR转换成 INTEGER
10
【例4 - 10】:数据类型转换示例 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY dec3to8 IS
PORT(input:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
4.3 VHDL 语言要素
(4)记录类型 TYPE 数据类型名 IS RECORD 元素名:数据类型名; 元素名:数据类型名; …. END RECORD;
3. 用户定义的子类型
4.3 VHDL语言要素
⒋ 数据类型的转换
表 4 - 4 数据类型变换函数
函数名
功能
STTTTTOOOOD_____SBSBLTITIODTDTGLVL(IOEOACGCG)_ITI1COC1VR(6E(A4CA)T)程OR序(A包):由S由B由由TIBDSTBSILTVITTODETDVGLCL转EIOTOCCGOG换TVIRIOECC为RCV转TE转SOCT换RT换DOL为R为O转GBII换CT 为
4
4.3 VHDL语言要素
⒋ 信号和变量的区别 ⑴ 信号用于电路中的信号连线,变量用于进程中局部数据存储单元; ⑵ 信号的使用和定义范围在结构体、程序包和实体中,不能在进程、 函数和子程序中使用,而变量只能在进程、函数和子程序中使用;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.7.2 字符串
“B”、 “X”
“O ” 、
9.7 VHDL文字规则
9.7.3 标识符及其表述规则
9.7 VHDL文字规则
9.7.4 下标名
9.8 数 据 类 型
● 标量型(Scalar Type):包括实数类型、整数类型、枚举类 型、时间类型。 ● 复合类型(Composite Type):可以由小的数据类型复合而 成,如可由标量型复合而成。复合类型主要有数组型(Array) 和记录型(Record)。 ● 存取类型(Access Type):为给定的数据类型的数据对象 提供存取方式。 ● 文件类型(Files Type):用于提供多值存取类型。
7. 字符串类型
8. 时间类型
9.8 数 据 类 型
9.8.1 VHDL预定义数据类型
9. 文件类型
9.8 数 据 类 型
9.8.2 IEEE预定义标准逻辑位与矢量
1. 标准逻辑位数据类型
2. 标准逻辑矢量数据类型
9.8 数 据 类 型
9.8.3 其他预定义标准数据类型
1. 无符号数据类型
9.8 数 据 类 型


9-10 判断下列VHDL标识符是否合法,如果有误则指出原因: 16#0FA#, 10#12F#, 8#789#, 8#356#, 2# 0101010# 74HC245 , \74HC574\, CLR/RESET, \IN 4/SCLK\, D100% 9-11 数据类型BIT、INTEGER和BOOLEAN分别定义在哪个库中?哪 些库和程序包总是可见的? 9-12 函数与过程的设计与功能有什么区别?调用上有什么区别?
3. 功能描述语句结构 ● 进程语句 ● 信号赋值语句 ● 子程序调用语句 ● 元件例化语句
9.3 VHDL子程序
子程序(SUBPROGRAM)是一个VHDL程序模块,它只 能使用顺序语句。 子程序不能像进程那样可以从本结构体的并行语句或进 程结构中直接读取信号或象信号赋值。子程序的使用方式只 能通过子程序调用及与子程序的界面端口进行通信。 子程序可以在程序包、结构体和进程中定义,只有在程 序包中定义过的子程序才可以被其他不同的设计调用。 子程序分为两大类:过程(PROCEDURE)和函数 (FUNCTION)。
9.1.3 参数传递映射语句
参数传递映射语句与端口映射语句PORT MAP()具有相似 的功能和使用方法,它描述了相应元件类属参数间的连接和 传送方式。它可用于设计从外部端口改变元件内部参数或结 构规模的元件,又称类属元件。
9.1 实

9.1.3 参数传递映射语句
9.1 实

9.1.3 参数传递映射语句
9-13 回答有关BIT和BOOLEAN数据类型的问题: (1)解释BIT和BOOLEAN类型的区别。 (2)对于逻辑操作应使用哪种类型? (3)关系操作的结果为哪种类型? (4)IF语句测试的表达式是哪种类型?


9-14 运算符重载函数通常要调用转换函数,以便能够利用已有的数据类型。下 面给出一个新的数据类型AGE,并且下面的转换函数已经实现: function CONV_INTEGER(ARG: AGE)return INTEGER; 仿照本章中的示例,利用此函数编写一个“+”运算符重载函数,支持下面的 运算: SIGNAL a,c : AGE; ... c <= a + 20; 9-15 用两种方法设计8位比较器,比较器的输入是两个待比较的8位数 A=[A7..A0]和B=[B7..B0],输出是 D、E、F。当A=B时D=1;当A>B时E=1; 当A<B时F=1。第一种设计方案是常规的比较器设计方法,即直接利用关系操 作符进行编程设计;第二种设计方案是利用减法器来完成,通过减法运算后的 符号和结果来判别两个被比较值的大小。对两种设计方案的资源耗用情况进行 比较,并给以解释。 9-16 利用循环语句和移位操作符实现移位相加方式的纯组合电路8位乘法器设 计。
9.8.3 其他预定义标准数据类型
2. 有符号数据类型
9.8 数 据 类 型
9.8.4 数据类型转换示例
9.8 数 据 类 型
9.8.4 数据类型转换示例
9.8 数 据 类 型
9.8.4 数据类型转换示例
9.8 数 据 类 型
9.8.4 数据类型转换示例
9.8 数 据 类 型
9.8.4 数据类型转换示例
9.1 实

9.1.3 参数传递映射语句
9.1 实

9.1.4 端口说明语句
9.2 结构体
对数据类型、常数、 信号、子程序和元件 等元素的说明部分
描述实体逻辑行为的、 以各种不同的描述风 格表达的功能描述语 句
结 构 体
9.2 结 构 体
1. 结构体的一般语言格式
2. 结构体说明语句
9.2 结 构 体
EDA技术实用教程
第9章
VHDL结构与要素
9.1 实

9.1.1 实体语句结构
9.1 实体
9.1.2 参数传递说明语句
GENERIC语句是一种常数参数的端口界面,为所说明的环境提供了一种静态信息通道。
类属与常数不同:常数只能从设计实体的内部得到赋值,且不能再改变;而类属的值 可以由设计实体外部提供。因此设计者可以从外面通过类属参量的重新设定而容易地 改变一个设计实体或一个元件的内部电路结构和规模。
9.4 VHDL库
9.4.1 库的种类
1. IEEE库 std_logic_1164 Numeric_Std 2. STD库 Numeric_Bit Math _Real Math _Complex
3. WORK库
4. VITAL库
9.4 VHDL库
9.4.2 库的用法
9.5 程序包 (其他设计实体共享)
被传递的参数(又称类属参量)可以由设计实体外部提供,并可以重新设定。 GENERIC([ 常数名: 数据类型[ : 设定值] { ;常数名: 数据类型[ : 设定值] } ) ;
9.1 实

9.1.2 参数传递说明语句
9.1 实

9.1.2 参数传递说明语句
9.1
实体
GENERIC MAP(类属表)


9.3 子
9.3.3 转换函数


9.3 子
9.3.3 转换函数


9.3 子
9.3.3 转换函数


9.3 子
9.3.3 转换函数


接下页
9.3 子
9.3.3 转换函数


接上页
9.3 子
9.3.4 决断函数


决断函数不可综合,主要用于VHDL仿真中解决信号被多个驱动源 驱动时,驱动信号间的竞争问题。 当多个驱动源都同时产生一个处理事项,只有其中一个驱动源的 信号值能赋给被驱动的信号。 决断函数输入一般是单一变量,多个驱动源的信号值组成非限定 数组, 多个信号驱动源,其信号值组成的未限定数组可依次类推。 决断函数调用后返回的是单一信号值,称决断信号值。
(1)STD_LOGIC_1164程序包。
(2)STD_LOGIC_ARITH程序包。
(3)STD_LOGIC_UNSIGNED和STD_LOGIC_SIGNED程序包。
(4)STANDARD和TEXTIO程序包。
9.6 配

9.7 VHDL文字规则
9.7.1 数字
整数: 实数 :
9.7 VHDL文字规则
元件定义 子程序
常数说明
VHDL数据类型说明
定义程序包的一般语句结构如下:
PACKAGE 程序包名 IS -程序包首
程序包首说明部分
END
程序包名;
程序包名 IS -程序包体
PACKAGE BODY
程序包体说明部分以及包体内
END 程序包名;
9.5 VHDL程序包
9.5 VHDL程序包
9.5 VHDL程序包

9.3 子


9.3.2 重载函数 VHDL允许同样名称的函数可以用不同的数据类型作为它的参数定 义多次,以此定义的函数称为重载函数。
接下页
9.3 子 接上页
9.3.2 重载函数


接下页
接上页
9.3 子
9.3.2 重载函数


9.3 子
9.3.2 重载函数


接下页
接上页
9.3 子
9.3.2 重载函数
9.8 数 据 类 型
9.8.1 VHDL预定义数据类型
1. 布尔类型
2. 位数据类型
3. 位矢量类型
9.8 数 据 类 型
9.8.1 VHDL预定义数据类型
4. 字符类型 5. 整数类型
-2147483647~+2147483647
6. 实数类型
9.8 数 据 类 型
9.8.1 VHDL预定义数据类型
9.9 VHDL操作符
9.9.1 逻辑操作符
9.9 VHDL操作符
9.9.1 逻辑操作符
9.9 VHDL操作符
9.9.1 逻辑操作符
9.9 VHDL操作符
9.9.1 逻辑操作符
9.9 VHDL操作符
9.9.2 关系操作符
“ = ”(等于)、“/=”(不等于)、“ >”(大于)、 “< ”(小于)、“>=”(大于等于)和“<=”(小于等于)
9.3 子
9.3.5 过程


9.3 子
9.3.5 过程


信号流向方向若未指定则默认为IN。 只定义了IN模式而未定义目标参量的数据类型,则默认为常量CONSTANT; 只定义了OUT或INOUT模式而未定义目标参量的数据类型,则默认为变量。
相关文档
最新文档