数据类型和运算操作符(VHDL)PPT课件

上传人:y****3 文档编号:25312368 上传时间:2021-07-22 格式:PPT 页数:34 大小:169.50KB
收藏 版权申诉 举报 下载
数据类型和运算操作符(VHDL)PPT课件_第1页
第1页 / 共34页
数据类型和运算操作符(VHDL)PPT课件_第2页
第2页 / 共34页
数据类型和运算操作符(VHDL)PPT课件_第3页
第3页 / 共34页
资源描述:

《数据类型和运算操作符(VHDL)PPT课件》由会员分享,可在线阅读,更多相关《数据类型和运算操作符(VHDL)PPT课件(34页珍藏版)》请在装配图网上搜索。

1、VHDL文字书写规那么数字型的文字书写规那么;字符型的文字书写规那么;标识符的命名规那么;数组中下标的选取规那么。 VHDL的客体对象1、Constant 常量2、Variable变量3、Signal信号 对象的说明常数(constant):是一个固定的值,常数说明就是对某一常数名赋予一个固定的值,常量只能在说明时被赋值。语法形式:constant 常数名:数据类型:=表达式;例: constant VCC :real := 5.0;变量(variable):只能在process、function和procedure结构中使用,是一个局部量。语法形式:variable 变量名:数据类型 约束条

2、件:=表达式;例:variable x,y : integer;variable count : integer range 0 to 255 := 10;信号(signal):电路内部硬件连接的抽象。信号可以在architecture、package、entitiy中声明。是一个全局量。语法形式:signal 信号名:数据类型 约束条件:=表达式;例:signal clk :std_logic := 1; 信号与端口的比较 信号与端口的比较 信号和变量的区别 (1) 信号赋值是有一定延迟的 ,在进程中,信号的代入是在 进程结束或者WAIT语句时进行。 而变量赋值没有延迟。(2) 对于进程语句

3、来说,进程只对信号敏感 ,不对变量敏感。(3) 信号在某一时刻除了具有当前值外 ,还具有一定的历史 信息 ( 保存在预定义属性中 ) ,可以形成波形 。而变量 在某一时刻仅包含一个值。(4) 信号可以是多个进程的全局信号 ,实现在多个进程之间 传递信息; 而变量只在定义它的过程、函数和进程中可见。(5) 信号是硬件中连线的抽象描述,其功能是保存变化的数 据值和连接子元件。变量在硬件中没有类似的对应关系, 主要应用于高层次的建模中。(6) 信号赋值和变量赋值的格式如下所示 : 信号 =表达式 ; 变量 :=表达式 ; 信号和变量的区别举例ARCHITECTURE rtl OF sig ISsig

4、nal xa,xb,c : STD_LOGIC;BEGIN PROCESS(xa,xb,c) BEGINif (c=1) then xa = xb; xb = xa;end if END PROCESS; PROCESS variable a,b : STD_LOGIC; BEGIN . a := b; b := a; c =a; END PROCESS;END rtl ; VHDL数据类型预定义数据类型VHDL预定义数据类型IEEE预定义数据类型其他预定义数据类型自定义数据类型枚举类型整数/实数类型数组类型记录类型 根本数据类型简表 VHDL的数据类型限定任何一个信号和变量都必须落入区间约束

5、中所说明的值域有效范围内。举例: a:out std_logic_vector(7 downto 0);b:in integer range 1 to 10;signal abc:std_logic_vector(0 to 2); variable aaa:real ; 预定义数据类型1VHDL预定义数据类型1,布尔数据类型2,BIT数据类型(BIT_VECTOR数据类型)3,字符数据类型字符串数据类型4,整数数据类型自然数和正整数数据类型5,实数数据类型6,时间数据类型 预定义数据类型2IEEE预定义数据类型1,STD_LOGIC数据类型2,STD_LOGIC_VECTOR数据类型 bit与

6、std_logic比较 bit: 0 ,逻辑01 逻辑1std_logic:U,未初始化 X,未定 0,01, 1Z, 高阻W, 弱未定L, 弱0H, 弱1- 忽略 预定义数据类型3符号数据类型1,无符号数据类型2,有符号数据类型3,小整型数据类型 VHDL的自定义数据类型语法介绍语法形式:type 类型名is 类型定义; 举例type index is integer range 15 downto 0;type voltage is real range 0.0 to 10.0;type week is (sun, mon, tue, wed,thu, fri, sat);Variable

7、 abc:index:=6;Variable day:week:=tue; VHDL的自定义语法举例物理量type 数据类型名 is 范围 units 根本单位; 单位; end unitstype time is range 1e-18 to 1e18 units fs; ps=1000fs; ns=1000ps;. sec=1000ms; end units type vlotage is range 0 to 1000000 units uV; mV=1000uV; V=1000mV;end units VHDL的自定义子数据类型语法介绍当一个对象可能取值的值域是某个类型说明定义的值域的

8、子集,那么可以使用子类型定义。语法形式: subtype 子类型名is 数据类型名范围; 举例 subtype iobus is std_logic_vector(7 downto 0);说明子类型和父类型完全兼容为了增加可重用性,只要有可能定义为子类型时,就不要将其定义为新类型。 VHDL的自定义数据类型(枚举)枚举:用文字表示一组二进制数据语法形式: TYPE 类型名 IS 文字表举例 type week is(Sun,Mon,Tue);调用 signal wd : week; wd = Mon; VHDL的自定义数据类型(整数/实数)整数/实数:限定范围的整数/实数。语法形式:TYPE

9、类型名 IS 限定范围描述 VHDL的自定义数据类型(数组)数组:用于定义同一类型值的集合语法形式:TYPE 类型名 IS ARRAY 范围 OF 原数据类型名举例type word is array ( 31 downto 0 ) of bit;调用signal abc:word; data_bit = abc(2); VHDL的自定义数据类型(记录)记录:用于定义不同类型值的集合语法形式:TYPE 类型名 IS RECORD 元素名:数据类型名 元素名:数据类型名 END RECORD举例type bank is record addr0:std_logic_vector(7 downto

10、 0); r0:integer;end record VHDL的自定义数据类型(记录)调用单个元素赋值 signal abc:bank; signal ccc:std_logic_vector(7 downto 0); signal ddd:integer; ccc=abc.addr0; abc.r0=ddd; VHDL的自定义数据类型(记录)调用整体赋值 signal abc:bank; signal ccc:std_logic_vector(7 downto 0); signal ddd:integer; abc = (ccc,ddd); 位置关联 或者 abc ddd, addr0=cc

11、c); 名字关联 数据类型转换 VHDL是强类型语言,每一个对象只能有一种类型,并且只能取该类型的值。如果值类型和对象类型不一致,需要使用显式类型转换。 VHDL中没有隐式类型转换。为了实现正确的带入操作,必须将要带入的数据进行类型转换。 数据类型转换方法类型标记法用类型名称实现关系密切的标量类型之间的转换。例如:variable x:integer; variable y:real;x:=(integer)y; y:=(real)x;类型函数法变换函数通常由VHDL语言的包集合提供。 数据类型转换函数说明 数据类型转换函数说明举例Entity add5 isport(num:in std_l

12、ogic_vector(2 downto 0); );End add5;architecture rtl of add5 issignal in_num:integer range 0 to 5;beginin_num = conv_integer(num); .End rtl; VHDL的运算操作符算术运算符关系运算符逻辑运算符符号运算符被操作符所操作的对象是操作数,操作数的类型应该和操作符所要求的类型相一致。运算操作符有优先级。 VHDL的运算操作符优先级 并置例题Signal b:bit_vector (0 to 3);Signal tmp:bit_vector(0 to 3);Sign

13、al out:bit_vector( 0 to 7);Signal ee,aa:bit;Tmp = b and (ee Tmp = (ee,ee,ee,aa);Out = tmp VHDL的重载操作符为了方便各种不同数据类型间的运算,VHDL允许用户对原有的根本操作符重新定义,赋予新的含义和功能,从而建立一种新的操作符,这就是重载操作符。定义这种操作符的函数称为重载函数。 VHDL的重载操作函数设计举例.Package exp isFunction max(a,b:std_logic_vector) return std_logic_vector;Function max(a,b:bit_ve

14、ctor) return bit_vector;Function max(a,b:integer) return integer;End; Package body exp isEnd; VHDL的重载操作函数使用举例Library ieee;Entity exptt isPort(a1,b1:in std_logic_vector(0 to 3);a2,b2:in bit_vector(0 to 3);a3,b3:in integer range 0 to 15;c1:out std_logic_vector(0 to 3);c2:out bit_vector(0 to 3);c3:out integer range 0 to 15);End; Architecture bhv of exptt isBegin c1 = max(a1,b1); c2 = max(a2,b2); c3 = max(a3,b3);End;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!