第4章VHDL设计初步
VHDL 设计初步-PPT精选文档
结束
4.1 多路选择器VHDL描述
设计: 2选1多路选择器
s y 0 a 1 b
y=as+bs
目录
结束
4.1 多路选择器VHDL描述
4.1.1
【例4-1】
2选1多路选择器的VHDL描述
ENTITY mux21a IS PORT( a, b : IN BIT ; s : IN BIT; y : OUT BIT ) ; END ENTITY mux21a ;
用其他的语句 形式来描述相 同的逻辑行为
【例4-3】 . . . ARCHITECTURE one OF mux21a IS BEGIN y <= (a AND (NOT s)) OR (b AND s) ; END ARCHITECTURE one;
目录 结束
4.1.1 2选1多路选择器的VHDL描述
VHDL 设计初步
唐英姿编制
教学内容
教学导入
设计举例: 2选1多路选择器
VHDL相关语法 课堂练习 小结
结束
现代电子设计新技术:EDA技术
EDA:电子设计自动化
Electronic Design Automation EDA技术就是: 依赖 功能强大的计算机在 EDA工具软 件 平台上,用 硬件描述语言(HDL)作 为系统逻辑描述手段来完成 电子线路设 计文件。 最终实现 ->特定电子线路的硬件(芯 片或者电路板)
电路的VHDL描述由两大部分组成:
以关键词ENTITY 引导,END ENTITY mux21a 结尾的语句部分,称为实体。 VHDL 的实体描述了电路器件的外部情况 及各信号端口的基本性质,如信号流动的 方向,流动在其上的信号结构方式和数据 类型等。 以关键词ARCHITECTURE 引导,END ARCHITECTURE one 结尾的语句部分, 称为结构体。结构体负责描述电路器件的 内部逻辑功能和电路结构。
《数字电子技术基础》课件VHDL设计初步(新模版)
述语言; (4)AHDL硬件描述语言:Altera公司开发,语
法简单,但不通用。
其中:VHDL和VerilogHDL已成为IEEE标准。
西安电子科技大学国家级精品课程数字电路与系统设计
VHDL
—VHSIC Hardware Description Language VHDL在语法和风格上类似与现代高级编程 语言。但要注意,VHDL毕竟描述的是硬件,它 包含许多硬件特有的结构。 HDL是用文字化方法描述电子电路与系统。
1 多路选择器的VHDL描述
例1.1 2选1多路选择器的结构体描述3 (布尔方程描述)
……
ARCHITECTURE behave OF mux21 IS BEGIN y <= (a AND (NOT s)) OR ( b AND s) ;
END behave;
说明:以上 三种结构体 描述都是并 行语句
西b安u电ffe子r可科技以大出学现国在家<级=精或品课: =程的数两字电边路与系统设计
例:
ENTITY mux21 IS PORT (a, b, : IN BIT ;
S : IN BIT ; y : OUT BIT ) ; END ENTITY mux21 ;
VHDL中任何一种数据对象(信号、变量、常数)必 须严格限定其取值范围。
➢ 1987年被采纳为IEEE 1076标准(VHDL’87)。 ➢ 1993年被更新为IEEE 1164标准(VHDL’93)。
西安电子科技大学国家级精品课程数字电路与系统设计
VHDL
—VHSIC Hardware Description Language
HDL 的出现是为了适应电子系统设计的日益复杂 性。若以计算机软件的设计与电路设计做个类比:
VHDL第4章_全加器
元件例化语句的第二部分则是此元件与当前设计实体(顶层文件 中 元件例化语句的第二部分则是此元件与当前设计实体 顶层文件)中 顶层文件 元件间及端口的连接说明。语句的表达式如下: 元件间及端口的连接说明。语句的表达式如下:
例化名 : 元件名 PORT MAP( [端口名 =>] 连接端口名 连接端口名,...); 端口名
3. 并置操作符 &
以下是一些并置操作示例: 以下是一些并置操作示例: SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ; SIGNAL d : STD_LOGIC_VECTOR (1 DOWNTO 0) ; ... a <= '1'&'0'&d(1)&'1' ; -- 元素与元素并置,并置后的数组长度为 元素与元素并置,并置后的数组长度为4 & & & ... IF a & d = "101011" THEN ... –- 在IF条件句中可以使用并置符 条件句中可以使用并置符
co 0 0 0 1
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 I BEGIN so <= (a OR b)AND(a NAND b); co <= NOT( a NAND b); END ARCHITECTURE fh1;
第4章VHDL设计入门
21
§4.5 VHDL程序的语言要素总结 基本数据类型:逻辑信号、数值信号
布尔代数(Boolean) 逻辑信号 位(Bit) 标准逻辑(Std_Logic)
信 号
数值信号 整数(Integer Unsigned) 实数(Real) 正整数(Positive) 自然数(Natural)
22
一、逻辑信号
“标准逻辑”信号定义,远较“Bit”信号对于的数字逻辑电路的逻 24 辑特性描述更完整、更真实。对逻辑信号的定义,通常都采用
4.逻辑序列信号 以数字电路而言,有许多时候都是将几个信号合成一组代 表特定功能的序列信号,例如:数据总线(Data Bus)、 地址总线(Address Bus)等。实际上从电路的观点上, CLK信号看成一条线上的信号,而Data是8条线合成的排线 CLK Data 8 信号。 Address 4 ROM 8 Data
28
程序为: ARCHITECTURE M OF TEST IS Signal A :Std_logic_vector(3 downto 0); Signal B :Std_logic_vector(0 to 3); Signal C :Std_logic_vector(0 to 1); Signal D :Std_logic_vector(1 downto 0); BEGIN C<=A(2 DOWNTO 1); --分解:A(2~1)序列信号传至D B<=A(3) & D & ‘1’;
1)USE定义区和标准定义库包括
程序包(PACKAGE)是预先定义或设计好的数据 数据 类型、子程序 子程序和各种设计实体的集合 设计实体的集合; 类型 子程序 设计实体的集合 库(LIBRARY)则是用来存储已经完成的程序包 等VHDL设计与数据的仓库。 一般情况下,库和程序包的引用声明放在设计文件 的最前面。
第VHDL设计初步学习
第110页/共55页
3.1 组合电路的VHDL描述
3.1.2 2选1多路选择器及其VHDL描述2
2. 标准逻辑位数据类型STD_LOGIC
第112页/共55页
3.1 组合电路的VHDL描述
3.1.2 2选1多路选择器及其VHDL描述2
3. 设计库和标准程序包
4. 信号定义和数据对象
第343页/共55页
3.2 基本时序电路的VHDL描述
3.2.3 异步时序电路设计
第354页/共55页
3.2 基本时序电路的VHDL描述
3.2.3 异步时序电路设计
第365页/共55页
3.3 计数器的VHDL设计
第376页/共55页
3.3 计数器的VHDL设计
3.3.1 4位二进制加法计数器设计 3.3.2 整数类型
第521页/共55页
习题
3-7 给出1位全减器的VHDL描述。要求: (1)首先设计1位半减器,然后用例化语句将它们连接起来,图3-19 中h_ suber是半减器,diff是输出差,s _out是借位输出,sub _in是 借位输入。 (2)根据图3-19设计1位全减器。以1位全减器为基本硬件,构成串行 借位的8位减法器,要求用例化语句来完成此项设计(减法运算是 x – y – sun _in = diffr)。
3.1 组合电路的VHDL描述
3.1.4 半加器及其VHDL的描述第198页/共55页源自3.1 组合电路的VHDL描述
3.1.4 半加器及其VHDL的描述
1. CASE语句
第2109页/共55页
3.1 组合电路的VHDL描述
3.1.4 半加器及其VHDL的描述
2. 标准逻辑矢量数据类型
第4章VHDL语言基础
END 结构体名;
4.1.3 结构体部分
结构体组成
结
构 体
说
明 结
构
体 结 构 体
功 能 描 述
常数说明 数据类型说明
信号说明 例化元件说明 子程序说明
块语句 进程语句 信号赋值语句 子程序调用语句 元件例化语句
结构体描述风格
行为描述 描述该设计单元的功能,主要使用函数、过程和进程语 句,以算法形式描述数据的变换和传送
例4-4
Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Use ieee.std_logic_arith.all;
行为描述
Entity eqcomp4 is Port (a,b: in std_logic_vector (3 downto 0); equals: out std_logic);
4.1.2 实体部分
实体(ENTITY)
实体是一个设计实体的表层设计单元,其功能是 对这个设计实体与外部电路进行接口描述。它规定了 设计单元的输入/输出接口信号或引脚,是设计实体 经封装后对外的一个通信界面。类似于原理图中的一 个部件符号。
4.1.2 实体部分
实体格式
ENTITY 实体名 IS
书写格式: GENERIC([常数名:数据类型[:设定值]
{;常数名:数据类型[:=设定值 ]}); 例4-1
GENERIC (cntwidth : integer:=4);
4.1.2 实体部分
PORT端口
用于定义模块所有的输入/输出信号,相当于定义一个 模块符号
EDA第4章VHDL设计初步
A B
AND
C
FPGA line .vhd
1、VHDL语言的基本单元及其构成
例1语法说明: 1、每一条语句以;号结束。 2、实体名必须与VHDL源文件名同名。 3、“--”符号为VHDL语言注释符。 4、“<=”为信号赋值符号,数据类型一致。 5、“std_logic”是引脚数据类型。
WHAT ?
What does it do?
FUNCTIONALITY
How is it composed?
STRUCTURE
HOW ?
VHDL程序设计举例 两种不同风格的半加器VHDL描述程序;
例题2:D触发器
LIBRARY ieee; use ieee.std_logic_1164.all; entity dff is port (clk: IN STD_LOGIC; d : IN STD_LOGIC; q: OUT STD_LOGIC); end; architecture bhv of adder is signal q1:std_logic; begin process(clk) begin if clk’event and clk=‘1’ then q1<=d; end if; q<=q1; end process; End bhv;
尽管处理器不同,但只要实体 定义的接口不变,VHDL语言 就可以通过配置语句实现结构 体的变换。 点击右侧的芯片观看处理器的 变化。
设计需要一个新的处理器,应该如何选择?
实体声明
实体声明
ENTITY 实体名 IS [GENERIC(常数名1:常数数据类型[:=常数值]; 常数名1:常数数据类型[:=常数值]; … );] PORT( 端口名1: 端口方向 端口数据类型; 端口名2: 端口方向 端口数据类型; … 端口名n: 端口方向 端口数据类型; ); END [实体名]; --[ ]:中内容表示可选项;
eda技术实用教程-veriloghdl答案
eda技术实用教程-veriloghdl答案【篇一:eda技术与vhdl程序开发基础教程课后答案】eda的英文全称是electronic design automation2.eda系统设计自动化eda阶段三个发展阶段3. eda技术的应用可概括为4.目前比较流行的主流厂家的eda软件有、5.常用的设计输入方式有原理图输入、文本输入、状态机输入6.常用的硬件描述语言有7.逻辑综合后生成的网表文件为 edif8.布局布线主要完成9.10.常用的第三方eda工具软件有synplify/synplify pro、leonardo spectrum1.8.2选择1.eda技术发展历程的正确描述为(a)a cad-cae-edab eda-cad-caec eda-cae-cadd cae-cad-eda2.altera的第四代eda集成开发环境为(c)a modelsimb mux+plus iic quartus iid ise3.下列eda工具中,支持状态图输入方式的是(b)a quartus iib isec ispdesignexpertd syplify pro4.下列几种仿真中考虑了物理模型参数的仿真是(a)a 时序仿真b 功能仿真c 行为仿真d 逻辑仿真5.下列描述eda工程设计流程正确的是(c)a输入-综合-布线-下载-仿真b布线-仿真-下载-输入-综合c输入-综合-布线-仿真-下载d输入-仿真-综合-布线-下载6.下列编程语言中不属于硬件描述语言的是(d)a vhdlb verilogc abeld php1.8.3问答1.结合本章学习的知识,简述什么是eda技术?谈谈自己对eda技术的认识?答:eda(electronic design automation)工程是现代电子信息工程领域中一门发展迅速的新技术。
2.简要介绍eda技术的发展历程?答:现代eda技术是20世纪90年代初从计算机辅助设计、辅助制造和辅助测试等工程概念发展而来的。
第4章-VHDL基础PPT课件
PORT(a,b_LOGIC);
实体部分
END and2;
ARCHITECTURE and2x OF and2 IS
BEGIN
y<=a AND b;
结构体部分
END and2x;
4
2库(LIBRARY)
➢ 库是用来放置可编译的设计单元的地方,通过其目录可查询 和调用。 VHDL中的库大致可归纳为5种:IEEE库、STD库、 ASIC矢量库、WORK库和用户定义库。
6
库和程序包的语法:
library <设计库名>; use < 设计库名>.<程序包名>.all ;
一般VHDL代码中库和程序包的调用语句:
library ieee ; use ieee.std_logic_1164.all ;
--最常用
use ieee.std_logic_arith.all;
use ieee.std_logic_signed.all;
END add4;
由实体说明画出四位加法器add4的电路图如下所示。
a[3..0]
Sum[3..0]
b[3..0]
Ci
add4
Co
11
4. 结构体
结构体主要是描述实体的硬件结构、元件之间的 互连关系、实体所完成的逻辑功能以及数据的传输变 换等方面的内容。
结构体的语句格式:
architecture arch_name of e_name is [说明语句]
2
实体
(Entity)
一个完整的 VHDL程序
结构体
(Architecture)
配置
(Configuration)
包集合
第4章 VHDL设计初步
结构体有三种描述方式 *行为描述(behavioral):
高层次的功能描述,不必考虑在电路中到底是怎样实现的。
*数据流描述(dataflow):
描述输入信号经过怎样的变换得到输出信号
*结构化描述(structural):
【例4-2】-1 2选1多路选择器 ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT ); END ENTITY mux21a;
功能:s = 0
s=1
y=a y =b
ARCHITECTURE one OF mux21a IS BEGIN 并行语句 y <= (a AND (NOT s)) OR (b AND s) ; END ARCHITECTURE one;
端口模式:
IN、OUT、INOUT、BUFFER描述端口数据的流向特征。
数据类型: 数据对象承载数据的类别:BIT的定义值为逻辑'1'和'0'。
信号赋值符: “<=”,用于信号数据的传输,仿真传输延时最短为一个。
条件比较符:
“=”,在条件语句表式中用于比较待测数据的关系。
延时: 模拟器最小分辨时间,或称延时 。
port:
*在层次化设计时,Port为模块之间的接口 *在芯片级,则代表具体芯片的管脚
数据通道输入端口
数据输出端
通道选择控制信号端
图4-1 mux21a实体
(2) 以关键词ARCHITECTURE引导,END ARCHITECTURE … 结尾的语句部分,称为结构体。 功能:通过若干顺序语句和并行语句来描述设计实体的逻辑功能(行为描述)
第4章 VHDL语言基础
设计实体
结构体1
结构体2
结构体3
。 。 。
结构体n
FPGA-CPLD原理及应用
结构体的语法
第4章 VHDL语言基础
architecture 结构体名称 of 实体名称 is [说明语句] ;
begin [(功能描述)语句];
end [architecture] 结构体名称;
注:同一实体的结构体不能同名。定义语句中的常 数、信号不能与实体中的端口同名。
equal: out std_logic ); end eqcomp4;
A[3..0] B[3..0]
equal
FPGA-CPLD原理及应用
端口声明
第4章 VHDL语言基础
确定输入、输出端口的数目和类型。
Port (端口名称{,端口名称}:端口模式
… 端口名称{,端口名称}:端口模式 );
数据类型; 数据类型
FPGA-CPLD原理及应用
VHDL组成
第4章 VHDL语言基础
库 包 实体
结构体
eqcomp4.vhd
--eqcomp4 is a four bit equality comparator
Library IEEE; use IEEE.std_logic_1164.all;
entity eqcomp4 is port(a, b:in std_logic_vector(3 downto 0);
FPGA-CPLD原理及应用
第4章 VHDL语言基础
计数器等效描述(out与buffer的区别)
FPGA-CPLD原理及应用
3、数据类型
第4章 VHDL语言基础
指端口上流动的数据表达格式,为预先定好的数据类型,如: bit、bit_vector、integer、std_logic、std_logic_vector 等。 例: entity m81 is port (a: in std_logic_vector(7 downto 0); sel: in std_logic_vector(2 downto 0); b:out bit ); end entity m81;
第4章_VHDL设计初步
行为描述
图3 mux21a功能时序波形 功能时序波形
VHDL相关语句说明 相关语句说明
93版 版
1. 实体表达 实体是指设计的 功能模块, 功能模块,它描 述模块的名称和 端口信号
ENTITY e_name IS PORT ( p_name : port_m data_type; ... p_namei : port_mi data_type ); END ENTITY e_name;
布尔数据类型(BOOLEAN): 为真或者假( 布尔数据类型(BOOLEAN):指一个表达式的值,为真或者假( ),用于逻辑操作和条件判断 用于逻辑操作和条件判断。 true = 1,false = 0 ),用于逻辑操作和条件判断。
逻辑操作符AND OR、 AND、 8. 逻辑操作符AND、OR器VHDL描述
关于VHDL 关于
多路选择器VHDL描述 描述 多路选择器
什么是VHDL? 什么是VHDL? VHDL
Very high speed integrated Hardware Description Language (VHDL)
ִ是IEEE、工业标准硬件描述语言 是 、 ִ用语言的方式而非图形等方式描述硬件电路 用语言的方式而非图形等方式描述硬件电路
寄存器描述及其VHDL语言现象 ●寄存器描述及其 语言现象
触发器的VHDL描述 触发器的 描述 ▼D触发器的
D触发器 触发器
【例】 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 ;
第4章__VHDL设计入门
1、类属参数声明 放在端口声明之前,指定所设计电路所用 到的类属参数,如矢量位数、时间单位等,主 要在进行考虑一般性的设计时用到,通过改变 这些类属参数可适应不同情况要求。 例如: GENERIC(n:POSITIVE:=8);---声明一个类 属参数。
2、端口声明 描述所设计的电路与外部电路的接口,指 定其输入/输出端口或引脚。其格式如ห้องสมุดไป่ตู้: PORT(端口名: 端口方向 端口数据类型; …… 端口名: 端口方向 端口数据类型);
重点和难点
Quartus II的HDL输入法 VHDL程序的顺序结构
VHDL程序的并行结构
EDA技术与VHDL实用教程
引
言
HDL文本输入设计法是Quartus II的另一 个重要输入设计法,本书主要介绍VHDL文 本输入设计法。本章讨论VHDL文本输入设 计法的基本知识,在第五章再对VHDL文本 输入设计法作进一步的深入讨论。 本章先介绍VHDL文本输入设计法的文件 建立、文件编辑、文件编译和文件仿真方法 ,然后再依次介绍VHDL程序的基本结构、 顺序结构和并行结构,最后对VHDL程序的 语言要素作一个总结。
一、赋值语句 赋值语句分变量赋值语句和信号赋值语 句。其用途是将一个值或者表达式的运算结 果传递给一个变量、信号或者由它们组成的 数组。变量赋值和信号赋值的区别是变量赋 值时间延迟为零而信号赋值一定存在时间延 迟。
1、变量赋值语句 例4.1 A:=9; B:=7; Z:=X+Y; 其中A、B和Z都是变量, :=表示给变量赋 值。 变量赋值语句的格式是: 目标变量:=赋值源表达式;
EDA技术与VHDL实用教程
(3)ASIC矢量库 : 各公司提供的ASIC逻辑 门库。 (4)WORK 库: 为现行作业库,存放设计 者的VHDL语言程序,是用户自己的库。 使用时不需显式声明,但必需在根目录下 建立一个文件夹作为用户项目目录,这目 录将被综合器默认为WORK 库,但WORK 库并不以这个文件夹的名字为名字,它的 名字是WORK。 (5)用户自定义库: 用户自己定义的库。
第4章VHDL基础
(2)定义语句
定义语句位于ARCHITECTURE和BEGIN之间,用于 对构造体内部所使用的信号、常数、数据类型和函数进 行定义,结构体的信号定义和实体的端口说明一样,应 有信号名称和数据类型定义,但不需要定义信号模式, 不用说明信号方向,因为是结构体内部连接用信号。
(3)并行处理语句
并行处理语句位于语句BEGIN和END之间,这些语 句具体地描述了构造体的行为。在刚开始,设计者往往
2)类属参数说明(可选项) 类属参数是一种端口界面常数,以一种说明形式放在 实体或结构体中。类属参数说明必须放在端口说明之前, 用于指定参数。类属参数一般用来指定VHDL程序中的 一些可以人为修改的参数值,比如:指定信号的延迟时 间值、数据线的宽度以及计数器的模数等。
学习目标
通过对本章内容的学习,学生应该能够做到: 了解:VHDL发展历程及特点,层次化的VHDL设计流程。 理解:VHDL程序的基本单元、基本结构和语法。 应用:掌握VHDL的编程设计,描述方法,顺序语句和并 行语句的使用方法,层次化设计的基本思想和原则。
主要内容 4.1 4.2 4.3 4.4 VHDL的基本组成 VHDL语言的基本要素 VHDL语言的基本语句 VHDL的基本实验。
(3)数据类型
VHDL中有多种数据类型。常用的有布尔代数型 (BOOLEAN),取值可为真(true)或假 (false);位型(BIT) 取值可为“0‖或“1‖;位矢量型(Bit-vector);整型 (INTEGER),它可作循环的指针或常数,通常不用于I/O 信号;无符号型(UNSIGNED);实型(REAL)等。另外还 定义了一些常用类型转换函数,如 CONV_STD_LOGIC_VECTOR(x,y)。
在层次化系统设计中,实体说明是整个模块或整 个系统的输入输出(I/O)。在一个器件级的设计中, 实体说明是一个芯片的输入/输出(I/O)。
第04章 VHDL程序设计基础
第4章 VHDL程序设计基础
4、numeric_std程序包
定义了用于综合的数值类型和算术运算。其中数值类型有 unsigned和signed两种。 程序包中含有unsigned和signed类型的算术运算对所有 项目的设计单元都是重载、可调用的,使用前要使其成为“可 见”。 程序包中含有类型转换函数、时钟检测函数和其他的实用 函数。 程序包的调用格式: LIBRARY IEEE; USE IEEE.numeric_std.all;
9
第4章 VHDL程序设计基础
5、用户自定义的库
在VHDL的实际应用中,用户为自身设计需要所开发的共用 程序包和实体等也可以汇集在一起定义成一个库,这种库就是 用户自定义库或称用户库。用户自定义库是一种资源库,因此 在使用时需要在程序的开始部分进行说明。
10
第4章 VHDL程序设计基础
4.3
一、程序包的概念及语法 1、什么是程序包 程序包是一种使包体中的元件、函数、类型说明,对其 他设计单元是“可见”、可调用的设计单元。 2、程序包的任务 使不同的设计项目可以共享一个相同的单元,而这个单 元封装在两个不同的设计实体中。 3、程序包的组成 由程序包说明和程序包体组成。程序包说明为程序包定 义接口,声明包中的数据类型、元件、函数,其方式与实 体定义模块接口非常相似。程序包体规定程序的实际功能, 存放说明中的函数和元件,其方式与结构体语句方法相同。 11
第4章 VHDL程序设计基础
主要内容:1、层次化设计方法
2、库 3、程序包 4、文件输入输出程序包 5、元件库 6、元件的配置 7、块的配置 8、参数指定 9、子程序调用和重载 10、子程序变量
重点内容: 程序包、元件库和元件、块的配置
1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A B
AND
C
FPGA
line .vhd
2、VHDL语言的基本单元及其构成
例1语法说明: 1、每一条语句以;号结束。 2、实体名必须与VHDL源文件名同名。 3、“--”符号为VHDL语言注释符。 4、“<=”为信号赋值符号,数据类型一致。 5、“std_logic”是引脚数据类型。
2、VHDL程序基本单元及其构成——库和程序包 调用 类似于C语言中的头文件,库和程序包中存 放着已经定义好和编译好的数据类型、函 数和过程,可供其他实体直接调用。 引用方法:
总结——VHDL程序结构说明
VHDL结构 库 (Library) 功能说明 举例
用于存放已经编译好的包集 本例中LIBRARY IEEE, 合、实体、结构体和配置等。 即调用IEEE标准库 库的好处在于使设计者可通 过库调用共享已经编译过的 设计结果 用于声明在实体中将用到的 信号定义、常量定义、数据 类型、元件声明、函数和过 程定义等,通过包调用来共 享。 用于描述模块对外的输入/输 出端口。实体声明不涉及模 块内部功能如何实现。
3、4位加法计数器
By I/O , Integer By signal , std_logic_vector 语法现象说明
总结
VHDL程序主要结构包括:
库和程序包调用 实体声明 结构体
本章主要是从整体架构上对VHDL程序进行 介绍,VHDL程序的数据类型、数据对象、 运算操作符等语法要素及VHDL程序语句在 下一章介绍。
实体声明 (Entity eclaration) 结构体 (Architecture) 配置 (Configuration)
本例较简单,不需要使用 配置
练习题1
1、写出三输入与门的实体描述
练习题2
2、用VHDL语言实现下面的电路功能;
作 P97: 1,2,3, 5, 6, 7
业
语法格式: ARCHITECTURE 结构体 名 OF 实体名 IS [结构体声明] BEGIN [结构体功能描述语句] END ARCHITECTURE 结构体名;
例题2 多路选择器
Topic1:Design Style
1. Data Flow Description Style 2. Behavior Description Style 3. Structural Description Style
VHDL设计初步
EDA
本讲内容
从本章起,我们开始学习VHDL语言的语法知识及程序设计方法。本章介绍VHDL程序基本结构。 从整体架构上认识VHDL程序,重点介绍VHDL语言各组成部分的语法格式以及在描述数字电路时 所起的作用。
1 2 3
VHDL语言概述 VHDL语言的基本单元及其构成
VHDL文本输入设计方法初步
2、VHDL程序基本单元及其构成
VHDL程序
库与程序包调用
实体声明 (Entity)
结构体 (Architecture)
例题1:“与门”的VHDL实现
--******************************************** LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; --********************************************* ENTITY line is PORT( a,b : IN std_logic; c : OUT std_logic ); END line; --********************************************* ARCHITECTURE a OF line IS BEGIN c <= a and b; -- 信号赋值语句 END a;
Standard 程序包
Std_logic_1164程序包
Std_logic_arith程序包 Std_logic_unsigned Std_logic_signed程序包
使用方法
2、VHDL程序基本单元及其构成——实体声 明
ENTITY 实体名 IS [GENERIC(常数名1:常数数据类型[:=常数值]; 常数名1:常数数据类型[:=常数值]; … );] PORT( 端口名1: 端口方向 端口数据类型; 端口名2: 端口方向 端口数据类型; … 端口名n: 端口方向 端口数据类型; ); END [实体名]; --[ ]:中内容表示可选项;
LIBRARY 库名; USE 库名.程序包名.项目名;
VHDL库的类型:
设计库:STD、Work; 资源库: IEEE库、VITIAL库和用户自定义库。
常用的程序包介绍。
2、VHDL程序基本单元及其构成
预先在STD库中编译, 预先在 IEEE库中编译, 主要定义了一些基本 预先在 IEEE 库中编译, 定义了 VHDL 编程中 数据类型, 预先在 IEEE Library ieee; 库中编译, 定义了 signed 和 和 boolean,bit, 最常用的 std_logic Use 定义了一些函数使设 unsigned 数据类型及 character,integer, std_logic_vector 数 ieee.std_logic_1164.all; 计者可以对 ieee.std_logic_arith.all; 其相关的数学运算和 real,string, 据类型,以及针对 std_logic_vector 数 ieee.std_logic_unsigned. 关系比较操作,以及 boolean_vector, std_logic 类型的常用 据类型进行算术运算 all; 一些重要的数据类型 bit_vector等。 逻辑运算操作符,如 操作。 转换函数。 “ AND”、“XOR”、 对所有设计实体均可 “ OR”、”NOT”等 见不需事先声明即可 使用。
1.图中所有的线(TL1-TL8)都属于系统A端口的一部分. 2.系统的某些端口在任何时候都不能被用来和内部子系统连接。 (比如TL2) 3.TL4属于模块B和模块D的端口线,但不是系统A的端口。 4.系统中所有的信号传输线都应该可以被系统A外部电路使用。
结构体
语法说明:
结构体名: 作用:描述实体内部结构 和功能。 用于标识结构体, behave(行为描 述)、structure(结构描述)或dataflow 组成:声明部分、功能描 (数据流描述)。 述部分。 结构体声明: 用于说明该结构体用到的内部信号 (signal)、用户自定义的数据类型 (type)、常数(constant)、过程 (procedure)、函数(function)和 元件(component)等。 结构体功能描述语句: 用于描述实体内部结构和功能。并 行语句。
VHDL程序设计举例
4
5
总
结
主要例题
1、与门电路 2、数据选择器 3、时序电路基础——D触发器 4、层次化设计初步——1位全加器 5、多位加法器
1、VHDL程序结构概述
1.1 VHDL特点: 功能强大、设计灵活 支持广泛、易于修改 强大的系统硬件描述能力 独立于器件的设计、与工艺无关 很强的移植能力 易于共享和复用
1、VHDL程序结构概述
1.2 VHDL语言与计算机语言区别: 应用程序 --- control procedure VHDL程序 --- make description
运行的基础
计算机语言是在CPU+RAM构建的平台上运行 VHDL设计的结果是由具体的逻辑、触发器组成的数字电路
执行方式
1. 设计文件名与实体名不一致
2. 文件名后缀错误的存为.tdf 而非VHD
3. 错误将程序文件存入根目录中。
4、VHDL程序设计举例
1、DFF
Std_logic Signal Clk’event If (锁存器,mux21)
4、VHDL程序设计举例
2、加法器
半加器(by data flow) 半加器(by behavior) 1位全加器 (by strcture)
计算机语言基本上以串行的方式执行 VHDL在总体上是以并行方式工作
验证方式
计算机语言主要关注于变量值的变化 VHDL要实现严格的时序逻辑关系
1、VHDL程序结构概述
1.3 VHDL程序设计约定
[ ] 为可选内容; 不区分大小写; — —表示注释; 文件名与实体名一致;
端口声明
赋予每个电路模块外部管脚的名称。用来说明信号流动的 方向,常用有四种端口模式。
课堂练习
右图表示一个系统A,其含有B,C,D 三个子系统以及8根信号传输线TL1 到TL8。如果把这个系统通过端口 连接到外部电路中,则 下列哪些表 述正确?
正确, 子系统B和D是两个相互 错, 这么做只是对于系统测试有 错,只有那些起到把系统和其外 错, 这句话太绝对了,比如TL2 独立的系统,通过 TL4来交换信 意义,但是若系统有成千上万个 部电路相连接作用的信号线才属 就是带反馈的输出端口,系统内 号, TL4 只工作在系统 A内部所以 于端口 TL4,TL5,TL6 由于只是系 内部连线,把它们都做端口显然 部子模块也需要能够和外界沟通。 不是系统 A的端口。 不现实。 统内部连线所以不是端口。
Topic2:How to choose ?
1. Different between each style 2. Tactics
3、 VHDL文本输入设计方法初步
文本输入 当前工程文件 VHDL版本和排错 时序仿真 扩展名说明:
.VHD—表示VHDL程序; .TDF —表用于描述模块内部功能。描 述模块内部元件以及它们之 间的连线关系,以形成具有 逻辑功能的电路 决定哪一个结构体被使用
包 (Package)