Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 5299|回復: 3
打印 上一主題 下一主題

[問題求助] VHDL程式計數器懇請高手幫助!

[複製鏈接]
1#
發表於 2008-7-14 20:44:10 | 顯示全部樓層

給你參考一下

隨便寫一寫沒檢查語法
# R/ X2 w1 Y9 Y前面的部分請自己加入宣告
: X5 i, B  o! }基本上這個code應該會動,如有小細節有問題自己改一下好了! M5 Q5 U4 W, e  k- }1 W
另外這個code假設開關沒有彈跳且電路有額外提供一個clock source
5 c$ T2 u( e$ g1 i3 t& f/ U' i. z% N5 w
constant dig_0 : std_logic_vector(7 downto 0) :="xxxxxxxx"; --請自己定義共陰的信號
5 O$ x1 T; @, E, P  X4 \8 ?8 K* Jconstant dig_1 : std_logic_vector(7 downto 0) :="xxxxxxxx"; --請自己定義共陰的信號5 Y+ t/ F' e) U) H* a4 S
constant dig_2 : std_logic_vector(7 downto 0) :="xxxxxxxx"; --請自己定義共陰的信號
; ?$ A: k% \( ~" }4 i" S8 p  ]constant dig_3 : std_logic_vector(7 downto 0) :="xxxxxxxx"; --請自己定義共陰的信號' N3 [3 E9 h3 v6 P# x
constant dig_4 : std_logic_vector(7 downto 0) :="xxxxxxxx"; --請自己定義共陰的信號4 X# m. x6 p7 {: a6 l; s1 k5 g, ?4 e
constant dig_5 : std_logic_vector(7 downto 0) :="xxxxxxxx"; --請自己定義共陰的信號" N+ g# V2 e$ v) \5 J4 C
constant dig_6 : std_logic_vector(7 downto 0) :="xxxxxxxx"; --請自己定義共陰的信號
: s/ d5 N/ y3 K1 y: L3 P+ {constant dig_7 : std_logic_vector(7 downto 0) :="xxxxxxxx"; --請自己定義共陰的信號
0 X! G( P3 N) I/ q; a% ?0 [constant dig_8 : std_logic_vector(7 downto 0) :="xxxxxxxx"; --請自己定義共陰的信號6 ?) B- W5 X6 X  O4 i% t
constant dig_9 : std_logic_vector(7 downto 0) :="xxxxxxxx"; --請自己定義共陰的信號" V8 _$ f- \5 u, x
signal cnt : std_logic_vector(3 downto 0);
, B/ ]  I; F% W( _* E0 ^signal sw1D, sw1Q : std_logic;
( V  P0 Z) M- w5 m( vsignal sw2D, sw2Q : std_logic;; {6 J0 e4 g/ S& F
begin
! o3 E$ `7 f! _! N, O
; N5 f/ e  ?: ?3 Sprocess(rst, clk, sw1)0 n' ?4 i/ b' h
begin
9 U0 R( \* V# A( r; A    if clk'event and clk='1' then
- ]/ k' s* K1 A        if rst='1' then2 L: F* M, x- G
            sw1D <= '0';* k5 {0 z. P, ?; Z$ ^' D
            sw1Q <= '0';7 J2 ^; k6 m3 I- E/ T* o
        else
; A3 L6 V' P* g5 s            sw1D <= sw1;9 t0 k1 f$ s$ T! v0 L8 b! \
            sw1Q <= not sw1D and sw1;
7 X- \; ?/ P# x' e6 b1 z- _        end if;
/ y' \7 m9 y; \. n3 m    end if;
% s; i' ?: j; n) F' xend process;+ e* l3 P* p6 h. i  C
- e7 k! F2 z; ~0 n9 C- j+ Y( w/ @+ }
process(rst, clk, sw2)
9 k5 u9 u2 e  j) hbegin
: a- F* M3 D( E$ l1 L' @% a/ Z, h- ~) H  |    if clk'event and clk='1' then8 N; k9 E+ _" n/ ~/ S/ V% ?
        if rst='1' then
; x8 O# j- p' ^. S6 t* S  l! N            sw2D <= '0';5 L8 M/ }& _! H1 ?1 `9 _
            sw2Q <= '0';
& |7 O0 H  t0 T& Z. \5 t2 r# ^        else
0 Q8 ?* J+ P6 Z9 ]# a+ @            sw2D <= sw2;
2 X3 V5 T; i8 i: L$ `' Q            sw2Q <= not sw2D and sw2;
" f( ^' L% W& |# B% P        end if;
4 e  ]7 y' t( d- a    end if;3 U! l2 U! O: c/ ?1 a3 z
end process;
. W  x  x3 T" \  y# {( g% s: T
7 b- S2 `. p' n4 S# n  Mprocess(rst, clk, sw1Q, sw2Q)* l0 u6 o6 M4 T: E) k3 y; w! T$ b
begin" ^/ d, O# X2 j6 w9 ~
    if clk'event and clk='1' then4 J9 h' r6 X( J& A
        if rst='1' then
& _" Q% g; f) k$ b            cnt <= "1001";             --initialize to 9 when reset& o& R1 H+ @0 b
        else4 `! i- _0 i/ ~$ D1 E
            if sw1Q='1' then- P9 m7 M, @, y# V$ |/ }% P6 k
                if cnt/="0000" then cnt <= cnt - '1';  --下數時下限為0& q( ?1 x1 }0 @6 }. ?- F
            elsif sw2Q='1' then
; m+ f+ S' M  P. D# K6 U. t) c6 Z                if cnt /="1001" then cnt <= cnt + '1';  --上數時上限為9
% [8 s) B9 w! f1 a            end if;) o) ]: ?+ s4 c& R6 G0 b% s
        end if;( R9 p2 T0 {2 U6 u1 i7 v
    end if;2 i) S& q/ \" n  S- \6 e
end process;- ?- s2 T/ [$ U4 \  w
0 S4 {1 M, ?' O
led <= '1' when cnt="1001" else '0';
  S3 T" ?% U6 V2 x5 Jwith cnt select led_dig <= " E/ c+ {4 F; z! }  n1 p9 F) m- N
    dig_0 when "0000",' G" E& p, r- v$ c  |
    dig_1 when "0001",
) ?; d% K$ u0 p6 V! b3 L    dig_2 when "0010",
' u6 v7 a2 p- U    dig_3 when "0011",
% ], R, @- ~6 m. g! \  D    dig_4 when "0100",
/ k, X: V5 B. |# J+ O0 G% n: e' ]9 Q  n    dig_5 when "0101",
) g/ q  ?9 e4 ^& k    dig_6 when "0110",! Q) k0 N5 z' t0 F6 h
    dig_7 when "0111",
4 d: q% X+ }- Q$ u    dig_8 when "1000",
9 J8 c2 V2 S: A: s) _1 q/ n    dig_9 when others;$ S9 |' I+ W, B$ |6 v2 O* @8 t3 F

, e5 j8 m/ u8 @9 Y% a! N# W2 ^end behavior;
2#
發表於 2008-7-14 20:47:38 | 顯示全部樓層
在我的電腦看那個4 C+ r" l$ ]  G7 L$ w% a) Q
<=0 t( Q4 a+ J' `, C, B
會變成 
4 M; f% j7 r: X; `4 I# }* a$ C; N&It;=0 n& x" ?# `( x4 ~; i
也,好怪,有人看到不一樣的嗎?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-5-17 08:31 PM , Processed in 0.108013 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表