Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題/ d, h8 p- W+ N8 L
如果我有二個LED燈,1表示亮,0表示暗! p7 h6 X$ h8 K$ e0 D9 T
樣本如下表,如果我想要控制它每一個樣本LED亮二秒
- F' [# X1 S1 A; U並依照此樣本往下依序亮
# A9 \0 P, v4 I4 }/ |0 t, D9 X0 ~1~2秒 LED1亮,LED2暗
1 a( X. G& K' r5 E3~4秒 LED1亮,LED2亮
1 @4 k+ E- ^9 }8 j) Z5~6秒 LED1暗,LED2亮
; M" K7 C& E. M+ H7~8秒 LED1亮,LED2暗: T0 v! H5 [" p
LED1 LED2
4 k) {8 ~- ^% x4 J. s 1  0) q( A8 f& ?# }! Y6 p# r
 1  1+ c" Y0 a* ^3 U, B
 0  1
8 A8 [' _9 b  Q! Z' R8 O; c1 \ 1  0 , h: }% G% T* d! R( x. a
且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)! m9 j3 X2 D- B0 H/ d2 n/ Y. L
如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行
6 x& h4 Y: T' |3 Z5 A用verilog程示要怎麼寫呢?
1 Z3 c6 O: k- W: k5 Q+ P有高手可以教我嗎?$ A1 S( O* ?% d) D4 I8 g* r1 Q
感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?' @% S* F) P9 X& Y& n
+ o; M; M3 }" P: j) k8 }
不太常用verilog...哈2 L) R) J9 s- k1 K7 {7 b6 L1 O9 R& b
+ P; w3 B( Q, E) I
不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

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

我也是新手 大家一起努力

Dear Sir ,
* b* K( d& R5 ~我用FSM嘗試,simulation也成功     
4 P/ D! R3 u6 `, j% A& y, A" H  m+ @參考看看吧3 r5 K. b3 o4 O, w* K) D0 v; c+ r
: {1 l% X8 E0 C5 W: x, a
module LED_Ctrl(clk, rst_n, sw, LED);  a0 {) L  C9 ^' ?1 a4 r9 n" z5 R
    input clk;
: h; K' r/ W2 I4 ]* R& [    input rst_n;
+ j9 o# c" b! V" i0 i2 f    input [1:0] sw;5 x) a6 `- b4 ^) y* `% C4 @
    output [1:0] LED;$ {9 ~" u3 q! W% D7 k% I- {4 ~
         
$ `  s% u  T4 Q/ x9 c5 r         reg [1:0] LED ;
* j( `% b# n, Y" N/ J1 F; \         reg [1:0] CS ;% g& h2 G7 N( A3 M( `) B  B2 L) p
         reg [1:0] NS ;
5 |* D/ Z) k1 E( q! e( ], }2 H         
- R; o( _" a! l8 i9 e/ d6 f////////// STATE //////////////2 x! M4 b  c, a& S! u7 N4 h
         parameter RESET=0 ;
, y3 b( w. r$ u7 e- h+ I% X  ]         parameter S1=1 ;
, k' @4 R! R4 o& g: R         parameter S2=2 ;: x3 \! \: F' d. |' Z
         parameter S3=3 ;- h, Q5 o- ~8 _4 t3 ]+ ~2 \
         " ~/ k/ l  G! K
         , l5 E, {( w5 @0 S
         
" Z: C9 b6 g9 K' K         
) e* O9 _0 X- ~) f  H% ]: o& Y////////////  FSM  //////////
1 |  |! k. i$ o! o' H7 h2 P2 I. `. g5 N8 O' a4 ^! w: b( W; T
always@(posedge clk or negedge rst_n)3 z, h, ~3 O9 }0 i& p+ D' _, a
begin
" C) Z5 Y& j. j  B$ O! g       if(rst_n==1'b0)7 L/ @4 y6 o# L* n# [
           CS=RESET ;
, O4 E5 z7 p. G/ v# X       else6 w9 W$ @6 p) k" D, B$ O, i+ `
            CS=NS ;* x5 g4 m' X- L& g* p& X
end
. Z3 F5 l6 l0 w; v               
% ]8 S! |% C0 g) _               
2 c+ S1 z9 d' C
% w- C2 {- X" d4 K8 B    always@(CS or sw)
* e4 ?( O4 R$ t) }+ f' h6 J3 p      begin
% R; g) C+ O: L# `& h            case(CS)
: a* {2 |# g  z, i$ l! u             RESET :  begin NS=S1 ; LED=2'b00 ; end & F" ^- h7 ?" M, A9 g/ A  Q
                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  
9 G8 [% |8 s9 U4 \                   if(sw==2'b10)2 o( _1 |8 s6 L
                       LED=2'b00 ;
! {+ y% h  Z! V! z; k/ o; w                   else
6 l6 v1 g. Z9 K  M                                   LED=2'b10 ;  end
4 y( p" t% ]9 g: V6 B/ w; A                  S2    : begin NS=S3 ; //LED=2'b11 ;" ~7 Z! L( Y6 \1 z5 L
                                if(sw==2'b00)
: A' ^6 ^" `  y* m, }                                    LED=2'b11 ;, V$ A* e: _% a  o% n! t5 g
                               else if(sw==2'b01)
- f1 I9 h7 ^' `7 ]% d                                    LED=2'b10 ;
# k4 e' w. t5 F; T( |                               else if (sw==2'b10)  Z1 k! }6 E" J2 |
                                    LED=2'b01 ;
. ~# U  E; G0 M; w  k/ t) c                               else
. }9 V- z5 H5 z7 C                                   LED=2'b00 ; end( b  O' v0 P/ e' z
                  S3    : begin NS=S1 ; //LED=2'b01 ;
4 H  Q! g; T2 D1 n$ F                              if(sw==2'b01)
: [* z9 G! b' E0 `5 `  w. R                                   LED=2'b00 ;
  {- E- ^4 P6 g/ m                              else ' F( y3 ^4 @6 n, R' m
                                  LED=2'b01 ;  end; \# W* T, T% B! s
            default : begin NS=RESET ; LED=2'b00 ; end                   
5 e# k+ q2 p1 A% _: t+ o+ J3 J          endcase                                 1 l4 f3 e2 F$ r
      end                # t) v4 r4 \6 z3 r1 X0 H  C& @
                , I' _' v1 v% i, W  k
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-18 05:58 AM , Processed in 0.125516 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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