Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題5 {) c5 f' P/ `" a
如果我有二個LED燈,1表示亮,0表示暗% s! a' `* K2 h* l6 K
樣本如下表,如果我想要控制它每一個樣本LED亮二秒
+ m: f& O1 J; ~' t' n並依照此樣本往下依序亮
; M8 O# y+ _$ w( `( V( R1 p( f3 F+ P1~2秒 LED1亮,LED2暗
6 n# G* @5 `( a& A/ s1 w% Y3~4秒 LED1亮,LED2亮
! P5 O2 f7 n# T! s+ b! p5~6秒 LED1暗,LED2亮! e- m4 E! ~4 k# g: k, t& T( ^
7~8秒 LED1亮,LED2暗
7 ~, z: n3 _7 n/ x8 C% x( HLED1 LED2) p, v1 c- ~8 k5 X# B
 1  0. h" w2 X$ C7 F& K% g* J
 1  1
, v, j; o, r/ V' D; `6 z% g+ ` 0  1: c! j: I+ C) r& f; _) |; {2 s
 1  0 2 E/ n! H* [& r/ M: o$ R: ?) g
且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)
( w5 X! ?, i6 k5 a2 o, A# L! B如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行
9 D7 Z7 W1 f5 l' k( @7 W3 ~/ N2 s# Y用verilog程示要怎麼寫呢?9 V. L8 V2 B( n& U# G
有高手可以教我嗎?
! W2 B, p8 U4 d; K4 R! ?感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?+ e9 O2 L2 t& z

8 y6 h! u  m5 T6 O- T- \不太常用verilog...哈
1 N( s( V- g0 ]8 u& X, K3 R
) q3 L5 ~# O' l5 ?  W, j不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

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

我也是新手 大家一起努力

Dear Sir ,9 {# ~1 s% C- T- N- j5 R
我用FSM嘗試,simulation也成功     6 x; M! ?7 u$ H( X- M
參考看看吧. [* G2 [, d% h0 f! U
% z2 Z; j! \) {2 \% n, k# x
module LED_Ctrl(clk, rst_n, sw, LED);6 _% O' _; q/ v; [, v  c! v3 v0 ~* k# O
    input clk;
4 ~6 E/ R  O1 X6 K$ e  A' n! Y, V    input rst_n;2 c% q! p  {, e
    input [1:0] sw;; d1 l# Y. M* H
    output [1:0] LED;  T* X0 @1 r* f5 M& j9 ^
         
. O; s- R) |1 O6 A" n; D% x% Z5 f         reg [1:0] LED ;* @! L% c# S  L1 C; V
         reg [1:0] CS ;
) ?6 h/ k0 g& j6 V4 s2 \; I. L         reg [1:0] NS ;' h8 y2 s2 R) v% S' ~( O
         
. R4 ^' G4 i3 p- g////////// STATE //////////////
- s$ m# F* g8 n. z6 C# ^' S         parameter RESET=0 ;: a/ X7 v: e3 ^# C7 |* V
         parameter S1=1 ;
: @- r* W5 g4 |. \! ?% V; @         parameter S2=2 ;
( w# t; i  v- t. Q7 d         parameter S3=3 ;
( W$ @. ~# |# ]+ J" I9 n         1 v: U: @, n* d- e+ M1 }9 b7 {
         / O# P* \8 @7 v7 w* w9 [
         
7 |) `8 Z, ^! e% A8 V3 b- h( E         8 h8 g. _. o1 h9 m$ p, t7 x
////////////  FSM  //////////: [0 ?( A. Q  N4 v2 C/ c
2 T/ V3 n3 l2 G7 e  e
always@(posedge clk or negedge rst_n)
5 T3 T* E2 l, x$ pbegin' p2 X, I% o0 J0 ~% k
       if(rst_n==1'b0)& N5 _1 I" {/ T6 I2 R5 \2 {
           CS=RESET ;
: [9 Z" |0 L8 ~! x& ]$ G       else& m: J. C& m% X# \1 A# j
            CS=NS ;
7 ], Q5 E# V" n! S8 S* h2 x/ Kend
3 s3 O: U8 t4 I                5 O: P' ~; k. a# t$ B% Q+ L' f
                ! Q' {9 z; i) {7 _* r8 f! z3 T
- W6 r( p) q- q, L9 t4 T5 h* ?. C
    always@(CS or sw)6 x: E2 |. i6 q+ k# y
      begin
3 i( b( l4 k# F6 X            case(CS)
0 b* v: k5 q1 S5 {" h4 D             RESET :  begin NS=S1 ; LED=2'b00 ; end : B0 z/ K2 k4 ?& i
                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  
6 s; Z; T$ ~, n& B4 ^  o/ c1 u( m                   if(sw==2'b10)- I6 j8 X/ _) z  y: g
                       LED=2'b00 ;
0 U& l! C$ f" z+ `                   else 9 [* w  Y* U5 A& Y
                                   LED=2'b10 ;  end7 ~- S/ \) o1 r: J/ J" q
                  S2    : begin NS=S3 ; //LED=2'b11 ;
; Y6 `2 f$ {$ o8 }& c& Z+ Q, C) R% a' B                                if(sw==2'b00)
& s2 u$ A' H- V; t/ g                                    LED=2'b11 ;
. N2 l: c& g: u: q( ^' [                               else if(sw==2'b01): r! z' `9 B5 d6 p) t
                                    LED=2'b10 ;, ^9 T5 v  {- x. L  {+ \5 _
                               else if (sw==2'b10)" L! b3 d( {$ W' r, n
                                    LED=2'b01 ;# b3 E3 ^" M9 I" w! G* ~
                               else
) z) ^7 i! ~1 @6 ]0 q                                   LED=2'b00 ; end: T$ J. n) e- z# [: Q5 Q
                  S3    : begin NS=S1 ; //LED=2'b01 ;8 Z2 k' \! E* O+ k1 w' o
                              if(sw==2'b01)
2 {% h& n; I: ~2 N                                   LED=2'b00 ;
6 m, f. a) D3 Q) }! ?* R/ S: n5 w  Q                              else   U. p1 I( {, }1 `9 X* J
                                  LED=2'b01 ;  end7 B' l2 t4 J& A/ L% B8 f  k; G% x
            default : begin NS=RESET ; LED=2'b00 ; end                   
1 v& c: Z, h7 e, l! v9 u          endcase                                 , z2 z( c, Y! O; N1 I7 @/ V
      end               
- j2 {! S9 \" G0 e# ]                ( \  W7 H; W: W9 T) z7 d* `/ E# [& M
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-4-27 04:37 AM , Processed in 0.112007 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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