|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
VHDL学习; F2 e" ?- K. Q0 ]1 [
# }3 t$ a3 }, O9 G" VLIBRARY IEEE;
% W6 C# K3 u0 h& n% CUSE IEEE.STD_LOGIC_1164.ALL; --最基本 包含数据类型及函数
# F1 U) Z/ h* j8 h0 P SUSE IEEE.STD_LOGIC_UNSIGNED.ALL; --定义无符号的算术运算
$ g0 F! x: f; E- u5 b4 r( EUSE IEEE.STD_LOGIC_ARITH.ALL; --定义有,无符号的算术运算
2 \9 m& l- j5 e% }) A# a8 ]* n) l8 `; c8 J8 R
ENTITY CNT10 IS --说明类属,端口,实体声明及语句
3 O' I1 y1 g9 f$ G6 K ], ?3 n/ FPORT( CLK,RST,EN : IN STD_LOGIC; --端口类型IN,OUT,BUFFER,INOUT,LINGKAGE
* n' L' ~9 m% l" P' i7 P3 |* {0 B CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
$ y* H% U1 S( m. j1 O7 s COUT: OUT STD_LOGIC);--九值逻辑X,0,1,Z,W,L,H,-% ^1 U7 D8 A, T3 S2 |
END CNT10;, l9 T% @! T2 r; y% `
7 B, I5 B& C4 U9 Q [$ v! @
ARCHITECTURE BEHAV OF CNT10 IS --结构体说明
5 `* R4 n% [; B/ H/ F# c3 I* RSIGNAL CQ1:STD_LOGIC_VECTOR(3 DOWNTO 0); --定义语句(全局使用)) ?! e8 K9 H) b) w
BEGIN
" |' D* F" R8 @$ H1 {0 _0 t2 L+ y PROCESS(CLK,RST,EN)1 R2 K" s/ A7 p# s
--VARIABLE CQ1:STD_LOGIC_VECTOR(3 DOWNTO 0);--定义语句(仅此进程使用): F! F: K. k+ k! n. b9 S0 u
BEGIN
+ ~5 R$ p5 k) O IF RST='1' THEN --异步复位
; {/ t, |8 ^% V+ }+ S --CQ1:=(OTHERS=>'0');--; y4 ~: i5 w7 U4 _$ j M
CQ1<=(OTHERS=>'0');
5 H D; f, G2 @4 R ELSIF CLK'EVENT AND CLK='1' THEN
; R" P' K/ I! N7 x: S1 M IF EN='1' THEN --允许计数,同步使能
! m0 {3 d, Y9 T5 b2 [- r IF CQ1<15 THEN
9 G; O# j1 {& z/ A -- CQ1:=CQ1+1;--小于9计数,变量立即赋值无延时$ [% R! o, D9 O. f) L. u
CQ1<=CQ1+1;--信号‘传输线’有延时,仿真可见# A) O5 B' k! [8 W1 f
ELSE
' f! n t; g) v7 Y) }) e) w3 I+ D3 y --CQ1:=(OTHERS=>'0'); --大于9清零
. K/ h) H0 K/ n% D3 k6 f7 Z CQ1<=(OTHERS=>'0');
7 s# R, I" c8 o/ a7 X) B0 m END IF;
9 N0 d$ f2 m% H9 y END IF;
9 Y1 q$ ?2 Z; c# M- U" t END IF;" }# A2 ~. K0 N _7 e0 _& i
IF CQ1=12 THEN --IF,ELSE使用与C语言相同5 D+ D% l; O/ v# L( W8 Z( s4 `
COUT<='1';--进位
. a# m( S K& h( @# W0 a ELSE* J2 a1 y* B2 q& a; o: V8 I; c
COUT<='0';
3 [/ h! z; t0 s4 J. ]) i; }) J END IF;# O/ F0 c8 Y% E
CQ<=CQ1;
5 p: Q% H8 y2 l; A9 t! q8 A END PROCESS; --可省略进程名
4 J' J' X) k% ]4 h" S& N0 N4 CEND BEHAV; --可省略结构体名
0 E" c* |5 v2 t% J6 ^4 k5 L3 D1 a8 m* x--------------------- |
+ x& x9 A+ s% H* |: s" B6 N1 c: {( c& S2 X* {
0 T. Y3 j9 s# X8 d" G
! P% ^+ \8 z/ q! C. a, S
3 ^7 h/ T& H# y6 X |
|