EDA课件第三章
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
tmp2:=d1 AND (NOT sel); tmp3:=tmp1 OR tmp2; tmp<=tmp3;
q<=tmp AFTER m; END PROCESS cale;
END ARCHITECTURE connect;
(2) 端口方向
端口方向用来定义外部引脚的信号方向是输入还 是输出。
凡是用“IN”进行方向说明的端口,其信号自端口 输入到构造体,而构造体内部的信号不能从该端口输 出。相反,凡是用“OUT”进行方向说明的端口,其信 号将从构造体内经端口输出,而不能通过该端口向构 造体输入信号。
实体说明
一个模块中仅有一 个设计实体。
实体 提供设计模块的接口信息,是VHDL设计电 路的最基本部分。
实体说明具有如下的结构:
ENTITY 实体名 IS
实体说明以“ENTITTY 实体名
[类属参数说明];
IS”开始至“END ENTITTY实体 名”结束。这里大写字母表示
实体说明的框架。实际上,对
此例中的外部引脚
ARCHITECTURE connect OF mux IS SIGNAL tmp:BIT; BEGIN
cale:PROCESS(d0,d1,sel) IS VARIABLE tmp1,tmp2,tmp3:BIT;
BEGIN tmp1:=d0 AND sel;
为d0,d1,sel,q 。
库(Library)是经编译后的数据的集合,它存放包集合 定义、实体定义、构造体定义和配置定义。
设计中的子程序和 公用数据类型的集合。
程序包
IEEE标准的标准程序包 设计者自身设计的程序包
包和库具有这样的关系:多个过程和函数汇集在一起构成包 集合,而几个包汇集在一起就形成一个库。
一、库和程序包
库和包放在VHDL程序的最前面,表示以后在实体或结构体中要 用到数据类型包中的数据类型。
端口名{,端口名}:方向 数据类型名 );
(1) 端口名
端口名是赋予每个外部引脚的名称,通常用一个或几个英
文字母,或者用英文字母加数字命名之。
ENTITY mux IS GENERIC(m:TIME:=1ns); PORT(d0,d1,sel:IN BIT;
q:OUT BIT);
END ENTITY mux;
(3) 数据类型
在VHDL语言中有10种数据类型,但是在逻辑电 路设计中只用到两种:BIT和BIT_VECTOR。
当端口被说明为BIT数据类型时,该端口的信号 取值只可能是“1”或“0”。注意,这里的“1”和“0”是指 逻辑值。所以BIT数据类型是位逻辑数据类型,其取值 只能是两个逻辑值(“1”和“0”)中的一个。
BEGIN tmp1:=d0 AND sel; tmp2:=d1 AND (NOT sel); tmp3:=tmp1 OR tmp2; tmp<=tmp3; q<=tmp AFTER m;
END PROCESS cale;
END ARCHITECTURE connect;
构造体
构造体描述了二 选一器件的逻辑 电路和逻辑关系
上 述 表 明 , 在 该 VHDL 语 言 程 序 中 要 使 用 IEEE 库 中 STD_LOGIC_1164包集合的所有项目。这里,项目名为ALL,表 示包集合的所有项目都要用。
关于IEEE库
在IEEE库中有一个“STD_LOGIC_1164”的包集 合,它是IEEE正式认可的标准包集合。现在有些公司, 如 SYNOPSYS 公 司 也 提 供 一 些 包 集 合 “STD_LOGIC_ARITH” 、 “ STD_LOGIC_UNSIGNED” , 尽管它们没有得到IEEE的承认,但是仍汇集在IEEE库 中。
tmp3:=tmp1 OR tmp2; tmp<=tmp3;
q<=tmp AFTER m;
在本例中,GENERIC利用类 属参数为tmp建立一个延迟值。
END PROCESS;
END ENTITY connect;
2、端口说明
端口说明是对基本设计实体(单元)与外部接口 的描述,也可以说是对外部引脚信号的名称、数据类 型和输入、输出方向的描述。其一般书写格式如下: PORT(端口名{,端口名}:方向 数据类型名;
[端口说明];
VHDL 而 言 , 大 写 或 小 写 都 一 视同仁,不加区分。这里仅仅
END ENTITY实体名; 是为了阅读方便而加以区分的。
例:
a1
ENTITY kxor IS
b1
PORT(a1,b1:IN std_logic;
c1:OUT std_logic);
END kxor;
kxor
VHDL和Verilog的比较
Verilog: 易学易用 语法自由 底层建模
VHDL: 语法严谨、层次清晰 系统级建模强
3.2 VHDL的基本结构
库说明
包集合说明
基 实体说明
本
单 构造体描述
元
配置语句
库存放已编译的实体、构造体、包 集合、和配置。相当于书库。
包集合存放各设计模块能共享的数据 类型、常数和子程序。相当于书架。
VHDL语言设计的基本单元及其构成
VHDL语言设计的基本单元(Design Entity), 就是VHDL语言的一个基本设计实体。
设计的基本单元
实体说明 构造体
基本单元举例
以下二选一电路的VHDL描述,可以看成是一个设计的基本单元。
ENTITY mux IS GENERIC(m:TIME:=1ns); PORT(d0,d1,sel:IN BIT;
EDA技术与VHDL程序开发基础
教程
一、硬件描述语言概述
★ 硬件描述语言
◆ ABEL ◆ AHDL ◆ Verilog HDL ◆ VHDL
IEEE标准
美国国防部在80年代初提出了VHSIC(Very High Speed
Integrated Circuit)计划,其目标之一是为下一代集成电路的
生产,实现阶段性的工艺极限以及完成10万门级以上的设计, 建立一项新的描述方法。1981年提出了一种新的HDL,称之为 VHSIC Hardware Description Language,简称为VHDL。
1989年CADENCE公司收购了GDA公司,使得VerilogHDL成为 了该公司的独家专利。1990年CADENCE公司公开发表了Verilo g HDL,并成立LVI组织以促进Verilog HDL成为IEEE标准,即I EEE Standard 1364-1995.
EDA技术与VHDL程序开发基础 一教、程硬件描述语言概述
EDA技术与VHDL程序开发基础 教程
★ VHDL语言的主要优点 ◆ 是一种多层次的硬件描述语言,覆盖面广,描述能 力强。即设计的原始描述可以是非常简练的描述, 经过层层细化求精,最终成为可直接付诸生产的电 路级或版图参数描述,整个过程都可以在VHDL的 环境下进行。 ◆ VHDL 有良好的可读性,即可以被计算机接受,也 容易被理解用VHDL 书写的原文件,既是程序,又 是文档,既是技术人员之间交换信息的文件,又可 作为合同签约者之间的文件。
当端口被说明为BIT_VECTOR数据类型时,该端 口的取值可能是一组二进制位的值。例如,某一数据 总线输出端口,具有8位的总线宽度。那么这样的总线 端口的数据类型可以被说明成BIT_VECTOR。总线端 口上的值由8位二进制位的值所确定。
(4) 端口说明举例1
PORT(d0,d1,sel:IN BIT; q:OUT BIT;
bus:OUT BIT_VECTOR(7 DOWNTO 0) ); 该 例中d0,d1,sel,q都是BIT 数 据类 型,而bus是 BIT_VECTOR类型,(7 DOWNTO 0)表示该bus端口是 一个8位端口,由B7~B0 8位构成。位矢量长度为8位。
(5) 端口说明举例2
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mu IS
实体用于说明所设计的系统的外部 接口信号。
构造体用于描述系统内部的结构和行 为。
配置用于从库中选取所需单元来组成 系统设计的不同版本。
3.2 VHDL的基本结构
库、程序包 实体(Entity)
结构体 (Architecture)
进程 或其它并行结构
配置(Configuration)
一、库和程序包
q:OUT BIT);
END ENTITY mux;
实体说明
实体说明是二选一器 件外部引脚的定义
ARCHITECTURE connect OF mux IS SIGNAL tmp:BIT; BEGIN
cale:PROCESS(d0,d1,sel) IS VARIABLE tmp1,tmp2,tmp3:BIT;
◆ VHDL已成为IEEE承认的一个工业标准,事实上已成 为通用硬件描述语言。
EDA技术与VHDL程序开发基础 教程
Verilog
Verilog HDL是在C语言的基础上发展起来的一种件描述语 言,由GDA(Gateway Design Automation)公司的PhilMoorby 在1983年末首创,最初只设计了一个仿真与验证工具,之后 又陆续开发了相关的故障模拟与时序分析工具。1985年Moorb y推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功 ,从而使得Verilog HDL迅速得到推广应用。
PORT(d0,d1,sel:IN STD_LOGIC; q:OUT STD_LOGIC;
c1
ENTITY、IS、PORT、IN、OUT和END为关键字; ENTITY...END之间表示实体内容; kxor表示实体的名称,即电路的符号名; PORT——端口(引脚)信息关键字,描述了信号的流向;
IN——输入模式; OUT——输出模式; std_logic表示信号取值的类型为标准逻辑。
1、类属参数说明
第一个语句是“LIBRARY 库名”,表明使用什么库。第二个语句说 明要使用的是库中哪一个包以及包中的项目名(如过程名、函数 名等),如:
USE LIBRARY_name.package_
所以,一般在使用库时首先要用两条语句对库进行说明。例如:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
EDA技术与VHDL程序开发基础 教程
◆ VHDL本身的生命期长。因为VHDL的硬件描述与工艺 技术无关,不会因工艺变化而使描述过时。与工艺技术 有关的参数可通过VHDL提供的属性加以描述,工艺改 变时,只需修改相应程序中的属性参数即可。
◆ 支持大规模设计的分解和已有设计的再利用。一个大规 模设计不可能一个人独立完成,它将由多人,多项目组 来共同完成。VHDL为设计的分解和设计的再利用提供 了有力的支持。
另外,“INOUT”用以说明该端口是双向的,可以 输入也可以输出;“BUFFER”用以说明该端口可以输 出信号,且在构造体内部也可以利用该输出信号。
(2) 端口方向(续)
端口方向说明
方向定义 IN
OUT INOUT BUFFER
含义 输入 输出(构造体内部不能再使用) 双向 输出(构造体内部可再使用)
类属说明的作用:确定实体或组件中定义的局部常数。模块化设计 时多用于不同层次模块之间信息的传递。可从外部改变内部电路结 构和规模。类属说明必须放在端口说明之前,用于指定参数。
ENTITY mux IS
GENERIC(m:TIME:=1ns); PORT(d0,d1,sel:IN BIT;
该语句指定了构造体内m的值为1ns。
OUT与BUFFER在定义输出端口时的区别
在(a)中,锁存器的输出端口被说明为“OUT”,而在 (b)中,锁存器的输出被说明为“BUFFER”。从图中可以看 到,如果构造体内部要使用该信号,那么锁存器的输出端必须 说明为“BUFFER”,而不能用“OUT”说明。
(b)说明了,当一个构造体用“BUFFER”说明输出端口 时,与其连接的另一个构造体的端口也要用“BUFFER”说明。 对于“OUT”则没有这样的要求。
q:OUT BIT);
ENDnect OF mux IS
SIGNAL tmp:BIT;
BEGIN
cale:PROCESS(d0,d1,sel)
VARIABLE tmp1,tmp2,tmp3:BIT;
BEGIN
tmp1:=d0 AND sel;
tmp2:=d1 AND (NOT sel);