当前位置:文档之家› 数字电路与系统 VHDL语言

数字电路与系统 VHDL语言

例11.6.3 关于RS触发器的实例。
29
ENTITY rsff IS PORT (set,reset: IN BIT;q,qb:BUFFER BIT); END rsff ; ARCHITECTURE netlist OF rsff IS COMPONENT nand2 PORT ( a,b:IN BIT;c:OUT BIT) END COMPONENT; BEGIN U1: nand2 PORT MAP(a=>set,b=>qb,c=>q); U2: nand2 PORT MAP(a=>reset,b=>q,c=>qb); END netlist;
实体(Entity)、构造体(Architecture)、配
置(Configuration)、包集合(Package)、 和库(Library)5部分。 ※实体:描述所设计的系统的外部接口信号; ※构造体:描述系统内部的结构和行为,即电路 的具体描述; ※包集合:存放各设计模块都能共享的数据类型、 常数和子程引脚的名称,通常用一
个或几个英文字母,或者用英文字母加数字命
名。如d0,d1,sel等。 ②模式:定义外部引脚的信号方向是输入、输出 等。
21
端口模式
模 式 IN OUT 含 义 输入 输出(构造体内部不能再使用)
INOUT BUFFER
LINKAGE
双向 输出(构造体内部可再使用)
(1)并发描述(CONCURRENT)语句 ①进程(PROCESS)语句
②块(BLOCK)语句※ ③赋值语句
例11.6.7 四选一数据选择器的实现。
例11.6.8 四选一数据选择器的实现。 ④生成(GENERATE)语句※
5
(2)顺序描述(SEQUENTIAL)语句
①条件(IF)语句 用IF 语句实现例11.6.8 四选一数据选择器。 ②开关(CASE)语句 用CASE 语句实现例11.6.8 四选一数据选择器。
31
4.包集合(Package) 用来单纯地罗列VHDL语言中所要用到的信号、常 数、数据类型、元件语句、函数和过程等。它 是一个可编译的设计单元。 PACKAGE 包集合名 IS [说明语句] END [包集合名] ;-- 包头 PACKAGE BODY 包集合名 IS [说明语句] END [包集合名] ;--包体
q <=(d0 AND sel) OR ( NOT sel AND d1); END dataflow;
28
3.配置(Configuration) 配置语句描述层与层之间的连接关系以及实体与 构造体之间的连接关系。常用于仿真。 CONFIGURATION 配置名 OF 实体名 IS 语句说明
END [配置名];
2
2.构造体(Architecture) 例3 ARCHITECTURE behaviorOF mux IS 例4 ENTITY mux2 IS 3.配置(Configuration) 例11.6.3 关于RS触发器的实例。 4.包集合(Package) 例11.6.4 关于包集合的实例。 5.库(Library) 例5 LIBRARY IEEE;
11
在行为描述阶段并不真正考虑实际的操作、算法、
用什么逻辑电路来实现,其目的是通过对系 统行为描述的仿真来发现设计中存在的问题, 检查该数学模型能否达到系统设计规格书的 要求。 2.RTL描述(寄存器传输描述或数据流描述)
系统只有采用RTL方式进行描述,才能导出系
统的逻辑表达式,才能进行逻辑综合,从 而得到具体的逻辑器件。
17
BEGIN
IF(clr=‘0’)THEN
i:=0; ELSE IF( clk’EVENT AND clk=‘1’)THEN IF (i=15)THEN i:=0; ELSE i:=i+1; END IF; END IF;
18
END IF; q<=CONV_STD_LOGIC_VECTOR(i,4);
3
五、子程序(Subprogram)
1.函数(Function) 例11.6.5 函数举例--返回两数中的较小数。 2.过程(Procedure)
例11.6.6 过程举例—向量转换成整数类型。
六、VHDL编程基础
1.VHDL中预定义的基本词法元素 2.数据对象和数据类型 3.预定义属性
4
4.运算符(Operator) 5.VHDL常用语句
END logic;
33
PACKAGE BODY logic IS FUNCTION Invert (input:three_level_logic) RETURN three_level_logic IS BEGIN CASE input IS WHEN „0‟ => RETURN „1‟; WHEN „1‟ => RETURN „0‟; WHEN „Z‟ => RETURN „Z‟; END CASE; END Invert; END logic;
10
二、VHDL的发展概况
1.IEEE1076-1987(VHDL-87) 2.IEEE1164-1993(VHDL-93) VHDL-93相对于VHDL-87没有什么大变化,主要是 增加了针对VHDL模型的新的VHDL命令和属性。
三、用VHDL设计硬件电路的过程
1.行为描述 :对整个系统的 数学模型进行描述。
[构造体说明]
BEGIN 构造体语句 END [构造体名]; (1)构造体名的命名:通常用behavior(行为), dataflow(数据流)、rtl(寄存器传输)或者
structural(结构)命名 。
26
(2)构造体说明:用于对构造体内部所使用的信号、
常数、数据类型和函数等进行定义。
例3 ARCHITECTURE behavior OF mux IS
不指定方向,无论哪一个方向都可连接, 只用在文档中。
注:OUT允许对应多个信号,而BUFFER只允许 对应一个信号。
22
③类型指定:在逻辑电路设计中,常用BIT和
BIT_VECTOR两种。
例2 用VHDL描述一个二选一数据选择器。
d0
&
1 &
≥1
q
d1
sel
二选一数据选择器的电原理图
23
ENTITY mux2 IS GENERIC (m:TIME:=1ns); PORT(d0,d1,sel:IN BIT; q:OUT BIT); END mux2; --实体。 ARCHITECTURE connect OF mux2 IS SIGNAL temp:BIT; BEGIN PROCESS (d0,d1,sel) VARIABLE temp1,temp2,temp3:BIT;
32
例11.6.4 关于包集合的实例。
PACKAGE logic IS
TYPE three_level_logic IS („0‟,‟1‟,‟Z‟);
CONSTANT Unknow_value:three_level_logic:=„0‟;
FUNCTION Invert (input: three_level_logic) RETURN three_level_logic ;
七、VHDL语言构造体的描述方式
1.行为描述方式
2.寄存器传输(RTL)描述方式(数据流描述方式) 例11 PROCESS (clk1,clk2)
例12 PROCESS (clk)
7
3.结构化描述方式 例13 用VHDL描述一个二选一数据选择器。
八、用VHDL设计电路
1.编码器和译码器 (1)3位二进制编码器 (2)8-3线优先编码器74148 (3)2-4线译码器 2. 数据选择器 3. 加法器
12
3.逻辑综合 利用逻辑综合工具,将RTL描述的程序转换成用
基本逻辑元件(宏单元)表示的文件(门级
网表、原理图)。即把布尔函数转换为门并
实现最小化。
13
规格设计
行为级描述 行为级仿真
RTL级描述
RTL级仿真 逻辑综合
门级仿真、定时检查
输出门级网表
用VHDL设计系统硬件的过程
14
四、VHDL的基本构件
END PROCESS; END ttl; --构造体。
19
1.实体(Entity) ENTITY 实体名 IS [类属参数说明] 端口说明 END [实体名]; (1)类属参数说明:用于指定参数。
(2)端口说明
PORT([SIGNAL]信号名{,信号名}:[模式] 类型指定;
[SIGNAL]信号名{,信号名}:[模式] 类型指定);
34
LIBRARY IEEE;--打开STD_LOGIC_1164包所在的库 USE IEEE.STD_LOGIC_1164.ALL;
--调用包中的所有项 USE WORK.logic.Unknow_value; --使用包中的Unknow_value项 USE WORK.logic.ALL; --使用包中的所用项
南京邮电大学
数字电路与系统
光电工程学院 电子电路教学中心
1
第六节 VHDL语言
一、硬件描述语言(HDL) 二、VHDL的发展概况 三、用VHDL设计硬件电路的过程 四、VHDL的基本构件
例1 用VHDL描述一个具有异步清零的4位计数器。
1.实体(Entity) 例2 用VHDL描述一个二选一数据选择器。
SIGNAL sel : BIT;
… …
27
BEGIN
END behavior; 因为信号是供内部连接用的,故没有也不需要方 向的说明。
(3)构造体语句:在构造体内的语句都是并发执行 的。 例4 ENTITY mux2 IS PORT(d0,d1,sel:IN BIT; q:OUT BIT); END mux2; ARCHITECTURE dataflow OF mux2 IS BEGIN
相关主题