|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
VHDL入门学习-程序组成
# y* {4 ~$ k7 ?5 _' I( [1. VHDL程序的组成 一个完整的VHDL程序是以下五部分组成的:
; m! c0 n* q4 Z2 S, V3 U5 `' c* i& k3 [6 \
2. 库(LIBRARY):比较好理解,调用系统已有的库,WORK库就是用户当前编辑文件所在的文件夹, IEEE库:由IEEE(美国电子电机工程师学会)制定的标准库 LPM库
$ Y- X0 n6 A" ~- h0 b; b* h
7 r/ x G$ j$ d+ S- ~library IEEE;
$ @0 R7 [# _- B+ Suse IEEE.STD_LOGIC_1164.ALL;" `0 G, ], a, b) Z o) C2 R% x
use IEEE.math_real.all;
4 V4 X, B- j& A" Nuse IEEE.std_logic_arith.all;
1 k- g3 F2 m$ l1 D4 D. {( ?3. 程序包(PACKAGE):声明在设计中将用到的常数、数据类型、元件及子程序( `+ ~' k) e% U. ?, F. e% B) y
, }' I; e$ Z7 f- ^5 o! K) p4 A) p4. 实体(ENTITY):声明本设计的接口引脚,输入输出引脚,写法一般是引脚名字:接口方向:标准逻辑
; R. s9 u# I2 V: Z1 J2 ^9 `9 n g, \* f- w( Z Y
复制代码
$ |7 R/ ~/ r( X- r1 K7 ]' kentity TempSensorCtl is
% r! @5 N3 h F Generic (CLOCKFREQ : natural := 100); -- input CLK frequency in MHz
9 r6 ~) B7 _3 p' d0 e, u1 ? Port (
8 c5 W0 `7 \2 F. f# t v TMP_SCL : inout STD_LOGIC;
" d4 F# r. E7 D5 L" n TMP_SDA : inout STD_LOGIC;
! x0 i" }* K6 w( ^. R-- TMP_INT : in STD_LOGIC; -- Interrupt line from the ADT7420, not used in this project9 }* p0 h- R/ w0 B, ]7 j5 Y
-- TMP_CT : in STD_LOGIC; -- Critical Temperature interrupt line from ADT7420, not used in this project
& e5 o" B3 s( C( U' \6 Y ' x2 H" i5 O- P6 G0 b
TEMP_O : out STD_LOGIC_VECTOR(12 downto 0); --12-bit two's complement temperature with sign bit9 B4 N6 ?* r) |9 s' M# }" h
RDY_O : out STD_LOGIC; --'1' when there is a valid temperature reading on TEMP_O7 ]) O5 V" }5 M( u- k% N
ERR_O : out STD_LOGIC; --'1' if communication error
- x4 `0 i) h. y2 h4 {8 |& i0 I
2 T1 |; g; \; L0 I' J/ s' { CLK_I : in STD_LOGIC;
0 Q2 d6 y4 v8 A( [; E SRST_I : in STD_LOGIC* n1 V* E h4 v0 s6 a
);, x ~$ W. \3 L" e- Q
4 B/ Z, c; A# X; o& E6 B8 L5 r
* i. A) [6 r+ D
P' ]1 P/ ]7 n! w0 o |
|