找回密码
 注册
关于网站域名变更的通知
查看: 279|回复: 1
打印 上一主题 下一主题

VHDL数据类型与数据类型转换

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-5-29 07:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
VHDL数据类型与数据类型转换
% R- X5 w0 \+ V$ z0 |+ J

" U9 m0 u- S$ s; C- @/ iA.        标准数据类型
' ?2 f' O/ i" ]  l1 e6 I1)        整数类型(INTEGER)
' o7 I* ]9 S: F    VARIBLE A: INTEGER RANGE -128 TO 128
/ M0 \. B( D9 A% E) d    范围       -(231-1) ~ -(231-1)( m% E9 m# T) |
    2#11111111#           --binary, =255D
3 p- e. S. X) o% U    8#377#5 b) Q: j, @% `, a1 S9 X$ s
    16#FF#
, S, W9 j/ ^$ S$ h6 i* {2)        实数类型和浮点类型(REAL & FLOATING), {* r3 A0 C" u" j% e! n3 h1 }
    实数范围    -1.0E+38 ~ +1.0E+384 K/ v4 {  @. T" h$ o
    大多数EDA工具不支持浮点类型  {6 Z* I' |+ X- m
    16#0F#E+0
  l( s8 c) j/ e9 @) i) c    16#FF.FF#E-1
. L1 [$ [6 i; h3 G4 i9 X9 T/ P3)        位类型(BIT)
0 Q* k7 h  `% s5 A* j/ H( a4 k) N    TYPE BIT IS  (‘0’, ‘1’)
, Y2 ?: l( i. k" L% k4)        位矢量类型(BIT_VECTOR)1 m! _3 P6 \* ]" K
    B”1111-1100”         --长度为8, G2 t4 \7 |7 Y( a" a1 W
    X”FBC”                --长度为12, =B”1111-1011-1100”
* |. d( l. W! n( l: r4 l( x    O”371”                 --长度为9,  =B”011-111-001”0 g3 U# S6 K7 P! A3 n- v2 q# Y! m
5)        布尔类型(BOOLEAN)$ n1 @4 W1 e, L( B( g
6)        字符类型(CHARACTER)) a- H( y- y" w
    ‘A’, ‘a’, ‘B’,   大小写不敏感。
+ L3 I8 g8 b4 P3 x( l7)        字符串类型(TRING)0 ^) X2 m: d* n# d4 g9 m3 I2 g
    “VHDL”, “MULTI_SCREEN”
5 M5 F- C- `- R& _/ M& R- P3 [( H8)        物理类型(physical)
! e1 U8 ^, S! S+ _0 K! r--时间类型
: [" M" b  W8 @( [0 P. T--The physics unit time is a predefined type
+ k) E1 I- D+ t& M/ k. Y    TYPE time IS RANGE -1E18 TO 1E18+ b5 j' h0 O. H, H0 w
       UNITS
/ `! L, R9 z: ]& d$ l+ p/ h7 a, B; g: e            fs;                        -- Femto-second/ R8 m: a0 o( ]- v7 L4 m. B
            ps = 1000 fs;) ]8 z7 R, l: G; p' }! V
            ns = 1000 ps;9 [3 v" e/ f3 ]( b4 A, O
            us = 1000 ns;  Z3 s, A: _0 S* L' O: D* k
            ms = 1000 us;( j( _" V2 Z) h( x$ M
            sec = 1000ms;; H( \7 }# C0 w! [8 x
            min = 60 sec;, s3 b2 m2 B% w- \9 z
       END UNITS
4 e' @% z! ^4 d' I
6 b/ w6 t  K: q: i+ {+ t; ]0 e--another4 i  u6 n* B5 y% ?- [; g1 Z
--DISTANCE TYPE
/ Q0 A; m5 W* ^    TYPE distance IS RANGE 0 TO 1E16
3 u9 r+ o! b8 \$ \# T# e        UNITS
8 I- s7 Z  L" l; y            A;. `& n: l9 i1 y3 s- `
            nm = 10A;
6 f4 V- F* T* [5 s            um = 1000nm;/ R" }9 Z" b8 [" y% q
            mm = 1000um;, ~# `' k, g$ Z
            cm = 10mm;
( `' q# K2 o. A  m: j            m = 1000 mm;
: T( Y0 l4 x" _: s0 E: u! A            km = 1000m;
( [% |7 A- l" F+ _* b; N, ]        END UNITS;
5 }1 d( y" p+ @% ^9)        错误类型(NOTE,WARNING,ERROR,FAILURE)
$ F- H0 Q1 Y9 C, H  e10)     自然数、正整数类型(NATURAL & POSITIVE)
+ b' ]8 a7 |+ g5 jENTITY_compare IS
4 s: R+ S' f; b% W3 U; ^+ i   PORT (a, b: INTEGER RANGE 0 to 9:=0;
* J" g5 C. v1 W+ h. l( p         c: out Boolean);- j2 J1 ~, O/ ?% B  T
END compare;
# e- g( w! f$ OB.        自定义数据类型
  x0 p- ?4 ?' D8 O" R1)        枚举类型(ENUMERATED)! K4 p; \1 n( S2 o+ w, p
    TYPE PCI_BUSstate IS) d+ j; W. W5 [2 n( t* m7 L  r
    (Idle, busbusy, write, read, Back off);  --PCI总线状态机变量
$ E) w5 R' C. T2 |# k; o& ~! J0 o4 R% J3 Z% {( a  F! d+ x, m
    TYPE std_ulogic IS
; V& U& `5 q: @8 t. E2 y    (’U’, ‘X’, ‘1’, ‘0’, ‘Z’, ‘W’, ‘L’, ‘H’, ‘-‘);9 a4 T# B) B* m( I, ]

" v- z4 v' `3 U, M    TYPE boolean IS (false, true);! }- f1 D. L! Q; {- R
6 [) t& v( B* b6 J4 Q. W
    TYPE BIT IS (‘0’, ‘1’);" M3 W" {# K' u  N% q( n, ?
2)        整数类型(INTEGER)
( o, ]) m! G8 r; ~8 u/ a    TYPE digit IS INTEGER RANGE -128 TO 128$ m5 b+ p9 r( T: G9 l0 q/ O+ ~; Z
3)        实数类型和浮点类型(REAL & FLOATING)
  `; l: {0 j, `7 n4)        数组类型(ARRAY)
& Q5 ~1 L8 b  W/ S    TYPE MYARRAY IS ARRAY (INTEGER 0 TO 9) OF STD_LOGIC
: z3 I2 T" Q, u4 |: V5)        存取类型(ACCESS)
) B1 N1 M. u* _1 \) k5 w8 j' b8 k    TYPE line IS ACCESS string;       --Line是指向字符串的指针
3 y( C" b+ Q1 E5 I* |6)        文件类型(FILES)+ Z3 ^6 }. B5 P  v
    TYPE text IS FILE OF string;8 B6 e' K! U* x; F$ M  F' _
    TYPE input-type IS FILE OF character;1 w, Z) l' V' w( d0 l( l  j
7)        记录类型(RECODE); Y/ {2 O/ p& O
    --RECORD适于描写总线,通讯协议+ C3 r9 p  L/ ?* M0 w8 I- P
    TYPE PCI_BUS IS RECORD
2 I! W1 L% [1 m# K4 D! d$ {        ADDR: STD_LOCIG_VECTOR(31 DOWNTO 0);, }  T" m- @" J2 Q6 H/ z3 ?( I2 G  ?
        DATA: STD_LOGIC_VECTOR(31 DOWNTO 0);
# T7 o  ]0 ~* z) I' b; J4 C& r    END RECORD;# E/ N9 {4 U3 ^# L
    SEGINAL DECODE1, DECODE2: PCI_BUS;
( `8 |/ ]# [' z; M; A8 O" [    PCI_DEVICE1 <= DECODE1.ADDR;
" d: C; C& M# b$ k( @! _    PCI_DEVICE1RAM <= DECODE1.DATA;/ p  h* B8 Y- ~+ T( h) ?' @
8)        时间类型(TIME)
5 Y) O; N( ?1 q2 [类型转换/ @# J$ C6 l' o. s  O- p% g. ?
A.        类型标记法
/ Y# H* r0 u/ R9 M- I$ SVariable I: integer;% `( ?- V4 t; J9 W) k6 E8 ]
Variable R: real;
+ I, j# l7 `/ k4 fI: = integer(r);
& Z1 ]1 z# i" L" n& \/ dR:= real(i);
* N5 M/ @' O8 [2 g其他还有 NUMERIC_BIT中SIGNED、UNSIGNED 同 BIT_VECTOR间的转换。
3 ^" _& n% l& s9 T$ |UNMERIC_STD 中 SIGNED、UNSIGNED 同 STD_LOGIC_VECTOR 间的转换。
1 R' v% X$ `/ v( \; |8 M  w6 I% wB.        函数转换法" Q% V4 `' q0 e' k1 n$ _
Std_logic_arith程序包中:
- n3 M/ Y, [* i# M       COMV_STD_LOGIC_VECTOR(A,位长); --interger, signed, unsigned -> std_logic_vector5 s8 C& H6 b! m( |7 o
       CONV-INTERGER(A);                                     --signed, unsigned -> std_logic_vector
, R( P) V7 l) `* C' v       CONV-INTERGER(A);                                     --signed, unsigned -> integer
0 g0 X4 ?0 f8 B# yStd_logic_unsigned程序包中:, F6 z1 N- O; J2 P* Z
       CONV-INTEGER(A);                                       --STD_LOGIC_VECTOR -> INTEGER
- [8 A; o$ g9 tC.        常数实现
2 V5 ]+ S; n& n- o8 R! Y' @CONTSTANT TYPECONV-CON: typeconv_type := (‘0’|’L’ => ‘0’, ‘1’|’H’=>’1’);
( q0 u& ^8 n. k% t' JSIGNAL B: BIT;
, Q( J! L+ o; W1 I1 M7 rSIGNAL S: STD_LOGIC;/ Q, P6 _8 M4 r, E$ i' t
BIGIN
  A  E  t, Q" k- d3 F% @1 t       B <= TYPECONV-CON(S);* u' R" y1 A7 h" e
END;/ N: r1 B  O! [0 f, G* B
, R5 ^; O. y# p2 B4 B3 q/ {+ e
数据类型的限定+ R$ E# ^0 ~7 {/ c9 {: B6 }1 A5 C
       A<= std_logic_vector(“01101001”);            --数据前加上类型名* w- @% w: I9 v) o
       SUBTYPE std3bit is STD_LOGIC_VECTOR (0 to 2);
$ U, g7 @; |/ z/ k; W0 c0 [4 ?6 |' W2 x! D

1 K7 I: c/ E, n7 r5 T' G! z2 c& ~: Q' c& X; e) _/ j& b

该用户从未签到

2#
发表于 2019-5-29 18:02 | 只看该作者
最近正在找这方面的资料 谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-19 08:54 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表