VHDL 运算符及类型转换函数

本文详细介绍了VHDL中的数据类型,包括标准类型如integer、natural、positive、real、bit、bit_vector等,以及自定义类型如std_logic、std_logic_vector、signed和unsigned。此外,还讲解了运算符的用法,如赋值、逻辑、算术、比较、并置和移位运算。最后提到了类型转换函数在std_logic_1164库中的应用。

一、数据类型

   1. VHDL标准预先提供,无需添加任何库文件

      integer:32位整数类型,范围-2147483647 ~ 2147483646;

                       signal  tmp   : integer range 0 to 31;

      natural:integer 子类型,非负实数;

                     定义:subtype NATURAL is INTEGER range 0 to INTEGER'HIGH

      positive:integer 子类型,正实数;

                      定义:subtype POSITIVE is INTEGER range 1 to INTEGER'HIGH

      real:实数浮点类型,范围- 1.0E38 ~ + 1.0E38,不可综合,只在仿真平台使用;

      bit :逻辑值,只能取值0,1;vhdl2008版标准定义:type BIT is ('0','1');

                与std_logic的区别是std_logic有九种状态,如在判断上升沿的时候可以体现:

                    bit:1)if clk’event and clk = ‘1’ then…   2)if rising_edge(clk) then …

                    std_logic:1)if rising_edge(clk) then …

      bit_vector:位矢量,逻辑值的组合;

                        定义:type BIT_VECTOR is array (NATURAL range <>) of BIT;

      boolean:布尔型,取值true,false,定义:type BOOLEAN is (FALSE, TRUE);

      severity level:消息类型,不可综合;

                        定义:type SEVERITY_LEVEL is (NOTE, WARNING, ERROR, FAILURE);

      time:时间物理类型,不可综合,取值称为物理文字包括:1)整数或者浮点类型;

                                                                                            2)单位名称(fs,ps,ns,us,ms,sec,min,hr)

              fs是基单位,ps/ns/ms…为导出单位;取值如下:

              1 fs --> 注意中间的空格

              5 ps --> 5000fs

              4.3 ps --> 4300fs

              6.4 fs --> 6fs, fs是基单位,所以抹掉小数点

              范围-(2^31 - 1) ~ 2^31 – 1 fs

      character:字符,256个取值;

      string:字符串,区分大小写;

                定义:type STRING is array (POSITIVE range <>) of CHARACTER

2. 自定义类型

    1. std_logic_1164库定义,使用前必须声明此库的使用,如:                                       

        1)std_ulogic:未决断的标准逻辑位,共九种状态;                                                        

        2)std_logic:已决断的标准逻辑位,共九种状态;

                                定义:subtype std_logic is resolved std_ulogic;                                           

       3)std_logic_vector:标准逻辑位矢量;

                定义:type&

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值