VHDL语言应用实例指导

发布者:幸福的人生最新更新时间:2012-02-11 关键字:VHDL语言  实例 手机看文章 扫描二维码
随时随地手机看文章
   

VHDL中的标识符可以是常数、变量、信号、端口、子程序或参数的名字。使用标识符要遵守如下法则:

·标识符由字母(A…Z;a…z)、数字和下划线字符组成。

·任何标识符必须以英文字母开头。

·末字符不能为下划线。

·不允许出现两个连续下划线。

·标识符中不区分大小写字母。

·VHDL定义的保留子或称关键字,不能用作标识符。

·VHDL中的注释由两个连续的短线(--)开始,直到行尾。

以下是非法标识符:

-Decoder        —起始不能为非英文字母

3DOP          —起始不能为数字

Large#number   —“#”不能成为标识符的构成符号

Data__bus       —不能有双下划线

Copper_         —最后字符不能为下划线

On            —关键字不能用作标识符。           

注:在AHDL语言中标识符要区分大小写,但在VHDL语言中不区分大小写。所以写程序时,一定要养成良好的书写习惯,应用关键字时用大写,自己定义的标识符用小写。

标识符表示的几种数据对象的详细说明如下:

1) 常数(Constant )

常数是一个固定的值,主要是为了使设计实体中的常数更容易阅读和修改。常数一被赋值就不能在改变。一般格式:

CONSTANT 常数名:数据类型:=表达式;

  例:CONSTANT Vcc: REAL: =5.0;

                  —设计实体的电源电压指定  

常数所赋得值应与定义的数据类型一致。

常量的使用范围取决于它被定义的位置。程序包中定义的常量具有最大的全局化特性,可以用在调用此程序包的所有设计实体中;设计实体中某一结构体中定义的常量只能用于此结构体;结构体中某一单元定义的常量,如一个进程中,这个常量只能用在这一进程中。

2) 变量(Variable)

变量是一个局部变量,它只能在进程语句、函数语句和进程语句结构中使用。用作局部数据存储。在仿真过程中。它不像信号那样,到了规定的仿真时间才进行赋值,变量的赋值是立即生效的。变量常用在实现某种算法的赋值语句中。

一般格式:

VARIABLE 变量名  数据类型   约束条件:=表达式;

例:VARIABLE x,y:INTEGER;  —定义x,y为整数变量

VARIABLE count:  INTEGER RANGE0 TO255:=10;  —定义计数变量范围

变量的适用范围仅限于定义了变量的进程或子程序中。若将变量用于进程之外,必须该值赋给一个相同的类型的信号,即进程之间传递数据靠的信号。

变量赋值语句的语法格式如下:

                     目标变量:=表达式;

变量赋值符号是“:=”。赋值语句右方的表达式必须是一个与目标变量有相同数据类型的数值。变量不能用于硬件连线和存储元件。

3) 信号(Signal)

信号是描述硬件系统的基本数据对象,它类似于连接线,它除了没有数据流动方向说明以外,其它性质与实体的端口(Port)概念一致。变量的值可以传递给信号,而信号的值不能传递给变量。信号通常在构造体、包集合和实体中说明。信号说明格式为:

SIGNAL 信号名: 数据类型;

信号初始值的设置不是必需的,而且初始值仅在VHDL的行为仿真中有效。

1. 变量

变量只能在进程、函数和过程中使用,一旦赋值立即生效。

例:VARIABLE  x, y: INTEGER;

   VARIABLE  count: INTEGER RANGE 0 TO 255:=10;

2. 信号

信号除了没有方向的概念以外几乎和端口概念一致。

例:SIGNAL sys_clk: BIT:=’0’;

   SIGNAL ground: BIT:=’0’

在程序中,信号值输入信号时采用代入符”<=”,而不是赋值符“:=”,同时信号可以附加延时。

信号传送语句:

   s1<=s2 AFTER 10ns

信号是一个全局量,可以用来进行进程之间的通信

3. 信号与变量的区别:

信号赋值可以有延迟时间,变量赋值无时间延迟;

信号除当前值外还有许多相关值,如历史信息等,变量只有当前值;

进程对信号敏感,对变量不敏感;

信号可以是多个进程的全局信号,但变量只在定义它之后的顺序域可见;

   信号可以看作硬件的一根连线,但变量无此对应关系。

例:ENTITY reg1 IS

PORT ( d : in BIT;

clk : in BIT;

q : out BIT);

END reg1;

ARCHITECTURE reg1 OF reg1 IS

SIGNAL a, b : BIT;

BEGIN

PROCESS (clk)

BEGIN

IF clk='1' AND clk’event  THEN

a <= d;

b <= a;

q <= b;

END IF;

END PROCESS;

END reg1;

ENTITY reg1 IS

PORT ( d : in BIT;

clk : in BIT;

q : out BIT);

END reg1;

ARCHITECTURE reg1 OF reg1 IS

BEGIN

PROCESS (clk)

VARIABLE  a, b : BIT;

BEGIN

IF clk='1' AND clk’event THEN

a := d;

b := a;

q <= b;

END IF;

END PROCESS;

END reg1;

关键字:VHDL语言  实例 引用地址:VHDL语言应用实例指导

上一篇:一种交织器和解交织器的FPGA电路实现
下一篇:采用赛灵思设计平台的ADI FMC模块视频演示

推荐阅读最新更新时间:2024-05-02 21:54

元器件检测的测量不确定度评定方法与实例
0 引言 测量不确定度是与测量结果相联系的参数,表征合理地赋予被测量之值的分散性。是综合考虑包括测量误差等各种影响因素后,对测量结果不能肯定的程度的评定。 对于检测实验室,开展测量不确定度的评定工作是提高检测结果质量、衡量测试过程中各种因素带来的影响的重要手段,也是适应检测实验室发展趋势所必须具备的能力,本文介绍了测量不确定度的评定方法,分析了在元器件检测中不确定度的来源以及据此进行的不确定度评定的实例。 1 元器件检测实验室对测量不确定度评定的要求 对于需要通过认可机构认可的实验室,认可依据都使用ISO/IEC17025:2005《检测和校准实验室能力通用要求》或以此为基础的准则。其中规定了检测性质的实验室: “5
[测试测量]
元器件检测的测量不确定度评定方法与<font color='red'>实例</font>
基于CPLD/FPGA的VHDL语言电路优化设计
  VHDL(Very High Speed Integrated Circuit Hardware Description Language)是IEEE工业标准硬件描述语言,是随着可编程逻辑器件(PLD)的发展而发展起来的。它是一种面向设计、多层次的硬件描述语言,是集行为描述、RTL描述、门级描述功能为一体的语言,并已成为描述、验证和设计数字系统中最重要的标准语言之一。由于VHDL在语法和风格上类似于高级编程语言,可读性好,描述能力强,设计方法灵活,可移植性强,因此它已成为广大EDA工程师的首选。目前,使用VHDL语言进行CPLD/FPGA设计开发,Altera和Lattice已经在开发软件方面提供了基于本公司芯片的强大开发工具
[嵌入式]
基于CPLD/FPGA的<font color='red'>VHDL语言</font>电路优化设计
基于STM32F103C8T6的PWM信号控制电机驱动器与点灯代码实例
STM32是一系列由STMicroelectronics生产的32位ARM微控制器。它们被广泛应用于各种应用领域,如工业控制、汽车电子、嵌入式系统、通讯、医疗设备等。STM32具有低功耗、高性能、高可靠性的特点,支持多种通信接口和众多的外设,可满足不同应用领域的需求。 STM32F103器件采用Cortex-M3内核,CPU最高速度达72 MHz。该产品系列具有16KB ~ 1MB Flash、多种控制外设、USB全速接口和CAN。 STM32F103C8T6是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,程序存储器容量是64KB,需要电压2V~3.6V,工作温度为-40°C ~ 85°C。STM
[单片机]
基于STM32F103C8T6的PWM信号控制电机驱动器与点灯代码<font color='red'>实例</font>
Proteus仿真51单片机C语言程序实例-开关控制报警器
简介:51单片机C语言程序实例-开关控制报警器(用K1开关控制报警器,程序控制P1.0输出两种不同频率的声音,模拟很逼真的报警效果)。
[单片机]
Proteus仿真51单片机C语言程序<font color='red'>实例</font>-开关控制报警器
CP2102的RS232转USB接口的应用设计实例
       目前仪器设备大都采用RS232接口与计算机通信,但随着计算机技术的发展,支持热插拔的USB标准接口将取代RS232接口,因此计算机将越来越少配置甚至不配置RS232接口。RS232接口与USB接口虽然都属于串行接几,但它们的数据格式、通信协议、信号电平以及机械连接方式则不同。这样计算机不能控制现有仪器设备,解决这一问题就得把现有的仪器设备的RS232接口转换成USB接口。实现这种转换有两种方案,一种方案是从硬件底层固件开始全面开发系统,该方案由于开发成本高、难度大,加之单片机的限制,因而很少采用;另一种方案是采用USB/RS232桥接器件如CP2102,CP2103进行设计,计算机通过USB接口虚拟一个RS232接口,
[嵌入式]
威纶触摸屏 MT510T双串口应用实例
   MT510TV4是威纶科技MT500系列中104寸的人机界面产品。它可以以各种生动的图形方式显示PLC,单片机,变频器,温控表等内部寄存器或继电器的数值和状态,并提供配方卡,报警信息保存等功能.可以通过快选窗口迅速进入所需的设置/监控画面。   MT510TV4双串口通讯方式 目前的MT500系列的驱动程序不断在充实中,新增了对多种新型号PLC的支持,另外除了支持常见的PLC通讯外,更新增对辅助设备(AUX)的支持,实现了人机界面同时与PLC及辅助设备通讯,辅助设备可以是变频器,温控器,单片机等。下面举例说明MT510T双串口通讯方式的如何实现。   MT510T对西门子S7200 PLC & 丹佛斯VLT280
[电源管理]
威纶触摸屏 MT510T双串口应用<font color='red'>实例</font>
分别利用查询和中断方式编程实现灯的闪烁控制实例
本站前面有个灯的闪烁 编程 实例,那是用延时程序做的,现在回想起来,这样做不很恰当,为什么呢?我们的主程序做了灯的闪烁,就不能再干其它的事了,难道单片机只能这样工作吗?当然不是,我们能用定时器来实现灯的闪烁的功能。 例1:查询方式 ORG 0000H AJMP START ORG 30H START: MOV P1,#0FFH ;关所 灯 MOV TMOD,#00000001B ;定时/计数器0工作于方式1 MOV TH0,#15H MOV TL0,#0A0H ;即数5536 SETB TR0 ;定时/计数器0开始运行 LOOP:JBC TF0,NEXT ;如果TF0等于1,则清TF0并转NEXT处 AJM
[单片机]
现场总线控制系统功能块实例
引言 现场总线是“安装在生产过程区域的现场设备/仪表与控制室内的自动控制装置/系统之间的一种串行、数字化、多点通信的数据总线”。现场总线是一种新型的自动化控制系统,是当今自动控制技术的发展方向。现场总线技术可被广泛应用于制造业、流程工业、楼宇、交通等自动化控制系统中。 在众多的现场总线技术当中,由现场总线基金会组织(Fieldbus Foundation,FF)开发的基金会现场总线在工程自动化领域得到了广泛的支持。基金会现场总线是一种是全分布式的自动化系统,主要功能是对工业生产过程进行测量、信号变送、控制等。FF于1996年颁布了低速总线H1标准。随着以太网技术的成熟,FF制定了FF HSE(High Speed E
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved