|
LIBRARY ieee; . t2 x, h) K5 [0 _- U- l
USE ieee.std_logic_1164.all;
1 w5 g% E( z5 S7 eUSE ieee.std_logic_unsigned.all;% g, K/ T' D, K- _
ENTITY counter_backwards60_seg2 IS
% s5 b1 j7 V$ ^6 N) H PORT(Clk : IN STD_LOGIC; 2 \7 g( Q5 F! o3 U9 e) F
Q0,Q1 : OUT STD_LOGIC_VECTOR(3 downto 0)) ;
+ t& u8 \+ t; q9 ?4 R) JEND counter_backwards60_seg2;; y; \9 ?* x, H/ J, J% b
ARCHITECTURE arc OF counter_backwards60_seg2 IS* A2 {! Y6 |9 P! B$ W+ Q
BEGIN
) [6 z5 A3 W g6 s* f- E9 ^ PROCESS (Clk)& o6 `/ u" J7 {9 \. U' i. r
VARIABLE imper0 :STD_LOGIC_VECTOR(3 downto 0);
U9 L* g6 _/ m% J VARIABLE imper1 :STD_LOGIC_VECTOR(3 downto 0); 4 G3 y4 U4 e1 O, W9 g
BEGIN 4 o* T; v2 C" ?7 t# P' B5 m Q" k7 b
1 E: @+ A% M0 N IF (Clk'event AND Clk='1') THEN $ v* V( d/ U F
. S E4 ^, q, D; c. d+ V0 ?; K
IF imper0 >"0000" THEN imper0 := imper0-1;7 y S' @: X8 U: I: |, u/ C: ~
ELSE imper0:="1001";
! p0 v/ f6 N6 {5 p: {4 \2 C IF imper1 >"0000" THEN imper1 := imper1-1;
$ H* a% q" h( r/ _+ o ELSE imper1:="0101"; , z9 S1 R$ T/ a( D# v- b
END IF;
! u- ?* }# i% E- C; W, N d% L END IF; + r. h+ ]) U$ {
END IF; : ]' c c. ~1 T; N B" q6 n m
Q0 <= imper0; Q1 <= imper1; ( c5 a2 i( Y6 V$ ^ z
END PROCESS ;5 g0 B: @ C9 A" v7 V$ f
END arc;
X" k8 e* K& e `以上我精簡了一些 也能跑模擬圖, |0 d0 j* w( @& R1 y! Q- V
但現在重點是我該怎寫60→59→58...
( x8 X0 {3 m5 @7 s9 S; X. Q初始值60要怎寫...
. V$ @9 f) F" O是要多2個input 然後給他一開始的值?
5 t- a& i6 U% Q# [9 s Z/ ~但要怎寫啊@@...6 l0 S* m3 T. H, l! s1 ~( k
|
|