Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題, ~9 x/ W* w$ x  I& L  l3 h9 J8 d( l. J# T
如果我有二個LED燈,1表示亮,0表示暗
2 I0 U1 ^. M4 N樣本如下表,如果我想要控制它每一個樣本LED亮二秒
( Q* y6 O5 [  G' w3 ~並依照此樣本往下依序亮
* m2 Q3 O; W6 x6 R& P1~2秒 LED1亮,LED2暗
8 P/ s- h& d$ u/ `, F3~4秒 LED1亮,LED2亮6 U: A  h# a2 b4 o
5~6秒 LED1暗,LED2亮
4 {% `5 B  n( `( `! H4 H, N7~8秒 LED1亮,LED2暗
2 W, {/ R8 S: z" k7 v. f% \4 tLED1 LED2$ _5 G4 d) q; q: ]  z: k
 1  0
6 Y! Y$ J6 d8 P2 T% Y9 ^& e 1  1
( |& K' r- A) }" z' g" w" T( M 0  1
5 ^8 y; R  ~, t0 y/ j; w 1  0
# E. R! ^: _* D/ z且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)
/ N: f% A1 m' K$ y  f如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行
/ `* X+ V, h# p, I, S  r% C用verilog程示要怎麼寫呢?" \9 t5 G) z/ I/ Q* @! b1 v8 ]
有高手可以教我嗎?
9 C% R& D. X; G& _8 _感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
8#
發表於 2012-3-14 16:02:27 | 只看該作者
其實最簡單的方法就是寫個counter,寫個判斷式來控制哪個LED要亮即可。
7#
發表於 2012-3-13 23:04:23 | 只看該作者
verilog lejie yidian ....yihou keyi xuexue
6#
發表於 2011-12-8 09:19:28 | 只看該作者
嗯!不錯的建議!可以好好參考!
5#
發表於 2008-7-6 15:52:24 | 只看該作者
頻率快慢可以控制明亮,你可以寫幾組除頻器,來切換~~
4#
發表於 2008-7-3 15:43:32 | 只看該作者

我也是新手 大家一起努力

Dear Sir ,
# K9 N8 \+ E( l! }1 p" J我用FSM嘗試,simulation也成功     1 i  Y- k* s0 `% d$ Q. I  K
參考看看吧
4 \# W* d6 r$ h2 h% H- C& j/ h7 `5 E
module LED_Ctrl(clk, rst_n, sw, LED);
$ G9 H0 U( _/ H  b8 U1 q4 s. v7 O2 h    input clk;
, m7 }; }$ P% Y) ~6 `    input rst_n;
4 n+ Q# s4 m0 U- _$ n    input [1:0] sw;
# `+ ?  b6 Z  F8 {& H# I9 S    output [1:0] LED;/ \% g- I" k9 `" D. z+ y
         
+ N+ {, ?- T4 ~$ D         reg [1:0] LED ;
% G% ~, W* _: Y! C* ]         reg [1:0] CS ;0 ?# x2 L! ?$ M0 C- ?' _" s0 L
         reg [1:0] NS ;1 S( B1 L9 v* j. P4 s2 D9 G7 D- y0 J
         
. a% t' x- N& p5 x9 W& ~////////// STATE //////////////
& S) ]1 S6 w8 U3 w2 U         parameter RESET=0 ;
* J; b1 N  P/ N: q2 B         parameter S1=1 ;
+ z. `/ a- i! {$ T! O' q         parameter S2=2 ;
3 \3 b. ^) o* C9 I         parameter S3=3 ;, [  X' F$ @- c8 N. |, H; R3 e6 L; P
         # G: W. R$ F) W
         
) p/ l5 ^3 E0 l( ]         
1 `% e7 M  A+ _8 A  N         
- |) o) j* m: s3 e2 g////////////  FSM  //////////# a( k6 o7 P% F' a% C
: M, v9 n' }5 y0 H. o$ b2 ]. P
always@(posedge clk or negedge rst_n)% q7 h' C: ?. R) k# U
begin+ v% ~% h1 Z# C4 |  _
       if(rst_n==1'b0)
! G. b8 w! Q" E$ B2 U) L" q           CS=RESET ;
/ l% u" X- n& ^+ N       else
5 A* |1 ?/ o2 _) ?4 q  n2 n. ^, H            CS=NS ;
1 }# x# N1 ]4 E: ]3 Q) m/ P# Iend 4 a% Z+ i  N1 y: i) X  N
               
4 w9 O. ?6 S) @                $ `( ]# l/ M8 y6 i' M2 U

9 D; c& T/ X( A5 b    always@(CS or sw)4 a4 i2 C; X6 h
      begin% {3 M7 t( g2 a# P
            case(CS)
. }1 j0 y# Z6 c, v0 w* N. b8 S5 E" f& K             RESET :  begin NS=S1 ; LED=2'b00 ; end : H. g( r! c) M
                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  8 w" o& S( Y! q7 }
                   if(sw==2'b10): j* H4 M+ e1 w$ v2 B
                       LED=2'b00 ;
: L- ^& g. Q/ [/ {7 [                   else
5 X2 a( s( W8 l3 A1 R+ |* w                                   LED=2'b10 ;  end
: P6 N4 n3 w' O9 t                  S2    : begin NS=S3 ; //LED=2'b11 ;
4 L" F% G) C  K. j5 B1 M                                if(sw==2'b00)- O# \+ l; X$ _  Z% @* q  O' U
                                    LED=2'b11 ;% {) m7 x/ S7 q; g. ]
                               else if(sw==2'b01)
7 \# ?5 J7 V1 _( m7 y7 x. V                                    LED=2'b10 ;
# B) A! t. {$ A: n. b& |6 ~                               else if (sw==2'b10)# {3 \8 V' y6 D% U. J- J
                                    LED=2'b01 ;
8 H1 @$ j% f# l5 W2 I                               else 5 u3 i' [: u5 b& ?# a/ e: @  B# U
                                   LED=2'b00 ; end
, O; V, L; U7 y. G# u                  S3    : begin NS=S1 ; //LED=2'b01 ;& G' x( ~6 q3 j" O% p4 s% E4 ?
                              if(sw==2'b01)8 @3 P8 t" ~0 [! @! y
                                   LED=2'b00 ;
' B2 h( q' A% k                              else & m4 N2 E$ K1 u
                                  LED=2'b01 ;  end
7 A* @, T" W0 _0 H" _  f- N            default : begin NS=RESET ; LED=2'b00 ; end                   
! f" j, x2 G$ v8 Z1 e* a1 H          endcase                                
: |, B$ Y: {, C" T  o      end                1 X4 R2 c; w$ N; w
               
( p. M( T% v4 Q% pendmodule

評分

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

查看全部評分

3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

用state machine配合組何邏輯電路即可。
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?
3 q6 m( U$ G% k) P/ G3 \
, j' a  S5 _! }- Q不太常用verilog...哈. A" S% q: ]4 s, D% t( t) E% @
) o) }. y, ~8 T& U7 D3 d/ L
不過看起來就是個有條件輸入的counter而已
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-5 07:53 AM , Processed in 0.118515 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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