Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題
# {( e6 g* o& O如果我有二個LED燈,1表示亮,0表示暗3 \* k9 r1 z8 w8 n, Y* v/ L, e
樣本如下表,如果我想要控制它每一個樣本LED亮二秒. L! x3 y1 E* G8 J/ |
並依照此樣本往下依序亮" v- J; T3 I+ i
1~2秒 LED1亮,LED2暗
$ V/ Y# T  U: d) ?- g4 `" o3~4秒 LED1亮,LED2亮, S7 q: L1 f7 C1 S+ w4 A4 b  P
5~6秒 LED1暗,LED2亮! @% T! Z9 ^0 Z1 s9 r( f" U
7~8秒 LED1亮,LED2暗
) Q' _3 Z4 w0 w( \5 jLED1 LED2+ _2 O( ?& ?* F' B) l9 `# P
 1  0
1 `. |- o$ }& q 1  1% j6 `2 e8 f' z8 o2 r
 0  1* E; |* N/ A/ ~7 o6 t0 \8 i1 w
 1  0
2 v3 e8 e: c3 R; X且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)
$ D2 F/ D2 f% D$ Y" b  ~0 }& ^如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行
: \& R9 o5 G) W4 y- ^& j0 A用verilog程示要怎麼寫呢?
* v" n1 x1 N) R5 E# d有高手可以教我嗎?/ V& S! ~8 H' Q$ ?6 b2 v) U
感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?
# P6 I" A! a0 r+ }5 z1 ?9 S2 ]6 m+ E+ U% D. W5 O* _" g
不太常用verilog...哈
$ _$ [  F  |' H1 R( z8 M
1 m8 G, L, Q+ J/ ^! b6 I不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

用state machine配合組何邏輯電路即可。
4#
發表於 2008-7-3 15:43:32 | 只看該作者

我也是新手 大家一起努力

Dear Sir ,
3 l# u; z9 ?4 q' B! g. ]0 C& y我用FSM嘗試,simulation也成功     
- [# \1 F) N" D6 P& u參考看看吧9 o% ]2 F# |0 R! |

, P4 R" j! O/ E2 \. j- @( zmodule LED_Ctrl(clk, rst_n, sw, LED);: h3 w! F* q0 {: \( p, `4 G
    input clk;
6 ]1 Z. \4 X5 j! ~4 O9 p" f    input rst_n;1 M: T' l# _3 a! h% T1 a; a
    input [1:0] sw;
0 A. B- Y- f, L: |    output [1:0] LED;+ u) N) b& ]# C8 t
         6 X4 {. N" C" c
         reg [1:0] LED ;" j  ^$ b2 O8 o( J5 l
         reg [1:0] CS ;
& U# f0 a, J# O0 x         reg [1:0] NS ;
& q% P9 P* c  W. P6 b+ g5 [. Y         
$ ?5 x5 H0 j0 `. B& v; G5 ]////////// STATE /////////////// b( U* B; f  V
         parameter RESET=0 ;
% Y3 p9 i2 U: b& ~1 Z/ B# {         parameter S1=1 ;7 G- d) Q* f, H6 ]" D2 i
         parameter S2=2 ;0 L+ D4 U* y9 [% ^& n2 y* ?1 Q: D
         parameter S3=3 ;2 F/ C9 x7 v( e' n2 d, Z
         
" y5 t- M3 W: ~3 P2 l         ' d& X& I& S+ H8 t& B3 v; y
         , c6 E! X2 c7 U  I' d, [" H
         
5 t8 k! G# r4 A: J( Z////////////  FSM  //////////2 X+ Q& D- S8 T; j

8 l$ I/ Q3 X1 P8 `! e! talways@(posedge clk or negedge rst_n)* W! r9 T" u+ q0 E1 V- F8 c
begin/ D; i4 O! K3 ]- x  ]" e: `1 ]2 l
       if(rst_n==1'b0)
5 a) z' `2 \" b7 S3 a           CS=RESET ;; L3 B% k3 N) Q! w
       else& Z' S, D# f/ x6 C& g. b) K
            CS=NS ;8 `* D; `" l* x
end " U  r: g7 Q6 h. Q( f
                6 E; n' P: W; e" ]: K
               
6 @9 t3 a( L# @5 T# _
2 r; w* a  ^  W    always@(CS or sw)  `+ z' v- u$ q, N, x
      begin2 W0 \7 H7 b* n2 }0 E/ r
            case(CS)
& K! P6 f( E+ k, u1 T             RESET :  begin NS=S1 ; LED=2'b00 ; end ) t, p' S5 c' u2 }7 h, w
                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  5 G7 n+ j0 e9 F/ p/ h
                   if(sw==2'b10)
6 R5 j( {  N5 e/ t( e" w                       LED=2'b00 ;
$ S1 z9 l4 o* s; a1 Z                   else 2 y9 o. u$ Z. ]3 g- j
                                   LED=2'b10 ;  end
( Q: D% F% d9 J$ \" k  x4 T2 Q                  S2    : begin NS=S3 ; //LED=2'b11 ;( ]& W" V0 O$ j- B+ y  {' c6 u
                                if(sw==2'b00)% T0 u. J! t$ T0 M3 y5 K
                                    LED=2'b11 ;1 i# V8 X/ y) _- {$ m  f' N
                               else if(sw==2'b01)
4 ?) Y/ ^$ V8 m6 K                                    LED=2'b10 ;8 s/ l" f( y* D. U) j( E" y2 R
                               else if (sw==2'b10)
0 p$ S1 D' F4 G( K) T                                    LED=2'b01 ;
+ s- I2 r  ?3 B                               else 1 K# w6 E9 C, z! y# u9 Z
                                   LED=2'b00 ; end
' u5 {3 P; J- ]+ D5 R                  S3    : begin NS=S1 ; //LED=2'b01 ;( @6 M- _# f/ f- B. j& Q- r+ V
                              if(sw==2'b01)& M7 {1 j9 f7 }/ j+ |
                                   LED=2'b00 ;
4 A. c# Q) @' l8 ]9 U                              else 5 q6 p6 a8 Q: ~" I" \& A* @) n
                                  LED=2'b01 ;  end
! {5 z0 Q( t; ~1 c% t            default : begin NS=RESET ; LED=2'b00 ; end                   ! C8 W( V% s, S
          endcase                                
2 ^$ Y9 p* Y, J2 n4 T. N9 F      end                + q% D! p& _: c0 g1 f
                8 l2 X, p5 S" `+ e3 g! S
endmodule

評分

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

查看全部評分

5#
發表於 2008-7-6 15:52:24 | 只看該作者
頻率快慢可以控制明亮,你可以寫幾組除頻器,來切換~~
6#
發表於 2011-12-8 09:19:28 | 只看該作者
嗯!不錯的建議!可以好好參考!
7#
發表於 2012-3-13 23:04:23 | 只看該作者
verilog lejie yidian ....yihou keyi xuexue
8#
發表於 2012-3-14 16:02:27 | 只看該作者
其實最簡單的方法就是寫個counter,寫個判斷式來控制哪個LED要亮即可。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-15 09:49 AM , Processed in 0.131516 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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