Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題
& e" k+ ~! d  ~如果我有二個LED燈,1表示亮,0表示暗
) P/ l5 Z$ t$ L6 V% i樣本如下表,如果我想要控制它每一個樣本LED亮二秒' U4 m3 W5 m% o4 S5 C( p- F7 r
並依照此樣本往下依序亮' ]$ ^& E4 |. w5 S4 T
1~2秒 LED1亮,LED2暗, |3 U0 z- H- [
3~4秒 LED1亮,LED2亮
1 n# a% e7 v( Y* e7 I5~6秒 LED1暗,LED2亮
6 i+ T$ A# x! i+ @( l2 g7~8秒 LED1亮,LED2暗3 w  \1 a6 Z1 ?4 r
LED1 LED29 T. N, ^4 |* j9 l; L
 1  0
( m3 Q; B- c/ c0 l! q) i- e 1  1' u+ O7 [  l4 t+ `8 I; H
 0  1
5 H* V* w% d; [) A' T# E 1  0 , j: O- Z* v9 X, s& L
且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)6 Q( Z* P' V' R4 a/ `- E/ U* y3 o6 A
如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行
  U4 j. o5 q/ W6 b. |" A用verilog程示要怎麼寫呢?
0 ?1 v! c. w0 v; \有高手可以教我嗎?
6 P& X/ G6 z7 a$ [/ `; a感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?3 S2 k8 r4 m" z1 M3 O
# t6 s6 {5 O7 B" O
不太常用verilog...哈& ~1 r& w/ z; t" J0 p# }

" L( D3 f2 ^" e6 x$ h不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

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

我也是新手 大家一起努力

Dear Sir ,
$ y7 m8 R" r" N" L8 M我用FSM嘗試,simulation也成功     
. u4 V+ j# r* {8 C2 U參考看看吧
: B( h# J4 E3 q/ G- b% [8 z; Y& n' S" C6 P0 O0 q+ b' g
module LED_Ctrl(clk, rst_n, sw, LED);
( R8 y& x  N* K. x' O; G0 u    input clk;# \+ m) m+ \4 N! _) v) T$ U3 c" [
    input rst_n;: i9 z! P3 ]; C0 y' k
    input [1:0] sw;& e6 t+ R6 s8 n) d4 N
    output [1:0] LED;1 e" B, E) r* b* H( J! _
         ( P* j- K$ W( S' C
         reg [1:0] LED ;8 |" \% b% S# _( P6 ~6 ~
         reg [1:0] CS ;- x0 r- g3 }" e8 a) E0 _
         reg [1:0] NS ;
: L0 k& z/ H2 K. m) F6 {$ b" K' `         2 g  p; u+ K1 c, _! Q* @
////////// STATE //////////////
5 E$ W0 X* Q' y  h0 F         parameter RESET=0 ;
8 i5 {4 f/ [  K5 @7 B* {         parameter S1=1 ;
7 u% D9 U8 k0 v         parameter S2=2 ;
9 Q2 V7 n0 ^( R$ M7 S         parameter S3=3 ;
3 |9 p9 k' E+ R# J6 N         
0 s/ f- o: v( n! O         : i/ h  {, b, {8 W/ ^
         ) @5 G/ }" T+ ~. t/ o4 r
         
( _. p) D9 R. `3 h: i////////////  FSM  //////////
5 v( d& v" _$ l* S
3 C" c- }2 V/ e9 ?& d) balways@(posedge clk or negedge rst_n)
; l) l) t! F' V+ J& J" O5 l& Ibegin
: _) ~9 u: |" O$ d% n% W       if(rst_n==1'b0)( S, L9 E, C, u. X6 J
           CS=RESET ;, V: B9 d3 s  Y' O2 Q* l
       else
6 ?% W$ m. h5 w% R& b            CS=NS ;* ]- \! o, m8 C* Y  F
end
# q& k1 U* i0 D- l& n+ R; o! S' r               
& S5 {4 N+ o# I, \                $ o3 d, [: \$ N, g% }* ?

7 M% e/ B* Z1 @& ?1 W2 }$ J1 ~1 ^    always@(CS or sw)
7 U: y! y- q3 G2 i9 y8 C- F$ D; z      begin' p" b7 D: {- H% Y
            case(CS)/ @1 I3 k$ ?) E( q
             RESET :  begin NS=S1 ; LED=2'b00 ; end
9 X7 z! `. p3 I( G; B1 ]                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  
  ?2 f7 f, ~) Q% C                   if(sw==2'b10)' O5 V/ @( h7 |' H5 I4 q( s
                       LED=2'b00 ;. j/ T" ]" v8 u- |1 T
                   else # a1 Q/ g# q7 L. r8 p1 y5 B/ \* |- d9 ]
                                   LED=2'b10 ;  end1 d5 m/ w8 [6 v  k2 G% J1 o# g
                  S2    : begin NS=S3 ; //LED=2'b11 ;' K4 E; Y  \6 A. \0 O! C
                                if(sw==2'b00)* z; t3 L' M9 N. F: l: ^1 h) }
                                    LED=2'b11 ;
! R5 Z6 k' h& W$ P; s1 S4 I5 o4 t8 V                               else if(sw==2'b01)
1 @$ }  ?# j; K! W, J2 W8 y                                    LED=2'b10 ;
6 }' A* g" T$ Q( |                               else if (sw==2'b10)5 I( _, j5 D0 ?6 H
                                    LED=2'b01 ;
& Z- G; @# F* [% H, ^$ Y" {                               else ' c2 M) }& s1 w, R! q0 j
                                   LED=2'b00 ; end: d+ e8 f* t' }# \% I
                  S3    : begin NS=S1 ; //LED=2'b01 ;
' _& g) S. c. }. K/ c0 }                              if(sw==2'b01)% y$ y0 g( u3 |& I
                                   LED=2'b00 ;
# Y$ p$ Y( c9 g0 k( @# j: j6 i! E) }: m$ I                              else 9 V, W1 @+ `3 A1 ~
                                  LED=2'b01 ;  end, j2 ?$ L/ v6 w) F
            default : begin NS=RESET ; LED=2'b00 ; end                   4 C" |: ~8 [, A6 y0 T4 l
          endcase                                
# Q) W8 Q. c/ r3 V$ ~7 k      end               
8 @; O$ r" G$ K, Z7 z/ p                $ q) Y: W2 ^; U
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, 2025-2-13 05:14 AM , Processed in 0.156000 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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