Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題
, N0 T1 X1 e+ k如果我有二個LED燈,1表示亮,0表示暗, D4 c+ B! R) T9 m# w
樣本如下表,如果我想要控制它每一個樣本LED亮二秒
. s+ ^; k& ]# ?  J並依照此樣本往下依序亮
8 p  O8 o; g  D. s4 D9 L0 Y1~2秒 LED1亮,LED2暗
' p5 j& W9 @" E3~4秒 LED1亮,LED2亮4 D' x9 {' p) A' M6 ~$ k& w
5~6秒 LED1暗,LED2亮7 b3 w9 M5 t5 }' i( \
7~8秒 LED1亮,LED2暗' H# z" ]! v* A0 ^
LED1 LED2( P% e; q. V5 O) {- o/ u7 n. R' P+ g! L
 1  04 C+ i/ {9 Q! \9 {8 m
 1  1) l, K! z* H# ]7 e' n
 0  1
0 q* H# l" w/ g9 }% N 1  0
& i/ _1 ^3 K4 b  J4 P' ^且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)
' b) }  n6 H& e" I7 V8 x. n如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行+ }: ?" a6 Q, m6 f( V
用verilog程示要怎麼寫呢?
7 l8 U4 {8 r. l# f0 F; }# v有高手可以教我嗎?
" q8 l0 E/ g& j- n感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?
8 R2 Z+ z2 k+ q+ g2 J2 u  i; V% y# k
不太常用verilog...哈
) B- X" C/ D, f1 a; e( }
6 h) O& v; k- ^  h* W. h5 g不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

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

我也是新手 大家一起努力

Dear Sir ,
" {" S; j* `: W. O* V8 q2 D我用FSM嘗試,simulation也成功     
$ Z3 ~8 R1 \/ w8 K2 D) y3 ^$ i5 t參考看看吧$ c+ q" j9 j; a
; K& W/ v4 S; ]4 R
module LED_Ctrl(clk, rst_n, sw, LED);6 t, A- r5 n1 u
    input clk;' x+ n7 w: E6 B# ?* R9 g/ l
    input rst_n;
  R, Q' v* n2 r9 W. L! C: ]    input [1:0] sw;
. N) G; u+ ?* b% d    output [1:0] LED;# W9 `, r# }4 f" ^' v: L; I
         5 N+ Z% A; M) P0 M# s7 E5 q, `
         reg [1:0] LED ;
$ J' T  ?5 c9 v; B         reg [1:0] CS ;, K7 F1 ~  i7 }  w' [5 w  l  l7 L
         reg [1:0] NS ;3 D  l% }0 R/ [
         
$ F* n6 d3 p* q. Y////////// STATE //////////////8 }0 \7 m( ~- V$ m% S  v' G! L% k
         parameter RESET=0 ;
& a1 t( a2 g% J9 z         parameter S1=1 ;5 d/ w7 I) b7 A
         parameter S2=2 ;
2 v% ]9 d' L: P  M0 Y) ~1 k         parameter S3=3 ;
! B8 Y$ v: H! g, a( M4 r1 K         
7 }7 e9 i+ `6 K6 `         
. [; M8 v- y. g8 d; B5 r. V         & z. X/ j& l2 o8 n
         ! O3 Q# |2 K6 f, x, m& L
////////////  FSM  //////////) g' y1 J' g3 h. @
3 F! l) k/ r# e2 _  Q7 l
always@(posedge clk or negedge rst_n)
8 b7 M) z3 g! {, p# F' dbegin
; j* `/ O: O1 u9 \" K       if(rst_n==1'b0)
; e$ N: r1 d0 h* W( y: M           CS=RESET ;  m7 v. S( ~/ j! {6 A' P+ c
       else7 c3 U- T3 ^2 z6 q
            CS=NS ;' F+ V; T8 k% [8 Q/ H
end
9 B" X1 x. m% J, v* p                - S3 h2 m: R: d- T9 M
               
; e0 l$ s0 ~8 {8 u& a2 N2 Y
, x8 M( u0 [+ U% H8 V    always@(CS or sw); s# y2 o; v* C5 O1 H
      begin
6 d% J5 D) D; j: o- ?            case(CS)
2 _1 q9 W4 p- E: P9 h' Y* ]             RESET :  begin NS=S1 ; LED=2'b00 ; end
! J) r7 Y: X' M9 k3 i2 S                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  
9 e$ \" L8 ^' s- _: R2 X5 `5 I                   if(sw==2'b10)' K: i) o- y2 T. ], O
                       LED=2'b00 ;* Y" D8 e0 N: E) m+ B( ~
                   else
* L; o9 i; s5 y3 C7 L4 [  ?5 S, ?                                   LED=2'b10 ;  end" c9 r& @' p1 m7 B" ^0 i
                  S2    : begin NS=S3 ; //LED=2'b11 ;
  w# @/ l9 N7 P# y0 o) I                                if(sw==2'b00)
( d' i2 p1 F  V( D; u* {# B$ \                                    LED=2'b11 ;
2 [9 j4 g" I! P, b6 h$ ~; u                               else if(sw==2'b01)$ l: Z2 @% x! N
                                    LED=2'b10 ;
# l+ @8 O& l& g  N/ A7 n: R                               else if (sw==2'b10)
  N7 d3 B8 B' O4 @3 I4 f6 W                                    LED=2'b01 ;, x9 m7 M8 {/ N& M/ l
                               else
' r' O: l! l/ R* f3 X/ m( L                                   LED=2'b00 ; end
$ x$ {; s! N  V" Z0 B9 S$ j3 n! F                  S3    : begin NS=S1 ; //LED=2'b01 ;: c7 O: z( v9 u9 V: u3 i
                              if(sw==2'b01)
5 ]8 }- I2 v: U: C, b( {3 y                                   LED=2'b00 ;: z, V% x7 j" m5 `9 R" d8 I
                              else
/ P5 y. n* T9 m4 P* q2 e8 [  c                                  LED=2'b01 ;  end8 E: H/ ^/ X/ @: d
            default : begin NS=RESET ; LED=2'b00 ; end                   
1 S, t& K5 r& X7 l# }7 z          endcase                                
9 ?- k2 E) D& x# {8 E1 F2 i      end                9 n3 T& R6 S2 Y1 g
               
! H, k0 Z/ b* W0 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-16 06:08 AM , Processed in 0.127516 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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