10电-第3章-310 VHDL描述风格

合集下载

EDA技术与VHDL设计 第三章VHDL语言入门

EDA技术与VHDL设计 第三章VHDL语言入门

L10 ARCHITECTURE construct OF mux21 IS
L13 BEGIN
4
L12 L14 L15 L16
SIGNAL d : STD_LOGIC; d<= a AND (NOT S); e<= b AND s; y<= d OR e;
L13 BEGIN
第3章 VHDL语言入门
L17 END ARCHITECTURE construct; L18 ------------------------------------------------------------------------------------------------------------------------L19 ARCHITECTURE behavior OF mux21 IS L20 BEGIN L21 L22 L23 L24 L25 L26 PROCESS(a, b, s) BEGIN IF s='0' THEN y <= a; ELAE y <= b; END IF; END PROCESS;
17
第3章 VHDL语言入门
图3-6 半加器真值表和逻辑表达式
18
第3章 VHDL语言入门
图3-7 半加器电路结构
19
第3章 VHDL语言入门
【例 3-2】
L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 -----------------------------------------------------库和程序包----------------------------------------------------LIBRARY ieee ; USE ieee.std_logic_1164.all; ---------------------------------------------------------实体---------------------------------------------------------ENTITY halfadd IS PORT ( a, b co, so : IN STD_LOGIC; : OUT STD_LOGIC );

第8讲 VHDL的描述风格

第8讲 VHDL的描述风格

关于信号与变量
结构描述
VHDL 结构型描述风格是基于元件例化语句或生成 语句的应用,利用这种语句可以用不同类型的结构来完 成多层次的工程,即从简单的门到非常复杂的元件,包 括各种已完成的设计实体子模块来描述整个系统。 结构描述就是表示元件之间的互连这种描述,允许 互连元件的层次式安置像网表本身的构建一样。
ARCHITECTURE STRUCTURE OF COUNTER3 IS COMPONENT DFF PORT(CLK, DATA: IN BIT; Q: OUT BIT); END COMPONENT; COMPONENT AND2 PORT(I1, I2: IN BIT; O: OUT BIT); END COMPONENT; COMPONENT OR2 PORT(I1, I2: IN BIT; O: OUT BIT); END COMPONENT; COMPONENT NAND2 PORT(I1, I2: IN BIT; O: OUT BIT); END COMPONENT; COMPONENT XNOR2 PORT(I1, I2: IN BIT; O: OUT BIT); END COMPONENT; COMPONENT INV PORT(I: IN BIT; O: OUT BIT); END COMPONENT; SIGNAL N1, N2, N3, N4, N5, N6, N7, N8, N9: BIT;
层次化设计


详细地定义设计中的模块,使多个设计 者之间并行工作 对于每个模块,便于减少错误和Debug 可对每个模块单独仿真 分阶段完成设计
层次化设计举例
LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY BCD_Disply IS PORT ( Clrn,Clk : IN STD_LOGIC; s1,s0 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ; END ; ARCHITECTURE one OF BCD_Disply IS COMPONENT cnt10 PORT(Clrn,Clk: IN STD_LOGIC; q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); Co : OUT STD_LOGIC); END COMPONENT; COMPONENT decl7s PORT ( a : IN STD_LOGIC_VECTOR(3 DOWNTO 0); Led : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ; END COMPONENT;

第3章 硬件描述语言VHDL的基本框架介绍

第3章 硬件描述语言VHDL的基本框架介绍

第三章硬件描述语言VHDL的基本框架介绍3.1 概述3.1.1 硬件描述语言的简介硬件描述语言(Hardware Description Language, HDL),是描述硬件电路的功能、信号连接关系及时序关系的语言。

常用硬件描述语言有VHDL、Verilog HDL和ABEL语言。

VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Description Language(超高速集成电路硬件描述语言)。

它诞生于1982年美国国防部提出的超高速集成电路计划,其目的是为了在各个承担国防部订货的集成电路厂商之间建立一个统一的设计数据和文档交换格式。

1987年底被IEEE 和美国国防部确认为标准硬件描述语言。

自IEEE公布了VHDL的标准版本(IEEE-1076)之后,各EDA公司相继推出了自己的VHDL 设计环境,或宣布自己的设计工具可以和VHDL接口。

此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准硬件描述语言。

1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本。

1995年,我国国家技术监督局制定的《CAD通用技术规范》推荐VHDL作为我国电子设计自动化硬件描述语言的国家规范。

现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。

3.1.2 VHDL与高级语言的联系与区别1. VHDL语言的特点VHDL主要用于描述数字系统的结构、行为、功能和接口。

相对于传统原理图描述方法,它主要的特点如下:1)具有强大的电路描述能力——综合功能VHDL既可以描述如编码器、译码器、计数器等组合逻辑电路和时序逻辑电路等门级的电路,也可用来描述如包括一个完整功能的计算机系统等系统级电路。

论VHDL语言的程序结构和描述风格

论VHDL语言的程序结构和描述风格
图3 ‘1’个数 计数器结 构体的数 据流描述
图4结构化描述法 的VHDL程序示 例 4.3结构( st r uc t ur al ) 描述
VHDL结构描述即逻辑元器件的连接描述, 它采用 并行处理 语句描述 设计实体 内的结构 组织 和元件 互连关系 。构造体 的结构化 描述法是 数字 系统层次化设计[ 2] 中常用的一种方法,其主要特点 如下:
( Ar c hi t ec t ur e) 描述一个设计的结构或行为,建立 设计的输入与输出之间的逻辑关系;利用配置 ( Conf i gur at i on) 技术,可以选取不同的结构体,这 样就 可以对同 一设计 任务进行 多种配 置的性能 实 验, 从而 选取性 能最优 的逻辑 实现 。
I SEND
得无从下手。 硬件描述语言主要有两个方面的应用【l ~2] :用
文档 语言的 形式描 述数字 设计以 及用于 系统的 仿 真、验证和设计综合等。目前应用最广泛的主要有 两种语言:Ver i l og- HDL和VHDL。Ver i l og- HDL 是一 种专门 为复杂 数字逻 辑电路 和系统 的设计 仿 真而开发的HDL语言,也可以说Ver i l og-HDL是 在应用最广泛的C语言的基础上发展起来的一种 硬件描述语言,由Cader i ce 公司1990年公开,并成 立了OVI ( Open Ver i l ogI nt er n at i ona l ) 组织来负责 其发展。VHDI 。语言是在20世纪80年代后期由 美国国防部开发的,美国军方研制专用集成电路所 指定的硬件描述语言。这两种语言均是I EEE的 工业标准硬件描述语言,且得到众多EDA公司的 支持,在电子工程领域,已成为事实上的通用硬件 描述语言。本文主要讨论VHDL语言。

第3章 硬件描述语言VHDL

第3章 硬件描述语言VHDL

说明: ※ STD库是VHDL的标准库,为所有设计单元所 共享、默认的库,只要在VHDL应用环境中,就 可随时调用这个库中的STANDARD包中的所有 内容,不必显式调用。 ※ IEEE库是VHDL设计中最常见的库,它包含 IEEE标准的程序包和其他一些支持工业标准的 程序包。 ※ 两个USE语句使得以下设计可使用程序包 std_logic_1164、std_logic_unsigned中预定义的 内容。 3)配置 一个实体可用多个结构体描述,在具体综合时选 择哪一个结构体来综合,则由配置来确定。

(3).字符串 字符串是一维的字符数。VHDL中包含有两种类型的字 符串:文字字符串和数位字符串。 1)文字字符串是用双引号括起来的一串文字,如: “BBS” 。主要用来做注释或信息提示 2)数字字符串称为矢量, 代表数组(元素)。 例如:B "1_1101_1100" 二进制数数组,9位 O "14" 八进制数数组,6位 X “AB0” 十六进制数数组,12位 主要用于VHDL中由 bit_vector或 std_logic_vector 定义 的数组。


3 结构体
结构体描述实体的行为功能。 一个实体可以使用3种不同的方式 行为描述; 结构描述; 数据流的描述。 1)结构体的一般格式如下: architecture <architecture_name结构体名> of <entity_name> is --结构体声明区域 --声明结构体所用的内部信号及数据类型 --如果使用元件例化,则在此声明所用的元件 begin --以下开始结构体,用于描述设计的功能 --concurrent signal assignments并行语句信号赋值 --processes 进程(顺序语句描述设计) --component instantiations 元件例化 end <architecture_name>;

3.3 VHDL语言结构体的描述方法

3.3 VHDL语言结构体的描述方法
当a和b的 宽度发生 变化时, 需要修改 设计,当 宽度过大 时,设计 非常繁琐
Architecture dataflow2 of eqcomp4 is begin equal <= not(a(0) xor b(0))and not(a(1) xor b(1))and not(a(2) xor b(2))and not(a(3) xor b(3)); end dataflow2;
程序包
程序包的格式: 包集合标题 PACKAGE 包集合名 IS [说明语句] END 包集合名; 定义子程序
包集合体
PACKAGE BODY 包集合名 IS [说明语句] 实现子程序 END 包集合名;
Hale Waihona Puke 函数(Function)Function 函数名 (参数表) Return 数据类型 函数首 在程序包标题 中定义 Function 函数名 (参数表) Return 数据类型 IS 说明部分 Begin 顺序语句 函数体 END Function 函数名; 在程序包体中 定义
函数应用实例
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE WORK.hanshu.ALL ; ENTITY axamp IS PORT(dat1,dat2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); dat3,dat4 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); out1,out2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END; ARCHITECTURE bhv OF axamp IS BEGIN out1 <= max(dat1,dat2); --用在赋值语句中的并行函数调用语句 PROCESS(dat3,dat4) BEGIN out2 <= max(dat3,dat4); --顺序函数调用语句 END PROCESS; END;

第三章_VHDL硬件描述语言

第三章_VHDL硬件描述语言
7
VHDL硬件描述语言—VHDL简介
VHDL与其他硬件描述语言的比较
一般的硬件描述语言可以在三个层次上进行电路描述
VHDL 描述范围
行为级
RTL级
门电路级
VerilogHDL 描述范围
8
VHDL硬件描述语言—VHDL简介
VHDL与其他硬件描述语言的比较
VHDL
VHDL是一种高级L简介
VHDL与其他硬件描述语言的比较
• 目前,大多数高档EDA软件都支持VHDL和 VerilogHDL混合设计,因此在工程应用中, 设计者可以根据需要使用VHDL或 VerilogHDL设计不同的电路模块
10
VHDL硬件描述语言—VHDL简介
VHDL与其他硬件描述语言的比较
26
VHDL硬件描述语言—VHDL程序结构
3.2 VHDL程序结构 3.2.1 实体 3.2.2 结构体 3.2.3 程序包、库和配置
27
VHDL硬件描述语言—VHDL程序结构
• 不管是简单的数字电路,还是复杂的数字 电路,其基本构成是一致的——它们都是 由实体说明部分和结构体两部分组成,它 们可以构成最简单的VHDL程序 • 通常,最简单的VHDL程序结构中还应该包 括另一重要部分,即库和程序包
19
VHDL硬件描述语言 —VHDL的基本结构及其优点
a b s 二选一选择器 y
a 0 1 X b X X 0 s 0 0 1 y 0 1 0
X
1
1
1
20
VHDL硬件描述语言 —VHDL的基本结构及其优点
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux21 IS PORT(a,b:IN STD_LOGIC; s:IN STD_LOGIC; y:OUT STD_LOGIC); END mux21; ARCHITECTURE behavior OF mux21 IS BEGIN y <= a WHEN s = „0‟ ELSE b WHEN s = „1‟; END ARCHITECTURE behavior; IEEE库使用说明

VHDL是一种硬件描述语言(课程总结)

VHDL是一种硬件描述语言(课程总结)

VHDL是一种硬件描述语言,用于对电子电路和系统的行为进行描述。

VHDL是VHSIC Hardware Description Language的缩写。

所有的VHDL代码都可以仿真,但不是所有的VHDL代码都可以综合。

V ery high speed integrated circuitVHDL和V erilog HDL都与工艺和工具无关,可以方便的进行移植和重用。

可编程逻辑器件包括:复杂可编程逻辑器件(CPLD:Complex Programmable Logic Devices),现场可编程门阵列(FPGA:Field Programmable Gate Arrays)。

VHDL语言从根本上讲是并发执行的。

因此常称之为代码,而不是程序。

VHDL中,只有在进程(PROCESS)、函数(FUNCTION)、和过程(PROCEDURE)内部的语句才是顺序执行的。

第二章VHDL代码结构VHDL代码的三个基本组成部分:库(LIBRARY)声明、实体(ENTITY)、构造体(ARCHITECTURE)库声明:列出当前设计中需要的所有库文件实体:定义电路的I/O引脚;构造体:包含的代码描述电路要实现的功能。

库的建立有利于设计重用和代码共享同时使代码结构更加清晰常用库:IEEE库,Std库,work库std_logic_1164:当用到std_logic及其衍生类型时,需要声明;std_logic_arith:定义了signed和unsigned类型和相关算数运算和比较运算。

std_logic_signed:使std_logic_vector 类型的数据同signed一样执行。

std_logic_unsigned:std ,work库在程序中都是默认可见的,直接使用就可,不需要再对其进行声明;只有ieee库在使用前需要声明。

实体(ENTITY)用来描述电路所有的输入/输出引脚,端口的信号模式4种:IN,OUT,INOUT,BUFFER。

第三部分硬件描述语言VHDL

第三部分硬件描述语言VHDL
END upac;
例2:程序包的VHDL程序书写举例 PACKAGE example IS CONSTANT pi:REAL:=3.1415926; CONSTANT defer:INTEGER; FUNCTION mean(a,b,c:REAL) RETURN REAL; COMPONENENT and IS
BEGIN CONTENT<=(OTHERS=>’1’) AFTER some_delay;
END PROCEDURE initialization; END ram
1.1.2. 结构体
结构体具体指明了该设计实体的行为,定义了该设计实体 的功能,规定了该实体的数据流程,指派了实体中内部元 件的连接关系
BUFFER 功能与INOUT类似,区别:当需要输 入数据时,只允许内部回读输出信号,即允许反 馈。如计数器设计,可将计数器输出的计数信号 回读,以作为下一计数值的初值。
该回读信号不是由外部输入,而是由内部产生, 向外输出的信号
出入端口的数据或信号的数据类型 (TYPES)
标准逻辑类型:布尔型、位型、位矢量型、 整数型
实体说明在VHDL程序设计中描述一个元件或一个模块 与设计系统的其余部分(其余元件、模块)之间的连接 关系,可以看作是一个电路符号。
3、类属说明
格式
GENERIC [CONSTANT] 端口名:[IN]子类型标识符[:=初始值],…]
例:GENERIC(m: TIME:=3ns) 属性说明和端口说明用于设计实体和外部
•格式
CONFIGURATION 标识符 OF 实体名 IS 配置说明 配置指定 END
•配置说明的格式
FOR 结构体名 FOR 例化标号:元件名 USE ENTITY 实体名[结构体_标识符] END FOR;

V第三章VHDL的描述风格

V第三章VHDL的描述风格

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY or_gate IS GENERIC(tpd:TIME:=10 ns); PORT(in1, in2: IN STD_LOGIC;
out1: OUT STD_LOGIC); END or_gate; ARCHITECTURE structural OF or_gate IS BEGIN
Sum, c_out: OUT STD_LOGIC); END full_adder;
ARCHITECTURE mix OF full_adder IS COMPONENT xor_gate
PORT(in1, in2: IN STD_LOGIC; out1: OUT STD_LOGIC);
END COMPONENT;
行为描述在EDA工程中通常被称为高层次描述,设计 工程师只需要注意正确的实体行为、准确的函数模型和 精确的输出结果就可以了,无需关注实体的电路组织和 门级实现。
例:基于全加器真值表采用行为描述方式设计的全加器 (1位二进制数全加)
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY full_adder IS GENERIC(tpd : TIME := 10 ns); PORT(x,y,c_in : IN STD_LOGIC;
(0 TO 3)
carry_vector初值为“0011”
3.2 数据流描述方式
数据流描述方式表示行为,也隐含表示结构,它描 述了数据流的运动路线、运动方向和运动结果。
对于全加器,用布尔方程描述其逻辑功能如下: s = x XOR y sum = s XOR c_in c_out = (x AND y) OR( s AND c_in) 下面是基于上述布尔方程的数据流风格的描述:

vhdl硬件描述语言课件

vhdl硬件描述语言课件
VHDL广泛应用于芯片设计和工程中,可描 述和模拟复杂的数字电路。
通信系统
VHDL可用于设计通信系统中的协议和通信 协议处理器。
计算机体系结构
使用VHDL可以设计和分析计算机体系结构 中的各种模块和组件。
嵌入式系统
嵌入式系统的开发通常使用VHDL进行硬件 描述和模拟。
VHDL的优势
1 可靠性
VHDL的严格类型检查和静态分析使得设计更可靠、更易于维护。
VHDL的数据类型
VHDL支持多种数据类型,包括标量类型、数组类型、记录类型和文件类型。不同的数据类型用于描述 和操作不同的电路信号和数据。
VHDL的运算符和控制结构
VHDL提供了丰富的运算符和控制结构,用于对信号和数据进行处理和操作。这些运算符和控制结构使 得电路设计更加灵活和高效。
2 可复用性
VHDL支持模块化设计,使得设计和开发过程更加高效和可复用。
3 可扩展性
VHDL可以轻松地扩展到更复杂的电路设计,适应不断变化的需求。
VHDL的基本语法
VHDL的基本语法包括实体(en t i t y)声明、体(arch i t ec t u re)声明、信号(si g nal)声明和过程(p r o cess)声明。 这些语法元素用于描述和定义电路的行为和结构。
DL的历史
1
1 981 年
VHDL的早期设计由美国国防部开始开
1987年
2
发,旨在统一不同厂商的硬件描述语 言。
美国电子工程师协会(IEEE)正式发
布了VHDL的第一个标准。
3
1 993 年
国际电工委员会(IEC)将VHDL作为 国际标准(IEC 61691)。
VHDL的应用领域
集成电路设计

VHDL的三种描述方式

VHDL的三种描述方式

END ARCHITECTURE example2;
5.3
结构描述
结构描述方式是用在多层次的设计中,高层次的设计 模块调用低层次的设计模块,或者直接用门电路设计单元 来构成一个复杂的逻辑电路的描述方法。结构描述一般用 元件例化语句和生成语句实现。
例如
LIBRARY IEEE;
USE IEEE.STDபைடு நூலகம்LOGIC 1164.ALL ENTITY nd2 IS PORT( a,b:IN STD LOGIC; c:OUT STD LOGIC);
ARCHITECTURE ord41behv OF ord41 IS
BEGIN CONPONENT nd2
PORT(a,b:IN STD LOGIC;c:OUT STD LOGIC);
END CONPONET; SIGANL x,y:STD LOGIC; BEGIN U1:nd2 PORT MAP(a1,b1,x); U2:nd2 PORT MAP(c1,d1,y); U3:nd2 PORT MAP(x,y,z1); END ARCHITECTURE ord41behv;
ARCHITECTURE mode1 OF \74LS18\ IS O_A<=NOT(I0_A AND I1_A AND I2_A AND I3_A) AFTER 55ns; O_B<=NOT(I0_B AND I1_B AND I2_B AND I3_B)
AFTER 55ns;
END mode1;
END nd2 ;
ARCHITECTURE nd2behv OF nd2 IS
BEGIN c<=a NAND b END ARCHITECTURE nd2behv; LIBRARY IEEE;

第3章 VHDL编程基础(1-3)

第3章  VHDL编程基础(1-3)

一种说明的形式放在实体或块结构体前的说明部分。
类属说明的一般书写格式如下:
Байду номын сангаас
GENERIC(常数名:数据类型[:=设定值]
{;常数名:数据类型[:=设定值 ]} );
第3章
VHDL编程基础
【例3.2.2】 2输入与门的实体描述。 ENTITY AND_2 IS
不可综合
GENERIC(RISEW:TIME:=1 ns;
第3章
VHDL编程基础
三、VHDL与软件语言的区别 VHDL和软件语言都是翻译器,都能将高层次的 设计表达转化成低层次的表达,却有本质的区别。
C、ASM... 程序 软件程序编译器
COMPILER
CPU指令/数据代码: 010010 100010 1100
(a)软件语言设计目标流程
VHDL/Verilog 程序
0100101000101100软件程序编译器compilervhdlverilog程序vhdlverilog程序硬件描述语言综合器synthesizer为asic设计提供的电路网表文件a软件语言设计目标流程b硬件语言设计目标流程三vhdl与软件语言的区别vhdl和软件语言都是翻译器都能将高层次的设计表达转化成低层次的表达却有本质的区别
END ENTITY
X
Full_Adder ;
Y
Cin

Sum
Cout
第3章
VHDL编程基础
Entity Examples (n-input AND)
ENTITY
ANDN
IS
X(0) X(1) X(2)

generic (wid : integer := 2); port ( X : in bit_vector(wid-1 downto 0); F : out bit );

常用逻辑电路的VHDL描述

常用逻辑电路的VHDL描述

直接根据真值表设计的全加器电路的VHDL示例程序。 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY full_adder IS PORT ( dataA, dataB, carryin : IN STD_LOGIC ; sum : OUT STD_LOGIC ; carryout : OUT STD_LOGIC ) ; END ENTITY full_adder ; ARCHITECTURE rtl OF full_adder IS BEGIN sum <= dataA XOR dataB XOR carryin ; -- 和数满足逻辑异或关系 carryout <= ( dataA AND dataB ) OR ( dataA AND carryin ) OR ( dataB AND carryin ) ; END ARCHITECTURE rL示例程序: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY half_adder IS PORT( dataA, dataB : IN STD_LOGIC ; sum : OUT STD_LOGIC ; carry : OUT STD_LOGIC ) ; END ENTITY half_adder ; ARCHITECTURE dataflow OF half_adder IS BEGIN sum <= dataA XOR dataB ; -- 和数满足逻辑异或关系 carry <= dataA AND dataB ; -- 进位位满足逻辑与关系 END ARCHITECTURE dataflow ;
WHEN "0000" => q <= "1111111111111110" ; WHEN "0001" => q <= "1111111111111101" ; WHEN "0010" => q <= "1111111111111011" ; WHEN "0011" => q <= "1111111111110111" ; WHEN "0100" => q <= "1111111111101111" ; WHEN "0101" => q <= "1111111111011111" ; WHEN "0110" => q <= "1111111110111111" ; WHEN "0111" => q <= "1111111101111111" ; WHEN "1000" => q <= "1111111011111111" ; WHEN "1001" => q <= "1111110111111111" ; WHEN "1010" => q <= "1111101111111111" ; WHEN "1011" => q <= "1111011111111111" ; WHEN "1100" => q <= "1110111111111111" ; WHEN "1101" => q <= "1101111111111111" ; WHEN "1110" => q <= "1011111111111111" ; WHEN "1111" => q <= "0111111111111111" ; WHEN OTHERS => q <= "XXXXXXXXXXXXXXXX" ; END CASE ; ELSE q <= "1111111111111111" ; END IF ; END PROCESS ; END ARCHITECTURE rtl ;

4.VHDL程序结构和常用描述方法

4.VHDL程序结构和常用描述方法

VHDL构造体常用描述方法 3
• 结构描述
– 把复杂的电子实体按其不同的硬件电路功能 划分为若干部分,然后对各部件具体描述。 – 全加器的一种逻辑结构图:
x y 半 加 器 a
b
Cin
半 加 器
c
或门
Cout Sum
结构描述
• 主要组成部分:元件、例元、生成语句
• 元件:用以描述某个实体的同一构造的同类 型部件(半加器)
• Architecture behave_aa OF aa Is Signal s1:bit; Signal s2,s3:std_logic_vector(0 to 3); ... Begin ... End data;
常数说明
结 构 体 说 明 结 构 体 结 构 体 功 能 描 述 数据类型说明 信号说明 例化元件说明 子程序说明 块语句 进程语句 信号赋值语句 子程序调用语句
类属常用于定义: 实体端口的大小、
设计实体的物理特性、 总线宽度、 元件例化的数量等。 例 1: entity mck is generic(width: integer:=16); port(add_bus:out std_logic_vector (width-1 downto 0)); …
例2:2输入与门的实体描述(P.213)
例:结构体中错误的信号声明
VHDL的程序结构
库、程序包 实体(Entity) 结构体
(Architecture)
进程 或其它并行结构
配置(Configuration)
VHDL的程序结构
四、配置
结构体1 结构体2 设计实体
• 一个设计实体的多种实现方式
Behave_.. Rtl_...

VHDL硬件描述语言(入门简述)

VHDL硬件描述语言(入门简述)
第三章
硬件描述语言基础
2020/5/10
1
章节目录
3.1 硬件描述语言概述
3.2 VHDL语言程序结构 3.3 VHDL语法基础 调换 3.4 VHDL常用语句 3.5 组合电路的VHDL描述 3.6 时序电路的VHDL描述
2020/5/10
2
3.1 硬件描述语言概述
可编程逻辑器件、电子设计自动化(EDA) 与硬件描述语言
affiliatedhospitalluzhoumedicalcollege201920191111292911第三章第三章硬件描述语言基础硬件描述语言基础affiliatedhospitalluzhoumedicalcollege222019201911112929章节目录章节目录3131硬件描述语言概述硬件描述语言概述32vhdl32vhdl语言程序结构语言程序结构33vhdl33vhdl语法基础语法基础34vhdl34vhdl常用语句常用语句3535组合电路的组合电路的vhdlvhdl描述描述3636时序电路的时序电路的vhdlvhdl描述描述调换affiliatedhospitalluzhoumedicalcollege3320192019111129293131硬件描述语言概述硬件描述语言概述可编程逻辑器件电子设计自动化可编程逻辑器件电子设计自动化edaeda与硬件描述语言与硬件描述语言可编程逻辑器件是一种功能可变的集成器件可通过编程的方法设计其完成不同的逻辑功能设计需借助软件工具即采用电子设计自动化的方式设计形式有原理图和硬件描述语言两种硬件描述语言是用来描述数字电路系统的一种语言affiliatedhospitalluzhoumedicalcollege4420192019111129293131硬件描述语言概述硬件描述语言概述目前常用的硬件描述语言有两种vhdlveriloghdlveryhighspeedintegratedcircuithardwaredescriptionlanguage超高速集成电路硬件描述语言veriloghardwaredescriptionlanguageverilog硬件描述语言vhdl语言发展较早从使用者数量来看目前两种语言平分秋色vhdl语言更严谨更适合设计大型数字系统
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。



三种描述方式分别从不同的角度对硬件系统进行行为 和功能描述。在实际应用中,为了能兼顾整个设计的 功能、资源、性能几方面的因素,通常混合使用这三 种描述方式。
CPLD/FPGA技术与应用
3.10.1 行为描述(Behavioral Style)

如果VHDL的结构体只描述了所希望电路的功能或者 说电路行为,而没有直接指明或涉及实现这些行为的 硬件结构(包括硬件特性、连线方式、逻辑行为方式 等),则称为行为描述。 行为描述有时被称为高级描述,只表示输入与输出间 的转换行为,不包含任何结构信息。
CPLD/FPGA技术与应用


在结构化描述中,建模的焦点是端口及其互连关系。
CPLD/FPGA技术与应用
3.10.3 结构描述

结构描述主要使用元件例化语句或生成语句来完成 硬件描述。

元件间的连接是通过定义的端口界面来实现的,其风格 最接近实际的硬件结构,即设计中的元件是互联的。

结构化描述的建模步骤如下:
① 元件说明:用于描述局部接口; ② 元件例化:是要相对于其他元件来放置该元件; ③ 元件配置:用于指定元件所用的设计实体。即对一个给 定实体,如果有多个可用的结构体,则由配置决定模拟 中所用的一个结构。
CPLD/FPGA技术与应用
【补充1】行为描述——4位等值比较器
Library ieee; Use ieee.std_logic_1164.all; Entity eqcomp4 is Port (a,b: in std_logic_vector (3 downto 0); equals: out std_logic); End eqcomp4; Architecture behavioral of eqcomp4 is Begin process(a,b) Begin If a=b then equals<='1'; Else equals<='0'; End if; End process; End behavioral;
CPLD/FPGA技术与应用
【补充3】结构描述——4位等值比较器
U0
a(0)
b(0)
xnor2
x(0) U4
U1
a(1) b(1) xnor2 x(1) a b
and4
U2
a(2) b(2) xnor2 x(2)
c
y
equals
d
U3
a(3) b(3) xnor2 x(3)
CPLD/FPGA技术与应用


CPLD/FPGA技术与应用
3.10 VHDL描述风格—(P172 5.8)

在VHDL中,这些描述方式(建模方法)称为描述风格, 通常可归纳为三种:

行为(数学模型)描述:大部分只能用于系统仿真, 少数的可以进行逻辑综合; 数据流(寄存器传输,RTL)描述:可以逻辑综合; 结构(逻辑元件连接)描述:可以逻辑综合。


行为描述的抽象程度最高,最能体现VHDL描述高层次 结构和系统的能力。
CPLD/FPGA技术与应用
3.10.1 行为描述

行为描述的设计模型定义了系统的行为,这种描述方 式通常由一个或多个进程构成;每一个进程又包含了 一系列顺序语句,以算法的形式描述数据的变化和传 送。 行为描述的优点在于设计工程师只需要描述清楚输入 与输出的行为,即正确的实体行为、准确的函数模型 和精确的输出结果,而无需关注实体的电路组织和门 级实现。
CPLD/FPGA技术与应用
第 3 章 VHDL设计初步
孙静 物理与机械电子工程学院
3.10 VHDL描述风格—(P172 5.8)

VHDL的结构体用于具体描述整个设计实体的逻辑功 能。 对于所希望的电路功能行为,可以在结构体中用不同 的语句类型和描述方式来表达; 对于相同的逻辑行为,可以有不同的语句表达方式。
【补充3】结构描述——4位等值比较器
Architecture struct of eqcomp4 is Component xnor2 --元件说明 Port(a,b:in std_logic; X: out std_logic); End component; Component and4 Port(a,b,c,d:in std_logic; y: out std_logic); End component; Signal x:std_logic_vector(0 to 3); Begin U0: xnor2 port map (a(0),b(0),x(0)); --元件例化 U1: xnor2 port map (a(1),b(1),x(1)); U2: xnor2 port map (a(2),b(2),x(2)); U3: xnor2 port map (a(3),b(3),x(3)); U4: and4 port map (x(0),x(1),x(2),x(3),equals); End struct;
CPLD/FPGA技术与应用
※编写结构描述程序的主要步骤
1. 绘制框图。先确定当前设计单元中需要用到的子模块的种 类和个数。对每个子模块用一个图符(称为实例元件)来 代表,只标出其编号、功能(可用图符区别或文字注记) 和接口特征(端口及信号流向),而不关心其内部细节。 2. 元件说明。每种子模块分别用一个元件声明语句来说明。 3. 信号说明。为各实例元件之间的每条连接线都起一个单独 的名字,称为信号名。利用SIGNAL语句对这些信号分别予 以说明。 4. 元件例化。根据实例元件的端口与模板元件的端口之间的 映射原理,对每个实例元件均可写出一个元件例化语句。 5. 添加必要的框架,完成整个设计文件。
CPLD/FPGA技术与应用
【补充2】数据流级描述——4位等值比较器
Library ieee; Use ieee.std_logic_1164.all;
Entity eqcomp4 is Port(a,b: in std_logic_vector (3 downto 0); equals: out std_logic); End eqcomp4; Architecture dataflow of eqcomp4 is Begin equals<='1' when(a=b) else '0';--并行信号赋值语句 End dataflow;

CPLD/FPGA技术与应用
3.10.2 数据流描述

数据流描述,也称RTL (Register Transfer Level, 寄存器传输级)描述, 是一种以规定设计的各种寄存 器形式为特征,然后在寄存器之间插入组合逻辑的描 述方法。

它可以采用寄存器硬件一一对应的直接描述(显式 地通过元件具体装配),或者采用寄存器之间的功 能描述(通过推论作隐含的描述)。
CPLD/FPGA技术与应用
3.10.2 数据流描述

数据流描述主要使用并行信号赋值语句来描述这种信 号间的数据流转,既显式表示了该设计单元的行为, 又隐式表示了该设计单元的结构。

数据流描述既可以描述时序电路,又可以描述组合电路; 既含有逻辑单元的结构信息,也隐含表示某种行为。 由于RTL描述方式是建立在并行信号赋值语句描述的基础 上,描述了数据流的运动路径、运动方向和运动结果,因 此称为数据流描。 数据流描述是真正可以进行逻辑综合的描述方式,能比较 观地表述底层逻辑行为。

CPLD/FPGA技术与应用
3.10.3 结构描述

结构描述是描述该设计单元的硬件结构,即该硬件是 如何构成的,换句话说是指系统中各单元之间的构成 关系是什么样的。 结构化描述方式就是在多层次的设计中,高层次的设 计可以调用低层次的设计模块,或直接用门电路设计 单元来构成一个复杂逻辑电路的方法。
相关文档
最新文档