|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
VHDL学习
9 p2 c% L$ c$ B7 f! g+ M+ X( H9 U, J- c. G2 j& C+ W) X- \
LIBRARY IEEE;
! s7 [6 s/ ]: @( E& r+ a% r. tUSE IEEE.STD_LOGIC_1164.ALL; --最基本 包含数据类型及函数
0 T; J! \" H/ I- ?: h3 pUSE IEEE.STD_LOGIC_UNSIGNED.ALL; --定义无符号的算术运算
: ?: Y' H" s8 S7 W3 M3 Z0 R k7 z, |8 Z" AUSE IEEE.STD_LOGIC_ARITH.ALL; --定义有,无符号的算术运算" t6 k7 N7 }' f, q0 y$ r
! l: S" b8 [$ @# {ENTITY CNT10 IS --说明类属,端口,实体声明及语句
4 l M% K' J' Z" o* uPORT( CLK,RST,EN : IN STD_LOGIC; --端口类型IN,OUT,BUFFER,INOUT,LINGKAGE
. s+ W9 S" w) R% a CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);2 B7 C) C Z% o: q
COUT: OUT STD_LOGIC);--九值逻辑X,0,1,Z,W,L,H,-% \( _: F6 x+ A! _6 Q
END CNT10;) U3 y' X9 Q( s0 l9 t/ x, o7 U. \
% e, @. W0 S+ B8 j c- w6 |4 p
ARCHITECTURE BEHAV OF CNT10 IS --结构体说明
* k' Y* F u: ?4 G6 U' |% L r& aSIGNAL CQ1:STD_LOGIC_VECTOR(3 DOWNTO 0); --定义语句(全局使用) G. O" d5 y e2 C6 o: t! s7 v8 o
BEGIN/ W" f7 n4 j i& U& _6 S" F
PROCESS(CLK,RST,EN)8 D( r% Y0 @* R! v/ W% N
--VARIABLE CQ1:STD_LOGIC_VECTOR(3 DOWNTO 0);--定义语句(仅此进程使用)
% r! a5 O' h5 }% g( N" ~ BEGIN# Q4 X3 R+ k* Y; z& ?
IF RST='1' THEN --异步复位: t" A8 ]7 e( h7 a
--CQ1:=(OTHERS=>'0');--
. f' B; H7 R6 M3 w CQ1<=(OTHERS=>'0');/ P$ u: ]6 Q( `; p
ELSIF CLK'EVENT AND CLK='1' THEN
1 |( s3 f& V% {" ~: v7 L IF EN='1' THEN --允许计数,同步使能) h( K1 Y+ ^/ ~6 U. O8 T2 K
IF CQ1<15 THEN
0 {0 B0 ~; V+ {' y# J9 I -- CQ1:=CQ1+1;--小于9计数,变量立即赋值无延时
8 C- x" C' ~5 P CQ1<=CQ1+1;--信号‘传输线’有延时,仿真可见& t, [# l* f0 l- X5 ~' \
ELSE
' D' M- C9 v" S# i+ N --CQ1:=(OTHERS=>'0'); --大于9清零; Y0 l; V; E1 W3 n/ v
CQ1<=(OTHERS=>'0');
" ~: A, [& ?% |1 ^' I3 C8 D+ w. r, b END IF;
$ S% e. d5 ~7 X% { END IF;
( W$ w1 M& q2 Q ` END IF;0 ] H6 U( F/ Y' p i
IF CQ1=12 THEN --IF,ELSE使用与C语言相同% m8 l9 u! ?& z/ X
COUT<='1';--进位
. W9 H! U) K+ ~3 K ELSE
5 o8 |* F2 L$ a6 J, ?3 V COUT<='0';" C6 G/ k& o+ p# t
END IF; N8 Q4 P3 d2 A
CQ<=CQ1;
2 M- ~9 w7 D8 l3 G" p0 j% E8 ~. x END PROCESS; --可省略进程名
5 k ~ O1 c! {4 j. fEND BEHAV; --可省略结构体名
2 v/ R, c) M; ^- s3 n--------------------- |
4 g# K' X$ d7 O2 f1 Q) ^5 I& K& N' y; \5 M# ~0 J2 ^
/ R, g4 \$ i0 F% \, k& v( y* {/ |) ?( R, _. e
" U7 B* z: A" i& z# C: t |
|