Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題5 _3 U/ f8 G  m, H
如果我有二個LED燈,1表示亮,0表示暗8 ]$ q) S, t% R( _0 Y
樣本如下表,如果我想要控制它每一個樣本LED亮二秒3 u7 R2 G# C" t3 T: k5 o& m
並依照此樣本往下依序亮
" k( U7 ?: |% r- j+ \9 D, Y1~2秒 LED1亮,LED2暗
1 \! j1 q) R8 e+ H1 a- p3~4秒 LED1亮,LED2亮  L1 i3 {+ g, z! ~" P
5~6秒 LED1暗,LED2亮$ d# m7 N1 {3 e$ v$ ]: O
7~8秒 LED1亮,LED2暗$ V7 y  w, M& j: v) Y3 @$ E& m4 T, [) b
LED1 LED2
: u3 l' I4 z- j 1  0
% c/ m5 x5 Y" F3 P! b 1  1
0 F  C) D8 o" Q$ K/ J0 b& G3 W 0  15 l  Y. m' s. i% u# Z
 1  0 * S" R# h; f4 c% k2 @0 N
且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)' O3 ?5 Y/ P# F8 V
如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行
6 D- |) z- u2 q; x  @$ a用verilog程示要怎麼寫呢?
, `5 p0 `+ [5 ~/ N/ q有高手可以教我嗎?5 c0 I& i5 x. B, m: I
感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?- X" O/ Y' f2 o
5 |3 c! Z7 T: i- ^, m9 B
不太常用verilog...哈
/ i/ G3 P1 W& |) V( y& i! _
( F' G5 k; q$ c9 {1 T/ {3 K0 F8 C' M不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

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

我也是新手 大家一起努力

Dear Sir ,( z2 G! ]0 i. x9 E. v3 Y
我用FSM嘗試,simulation也成功     
5 p3 Z: n6 [# M( G; q8 h" T6 Z參考看看吧& @. ^2 R& u# e2 r& F# H1 L1 o) |

! j2 w4 s: |0 H1 p2 G7 f3 hmodule LED_Ctrl(clk, rst_n, sw, LED);
* m4 T( M: Z  W1 ^9 ~: I    input clk;6 {5 O2 z8 ]/ }. Y
    input rst_n;1 X, A5 k1 O( u+ J* P
    input [1:0] sw;
6 J4 D6 Z) h0 l7 c5 D' m    output [1:0] LED;8 g) c) @9 \8 o$ Q
         
! d" c) W, c2 R7 `: T         reg [1:0] LED ;; x8 N/ l7 R) ]& d
         reg [1:0] CS ;9 g& ?/ L! d+ n  r+ V* B
         reg [1:0] NS ;
$ P' U! z' p1 r: m% U6 M) n9 ?/ v, D         
4 h9 ?8 C+ N6 {6 }6 S////////// STATE //////////////  i7 m2 j: l5 {( @6 U
         parameter RESET=0 ;
3 U! N# J0 l  x* N         parameter S1=1 ;
0 Y4 G4 P8 O- L5 r8 E- J6 t         parameter S2=2 ;+ I& ?  P6 |" Z# i+ Z
         parameter S3=3 ;
6 l) ]% I9 t3 E; d         
  w0 i6 O2 e! x5 X7 X: b         & L  y* ~6 J5 G4 C2 q" s0 `
         - A6 u; V# o6 Z% k* Q+ J* |
         8 H+ x- _" m* [4 {, B
////////////  FSM  //////////
9 s( c9 k9 ^$ S5 T! f
4 g" M% y, ^& ?4 p6 d! K0 Jalways@(posedge clk or negedge rst_n)2 b4 e- `0 F2 J9 B, M0 g0 ?+ R0 I
begin, o- _* \+ _. r
       if(rst_n==1'b0)
! M: ~8 X5 Z, `0 m4 t           CS=RESET ;
1 \, j) O6 e' f1 G+ u       else
$ Q5 G1 ^  b2 d8 @' F; l/ Y) P            CS=NS ;, {0 G6 {: O+ x0 f; E
end
  S  @9 C4 p0 f3 \% J. U) u8 \               
$ [) I) j8 \$ `4 i0 Y: d               
) m9 t4 d7 f: D6 h- a' h- Z* x9 F* S5 Z# z* r1 Q
    always@(CS or sw)& |  Q3 K* N9 v" u6 z( [: P4 {
      begin& W: j! B: `) l! r* b7 ~& Z; {- y
            case(CS)1 {; x2 R7 ]* n4 y' I* r. _& G% M
             RESET :  begin NS=S1 ; LED=2'b00 ; end 3 Q: \8 g& u4 O2 m1 k
                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  # u, ?6 i+ d! S/ G% T' x& T  v2 D
                   if(sw==2'b10)8 ]' Y+ H6 K5 }! I) p' g' N
                       LED=2'b00 ;* s! h# G) a* T# a
                   else
) }( i$ R+ C9 V* t                                   LED=2'b10 ;  end9 C! P1 o: V$ t" S. E& V8 o
                  S2    : begin NS=S3 ; //LED=2'b11 ;
5 Y" \6 v. `# I2 R8 K# B; g                                if(sw==2'b00)* t( n1 M6 j8 ]8 `
                                    LED=2'b11 ;2 G* Z" [& p4 q5 Q5 f
                               else if(sw==2'b01)
2 U1 Z  a1 }6 ?: H" X6 y9 ]                                    LED=2'b10 ;
% w- I6 ~1 }$ a/ ~  Y1 b                               else if (sw==2'b10)
1 c  O+ @) F  b3 P                                    LED=2'b01 ;
& T: ^4 K3 K3 V! {$ J7 s; l5 E                               else + }8 K2 \) E- H6 n2 M
                                   LED=2'b00 ; end
* X- ~+ ~4 s8 w2 Q% [, C9 C                  S3    : begin NS=S1 ; //LED=2'b01 ;
4 H: d# T/ v+ e1 k                              if(sw==2'b01)! S; x4 |2 e( ]/ ^) h/ g. Q' d: w
                                   LED=2'b00 ;& i6 ?( H( n; J$ v" B  V4 e6 I
                              else
) E: n. [9 I9 _0 l% u8 j                                  LED=2'b01 ;  end
% Q$ L: u0 ^+ C! K( v7 @- \, d2 Q            default : begin NS=RESET ; LED=2'b00 ; end                   " }' `' E/ z0 o5 J( G
          endcase                                 + N1 s$ X0 G/ m
      end                + J7 L6 g7 V7 l8 j/ g
                ; r" A* l5 F* |( K5 k; o) |
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-8 01:03 PM , Processed in 0.142518 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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