VHDL高级使用技巧(2)

2019-03-15 13:18

5VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。

2.4VHDL电路设计

2.4.1设计电路优点

1.系统可大量采用芯片 2.采用系统前期仿真

3.降低了硬件电路设计难度.

2.4.2 设计电路方法

VHDL语言是一种可以描述硬件电路的功能,信号连接关系和定时关系的语言。利用硬件描述语言编程来表示逻辑器件与系统硬件的功能和行为,是该设计方法的一个重要特征。

采用自上而下(Top Down)的设计方法,就是从系统的总体要求出发,自上而下地逐步将设计内容细化,最后完成系统硬件的总体设计。

2.4.3 设计电路层次

第一层次是行为描述。实质上就是对整个系统的数学模型的描述(抽象程度高)。

第二层次是RTL方式描述,又称寄存器传输描述(数据流描述),以实现逻辑综合。

第三层次是逻辑综合,就是利用逻辑综合工具,将RTL方式描述的程序转换成用基本逻辑元件表示的文件(门级网络表)。在门电路级上再进行仿真,并检查定时关系。

2.4.4 完成硬件设计后的选择

1.由自动布线程序将网络表转换成相应的ASIC芯片制造工艺,作出ASIC芯片。

2.将网络表转换成FPGA编程代码,利用FPGA器件完成硬件电路设计。

2.4.5设计电路流程

规格设计 行为级描述 行为级仿真 RTL级描述

RTL级仿真 逻辑综合优化 门级仿真 定时检查 输出门级网表

2.5 VHDL与C语言的区别

VHDL,是硬件描述性语言。C语言,是软件编程语言。

从语言的基本语法方面来看,两种语言,有很多共同点。什么变量、

顺序、循环等语法方面都很多相同的地方。但是,如果你用C语言开发的思想来考虑VHDL语言的开发,就会报很多错。

VHDL的开发,不单单是软件的开发,它其实是硬件电路图的开发。

只不过它的实现方式是用软件,而不是硬件实物。在用VHDL语言开发的时候,脑子里要有一张电路图。而在一个process里面,只能有一个rising_edge。在多个process的通信中,同一个signal,不能同时做多个process里面的输出信号输入信号。(如果把process的处理想像成电路接线,你就会发现为什么会这样了。)

第三章 VHDL结构分析

3.1 VHDL语言设计的基本单元及其构成

一个完整的VHDL语言程序通常包含实体、构造体、配置、包集合和库。 实体 用于描述所设计的系统的外部接口信号;

构造体 用于描述系统内部的结构和行为;

包集合 存放各设计模块都能共享的数据类型、常数和子程序库; 配置 用于从库中选取所需单元来组成系统设计的不同版本; 库 存放已经编译的实体、构造体、包集合和配置。

3.1.1 实体

规定此实体输入与输出的数目与类型。 1.结构:

entity 实体名 is

[generic(类属参数说明)]; [port(端口说明)];

end 实体名; 2.类属参数说明:

generic (

常数名:数据类型 :=数值); 在端口说明前,用于指定参数。 3.端口说明:

在entity语句的实体说明部分,常用port语句描述实体对外界连接的端口(数目、方向和数据类型)。

port (

端口名:端口方向 端口数据类型; .

. .

端口名:端口方向 端口数据类型; );

4.端口方向:

in (输入),只能读,用于:时钟输入、控制输入(装入、复位、使能)、单向数据输入;

out (输出),只能被赋值,用于不能反馈的输出;

inout(输入输出) ,既可读又可被赋值,被读的值是端口输入值而不是被赋值,作为双向端口。 buffer(缓冲),类似于输出,但可以读,读的值是被赋值,用做内部反馈用,不能作为双向端口使用。

3.1.2 构造体

构造体定义实体功能的一种实现。 1.构造体的结构:

architecture 构造体名 of 实体名 is {块说明项} begin

{并发语句} end 构造体名;

块说明项(或定义语句),位于architecture 和begin之间,对构造体内部的使用信号、常数、数据类型和函数进行说明,包括:

1.使用语句 2.子程序说明 3.子程序体 4.类型说明 5.子类型说明 6.常数说明 7.信号说明 8.元件说明

并行语句处于begin 与end之间,描述构造体的行为与连接关系。 2.构造体的描述方法:

行为描述(按算法的路径来描述);

数据流描述或RTL描述(采用寄存器传输描述); 结构化描述(采用例化元件) 例化(instantiation ):在高层次的设计中调用低层次的实体作为元

件的过程。

3.1.3 包集合

包集合用于封装属于多个设计单元分享的公共信息。

包集合由包说明(说明数据类型、子程序和常量等)和包体(它

含有子程序体与现有的延时常数)所组成。子程序由执行公共操作的过程和函数组成。包集合是分享属于实体数据的一种机制,把子程序、数据类型和元件说明看成建立设计的工具,则包集合可看成工具箱。 包集合的结构:

package 包集合名 is [包集合说明语句]; end 包集合名;

package body 包集合名 is [包集合体说明语句]; end 包集合名;

注:包集合体为可选项。

3.1.4 配置

描述层与层之间的连接关系以及实体与构造体之间的连接关系。在仿真时利用配置选择不同的构造体。

格式:

CONFIGURATION 配置名 OF 实体名 IS

FOR 构造体名 END FOR;

END 配置名;

3.1.5 库

库(Library)是经编译后的数据的集合,库说明总是放在设计单元的最前面。 1.库的种类: 1.IEEE 库

包含:STD_LOGIC_1164 STD_LOGIC_ARITH STD_LOGIC_UNSIGNED 2.STD库

包含:STANDARD包集合 TEXTIO 包集合 TEXTIO 包集合使用例:

LIBRARY STD;

USE STD.TEXTIO. ALL; 3.ASIC矢量库

各公司提供的ASIC称逻辑门库 4.WORK 库

为现行作业库,存放设计者的VHDL语言程序 5.用户定义的库

用户为自身设计需要所开发的共用包集合和实体。 2.库的使用

除WORK、STD库外,首先要说明。格式: library [库名];

use [库名.包名.项目名]; 例:

library ieee;

use ieee.std_logic_1164.all; 3.库说明的作用范围:

从实体开始到其所属构造体、配置为止

3.2 VHDL语言的数据类型与运算操作符 3.2.1 VHDL语言的对象

VHDL语言中可以赋值的对象有3种:信号(Signal)、变量(Variable)、常数(Constant)。在数字电路设计中,这3种对象通常都具有一定的物理意义。例如,信号对应地代表电路设计中的某一条硬件连线;常数对应地代表数字电路中的电源和地等。当然,变量对应关系不太直接,通常只代表暂存某些值的载体。3类对象的含义和说明场合如表2-1所示。

表2-1 VHDL语言3种对象的含义和说明场合

对象类别 信 号 变 量 常 数

含 义 信号说明全局量 变量说明局部量 常数说明全局量 说 明 场 合 Architecture, package, entity Process, function, procedure 上面两种场合下,均可存在 3.2.2VHDL语言的数据类型

1.数据类型的种类

在VHDL语言中,信号、变量、常数都是需要指定数据类型的,VHDL提供的数据类型可归纳如下:

整数 实数 标量类型 枚举 物理 复合类型 数组 数据类型 记录 子类型 文件类型 在上述数据类型中,有标准的,也有用户自己定义的。当用户自己定义时,其具体的格寻址类型 式如下:

TYPE 数据类型名 数据类型的定义; 下面对常用的几种数据类型作一些说明。


VHDL高级使用技巧(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:电力电子装置课程设计AC-DC-DC电源汇总

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: