Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 用verilog程式控制LED亮暗

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題9 A3 l: w% A7 q$ U  l' l
如果我有二個LED燈,1表示亮,0表示暗
' p9 N/ ~: ^* r# [' z( @樣本如下表,如果我想要控制它每一個樣本LED亮二秒$ j4 H" h3 X% N9 y7 q
並依照此樣本往下依序亮
+ }; T( H3 \8 S1~2秒 LED1亮,LED2暗
: E* |" E& u2 k9 A3~4秒 LED1亮,LED2亮
  T% K& M: _1 i- t8 V0 g) j5~6秒 LED1暗,LED2亮& B* p7 Y  C3 W! a( H' v) G. S
7~8秒 LED1亮,LED2暗
) ?. h' l; k7 q5 ULED1 LED2
+ H& w% D4 L0 x2 g% O 1  0
8 H# f" H1 I+ S4 G 1  1, k  Z8 q) E0 p; a' z: J2 V$ S
 0  1
6 h) S, m; t7 M' `+ U4 e+ v5 t 1  0
  G# z5 r# ~  ?( O5 E且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)$ G& K" T% M( V" Y1 J* d
如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行8 u; g$ |0 o& Z9 l
用verilog程示要怎麼寫呢?( X- x5 b  R" y5 z% {
有高手可以教我嗎?
4 l7 p9 }2 I: m感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
8#
發表於 2012-3-14 16:02:27 | 只看該作者
其實最簡單的方法就是寫個counter,寫個判斷式來控制哪個LED要亮即可。
7#
發表於 2012-3-13 23:04:23 | 只看該作者
verilog lejie yidian ....yihou keyi xuexue
6#
發表於 2011-12-8 09:19:28 | 只看該作者
嗯!不錯的建議!可以好好參考!
5#
發表於 2008-7-6 15:52:24 | 只看該作者
頻率快慢可以控制明亮,你可以寫幾組除頻器,來切換~~
4#
發表於 2008-7-3 15:43:32 | 只看該作者

我也是新手 大家一起努力

Dear Sir ,: ?+ z, A0 M5 Y
我用FSM嘗試,simulation也成功     4 U0 p! o/ f% _& P/ |, j
參考看看吧
4 N$ v3 Q2 f$ ~
2 W: [; _/ j: n" Nmodule LED_Ctrl(clk, rst_n, sw, LED);
: Z) `( \$ O+ o6 n    input clk;
  Y  T7 k2 \/ s& m4 F    input rst_n;- K& j+ a  z. C7 H; e# D
    input [1:0] sw;0 v2 X2 a! n+ i; ]5 j
    output [1:0] LED;% ^( z: D, t9 N# _
         
  O4 E! O" Y- x' m  u( F8 k& A         reg [1:0] LED ;4 L& @, ]& @; J
         reg [1:0] CS ;8 H% Q+ Z3 D9 a& D* T* d
         reg [1:0] NS ;; K6 K' Z8 Q3 ]- F
         7 P* K' Z* E; D1 m" @9 x
////////// STATE //////////////% u% t' o/ q9 Y) U
         parameter RESET=0 ;; ~9 F2 z- Y: {
         parameter S1=1 ;
4 a6 |' }6 D8 K8 Y         parameter S2=2 ;) d9 c* m9 J! ?4 K$ G: G+ P; k5 ^) v
         parameter S3=3 ;. \& ^: E* D9 c" M/ ]/ Y
         - j3 y. @; h3 A1 Q+ |9 s
         
' G& Q9 x, k" d# l# f9 k( ]         
) E0 f) h( c) X. b! X# L- S( `% g         
; B* S( a; m  ~////////////  FSM  //////////
0 f6 R3 H" z; k) G1 g; K( E; ?+ R7 A4 f) f* W6 |
always@(posedge clk or negedge rst_n)
$ _, t& w. h, f' W& R. s! c* \$ cbegin
) [& S5 W7 ?8 A2 ^9 g# i# ?       if(rst_n==1'b0)
; }" Z: a- \  `( Q/ Z           CS=RESET ;6 r+ n. ~' [. w- w& t2 v" F
       else  C- U5 }- Z. J/ }0 @. Z' M
            CS=NS ;* [! p2 s6 K* a5 P) l% l/ o
end & U; h+ n8 _2 I2 b. }3 t2 X$ k
               
" `( {* _- {- }& F) }% g                # o/ n8 w/ C: E' U9 w

: ^; i2 g* w+ i- A! d1 c# a5 T1 [    always@(CS or sw)
- y1 Q" E/ M8 n      begin
+ p) ~' K% R  y; y" n& l) S            case(CS)& q, N2 e% D  Q2 f. Y% g
             RESET :  begin NS=S1 ; LED=2'b00 ; end ; v2 C  p/ l9 ~. j! d' Z$ p. ^9 d' b
                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  
! V1 O; ~/ v8 S, ?" d# o* T                   if(sw==2'b10)
' r( a7 H* v3 y5 b                       LED=2'b00 ;; J2 a) d2 ^# d0 o- N/ p* ~
                   else 5 I7 j/ @1 E  c1 S4 K
                                   LED=2'b10 ;  end; \# J2 G6 F! z' ?4 Z* _
                  S2    : begin NS=S3 ; //LED=2'b11 ;
: s  t9 h" q/ x+ Q& P) H                                if(sw==2'b00)
" `: d9 k& Q9 d' v- j$ L                                    LED=2'b11 ;/ d  w* s& _5 _' t% d
                               else if(sw==2'b01)! ?/ Z1 R+ J# W( P/ ^( D" W' N
                                    LED=2'b10 ;
# C8 _7 O9 X7 B- A                               else if (sw==2'b10)
8 ]$ e; \0 n4 k! j+ N6 |! R4 [# P                                    LED=2'b01 ;
+ Y4 F; p+ f; ~" m                               else
( ]# Y8 x. k8 s+ {" e                                   LED=2'b00 ; end
  z& p& h- j: ^* v; z  i) }7 u+ u( a                  S3    : begin NS=S1 ; //LED=2'b01 ;+ e2 @3 A3 _9 y
                              if(sw==2'b01)- l* j% B+ S' _' x8 N
                                   LED=2'b00 ;
  }- w- Q4 y( Z  V2 |; R                              else & M  `4 k9 D  L; p% ?; K5 m
                                  LED=2'b01 ;  end
/ G) [" o! u4 e5 U/ ?            default : begin NS=RESET ; LED=2'b00 ; end                   
. B, m* C- D6 \          endcase                                 # ~! T. d. D( C: c
      end               
4 q$ S7 u9 N- T, T) S               
5 p3 X* q$ V# a! V& \6 _endmodule

評分

參與人數 1Chipcoin +3 收起 理由
masonchung + 3 熱心回覆!

查看全部評分

3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

用state machine配合組何邏輯電路即可。
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?
: B1 \$ F9 l1 U% C* Q9 V# U* r+ x& _! \" g; G, I
不太常用verilog...哈
2 ^. ?3 [" q2 r1 w% }3 b9 V: h4 n4 z% p3 v3 M. G+ e3 M
不過看起來就是個有條件輸入的counter而已
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-8 03:31 AM , Processed in 0.111007 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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