Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題
- k/ g' j! u7 z- ^( @* W* m- d如果我有二個LED燈,1表示亮,0表示暗: O& ?5 B4 g8 a  a/ u: M. z
樣本如下表,如果我想要控制它每一個樣本LED亮二秒
: L: E  C" ~7 L6 }3 l5 f並依照此樣本往下依序亮
& f" v- \4 X3 d7 a7 M' Z) R! h+ r1~2秒 LED1亮,LED2暗
) }3 h" m& O1 A+ _. |7 ?0 b5 g3~4秒 LED1亮,LED2亮
) t7 G5 G- Z' x0 b0 f% ]5~6秒 LED1暗,LED2亮
5 N5 k9 R/ `' O7~8秒 LED1亮,LED2暗
' [* C4 r2 p& Q5 T% U7 m9 O5 d' u5 dLED1 LED20 b3 Q# b4 y3 @, ^' o( |' K* q; k
 1  0, `' c5 E+ O$ P/ b4 M/ j# j
 1  1
: |8 N) @: u6 E, O6 m 0  12 {& E, X# R; N2 U- d1 a
 1  0
; F( U7 f' `4 g) L且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)1 o6 P, e6 d( s$ J# b* K
如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行2 k& J' c2 I, Q$ ~* [: q
用verilog程示要怎麼寫呢?& n& x" W- w# X' G3 q/ j4 I
有高手可以教我嗎?
8 Q' E/ T  C0 m# M0 K+ t6 U感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?% O% N% E4 u* D0 d% y4 W2 q3 A6 M: |

* B1 i0 x4 x/ A) L+ W9 _! l不太常用verilog...哈
, o1 C6 o4 z) M/ |% t
6 y2 h1 }6 E# N* }不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

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

我也是新手 大家一起努力

Dear Sir ,* L# ^- ^- b( s- ^, g1 I+ d
我用FSM嘗試,simulation也成功     
9 O: M. @* q3 R+ Z7 ?參考看看吧
- A. Y: o! W, g+ J8 I! }& n
, ?) p3 e! q9 B0 I5 X3 S+ b9 Hmodule LED_Ctrl(clk, rst_n, sw, LED);
+ ]  r% B4 w( @/ P    input clk;
( S7 u! x! r; c' V0 {( K, v    input rst_n;
5 j: J7 M# {, k    input [1:0] sw;6 s+ I* z% k# Y7 j% e8 d+ z
    output [1:0] LED;
; b$ u( y& e& A. U         
$ t- X8 @4 p* @0 L         reg [1:0] LED ;/ U# k. T9 f  `, a, ]
         reg [1:0] CS ;
: v% c/ l+ S- [$ z4 [8 ^         reg [1:0] NS ;* Z% @1 C: M9 i; K
         
: u' b7 }& \1 |  ~) N4 q////////// STATE //////////////
8 }3 C! A3 B% \( O. j$ ^         parameter RESET=0 ;
! ]; {6 P) d* Y3 \7 G4 U: Q, p         parameter S1=1 ;2 k9 y5 h# B( J" _1 U7 V
         parameter S2=2 ;
6 S6 }: f/ E  ~5 x         parameter S3=3 ;
) W  C/ C) j+ |! F0 V6 }" G/ e2 a         
" Y8 H: l1 O2 y         
" ~) |3 {* |; l' z# B' g3 ^6 b! B         ) _' n2 Q/ ^7 ~% ]
         
% X. n1 h# b5 Y( [. V////////////  FSM  //////////
) r# n2 ]' @" j8 b% N- c$ o
; l9 }: x1 N+ ealways@(posedge clk or negedge rst_n)
: y4 u: ^/ H% X7 m1 cbegin" _' n( s: {& h9 j) K8 X0 W2 e
       if(rst_n==1'b0)4 M& ~* X" I% z, m) U
           CS=RESET ;
: a# z; B0 o3 x' `9 V7 }3 k       else. S4 t, }# ?2 s* ~9 Y
            CS=NS ;6 T  O' `* B3 C5 R+ F: C" r( A
end
* u9 t0 V9 w: n3 G* T+ i0 Z               
3 s: L+ {# M/ Q+ c                : g: _" Z' L7 {$ B9 E
+ f4 W& I  I9 h9 ]
    always@(CS or sw)4 V+ K$ u; c5 K3 z
      begin# L5 _) Z9 |& B5 g2 [3 }/ T; i, W% b
            case(CS)2 o9 n  Y$ E7 X' s4 F# \. U' z
             RESET :  begin NS=S1 ; LED=2'b00 ; end
( s1 t% @, H, q1 u: f" X9 V9 S% d                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  
; T6 x* \  o# q* w; C& ^                   if(sw==2'b10)! ?/ ]: `! H) G! S1 i$ f
                       LED=2'b00 ;- U7 K  }8 m: k4 f2 {) @3 Y
                   else
0 q: ]4 p7 O  }                                   LED=2'b10 ;  end
( m5 G! ]: C! V' _( M) |                  S2    : begin NS=S3 ; //LED=2'b11 ;* q; g- Z! s. g, @- x
                                if(sw==2'b00)
, Q, g* ~) `0 c4 ~/ _. S- k                                    LED=2'b11 ;( _7 z: F+ B- X6 ^7 p( S$ \
                               else if(sw==2'b01)3 N* Q6 i! |/ H3 a
                                    LED=2'b10 ;
, f  H% ~. B" `- u9 O1 u! y$ ?/ K                               else if (sw==2'b10)
7 m# ?$ f& D' N- g) @8 m8 H                                    LED=2'b01 ;
% t# v8 z' |. E) `- w) J8 G                               else
" {4 a2 X$ y% R2 z3 q( }                                   LED=2'b00 ; end' @5 }+ e& `3 u7 ?7 Y
                  S3    : begin NS=S1 ; //LED=2'b01 ;
; @5 H5 Z: q# ~                              if(sw==2'b01)
  R1 m1 n$ ~, q8 s+ u" e, Q; q" S3 j                                   LED=2'b00 ;
) E8 n" s7 G. I9 h  F- b  _5 E                              else
& @# w; p. a1 J0 A( P9 @! P" r                                  LED=2'b01 ;  end
/ p$ f1 M% g1 ?1 @9 q3 k0 l3 p            default : begin NS=RESET ; LED=2'b00 ; end                   
% y3 f. C% s! l) K6 ?, j          endcase                                
6 O8 h. M9 T4 O% J8 E      end               
7 n# n( n! M( |* Z. k, i0 u/ E                . m" ]9 ]7 y5 c. G) |# N% n3 F
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-5-8 04:53 AM , Processed in 0.109006 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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