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 ISPORT ( d : in BIT;clk : in BIT;q : out BIT);END reg1;ARCHITECTURE reg1 OF reg1 ISSIGNAL a, b : BIT;BEGINPROCESS (clk)BEGINIF clk="1" AND clk’event THENa = d;b = a;q = b;END IF;END PROCESS;END reg1;
ENTITY reg1 ISPORT ( d : in BIT;clk : in BIT;q : out BIT);END reg1;ARCHITECTURE reg1 OF reg1 ISBEGINPROCESS (clk)VARIABLE a, b : BIT;BEGINIF clk="1" AND clk’event THENa := d;b := a;q = b;END IF;END PROCESS;END reg1;
您可能也感兴趣:
为您推荐
去年社保“成绩单”亮眼 社保基金监管再戴“紧箍咒”
“冰雪保险”讨论度升温 购买此类产品时需看清投保须知
我国重疾险发展迎来较大挑战,多因素致销售增长遇瓶颈
排行
最近更新
- VHDL语言应用实例指导
- 几种常用的幻灯机介绍
- 异步电动机的工作原理
- 多家房企纷纷布局冰雪产业 目前盈利能力却不如人意
- 吉林省中医药健康产业两项科技创新重大专项取得阶段性成果
- 国网新疆电科院:首次完成风机控制器半物理实时仿真试验
- 大学生自制火箭发射成功视频在抖音走红
- 甘肃省应对新冠肺炎特别专项科研攻关组荣获“全国科技系统抗...
- 青海140名专家“组团”为西宁乡村振兴注入科技力量
- 农技服务“轻骑兵”前往肇庆德庆,开展花生、柑橘技术指导
- 卫星新闻丨打通京津冀干线“断头路”
- 十三届全国人大五次会议将于3月5日上午开幕
- 爱看评论,爱比价格 这代年轻人购物有个性
- 国投罗钾助力沃柑种植,为大理再添一抹亮色
- 专利配方,新鲜品质!伊利金领冠上线“28天新鲜购”服务
- 油价破8!电动车主飘了:我跑一公里才一毛钱
- 不工作拿什么补仓?90后买基金血泪史:吃饭都找同事借钱
- 机构:房地产获并购融资近千亿,将助力加快风险出清
- 2月深圳一手住宅冷热分化较为严重 二手住宅成交再创新低
- 近两年央企大手笔投资湖北 带来更多人才、资金等要素
- 去年广东GDP同比增长8.0% 三大产业凸显供给端持续恢复
- 兆龙移民:2022年北美移民、教育、生活专场说明会
- 辽宁加快打造冰雪经济强省 开发多业态融合的“冰雪+”旅游
- 重庆中德产业园全面招商 两江新区将其打造为高端智能制造园区
- 上海发布养老床位统筹及轮候试点方案 保障老年人入住需求
- 又创新低!恒生科技指数早盘再跌4%,美团、京东等重挫7%,A股...
- 蚕蛹里面的黑心是什么
- 蚕蛹长大后变成什么样子
- 天长市民政局组织志愿者走进社区开展 “关爱听力健康,聆听...
- 花园路街道举办“美食每刻 健康快乐”活动