Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題
4 D; _7 D2 ^6 M9 U5 J+ J如果我有二個LED燈,1表示亮,0表示暗
' r, \/ U# v* L  _樣本如下表,如果我想要控制它每一個樣本LED亮二秒0 h9 P3 d3 S2 `2 M2 w
並依照此樣本往下依序亮
. a) c* K4 V8 ?! }1~2秒 LED1亮,LED2暗+ q! O* A7 ^7 L1 M; L3 ]
3~4秒 LED1亮,LED2亮: Q  E4 V# \  |/ G  M/ L. h) r! Z
5~6秒 LED1暗,LED2亮$ n* F- ~1 l" V$ Y' f$ D9 \
7~8秒 LED1亮,LED2暗2 \3 x, K9 y3 l$ ^6 {: c1 {
LED1 LED2
) R% X, p  r: ~6 h 1  0
9 ~9 C5 ^* d  c2 P% T% y7 A 1  1
. T! Q6 a$ a, S* m) G, d: T! Y: v 0  1: [* J0 O  d9 B8 f
 1  0 & T- _4 S' ]6 R; O! O
且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)& @7 G/ [& M, S- ^6 g
如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行0 I/ m/ x! h0 \! Q  }9 z# _
用verilog程示要怎麼寫呢?+ |6 L& K+ ~6 x* {
有高手可以教我嗎?& Z6 r& k5 T% c+ N
感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?
& D- `% o1 T' |% H5 H' z4 b/ {: K1 ^$ G5 _
不太常用verilog...哈
0 Z' ?, }4 ~, p( K
7 @" j6 z$ x" d! z2 ^0 q不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

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

我也是新手 大家一起努力

Dear Sir ,
: m- p3 A5 x2 ?) D' a$ b* {0 k) F我用FSM嘗試,simulation也成功     
3 q7 B  P3 ]4 F% l0 y參考看看吧
" S7 V- Q: U" H# u7 ]% z" r- m+ d# ?
module LED_Ctrl(clk, rst_n, sw, LED);1 q; k7 S; F3 R. F
    input clk;/ z1 j3 y1 v: x! U. Z: J' d
    input rst_n;
& m) A5 m8 p& O/ e4 O    input [1:0] sw;7 a& |2 @2 Q0 G% J1 M7 t$ g- B. }
    output [1:0] LED;
& I& P/ S0 ?% |. u1 V9 o+ F$ x$ s+ ]         
3 H. S* D: ?4 O- p, m+ l         reg [1:0] LED ;/ U* M' R5 i: p- B! e
         reg [1:0] CS ;) e7 N3 l" I3 P9 j- q$ B
         reg [1:0] NS ;" C+ K. Q" M1 s* a5 ?  y
         
  l4 q; I* a, q! a; N////////// STATE //////////////
  H3 S4 H+ z/ j) O: {' u         parameter RESET=0 ;
4 C! D) l, u2 _' m4 y  C7 c         parameter S1=1 ;
6 w4 C7 A; u) N8 s' d5 t2 N         parameter S2=2 ;$ |! r2 w0 ~5 F; y3 W0 v
         parameter S3=3 ;
: H" J( Q7 p8 s- Y( J         % x7 e# x: e0 o( w4 [
         % K( w  Z- l, {* w& J( T
         
. y2 L( q" ?, s; G. l/ _: p         
" r6 [& [7 }! O) Q* }! W////////////  FSM  //////////
% M9 N/ _2 u( G1 x/ J7 k
. t6 D' z& E' Z/ Ialways@(posedge clk or negedge rst_n)$ ?1 P! ?* F" {5 T4 L
begin
- s* c% B" K# p: }1 i       if(rst_n==1'b0)1 C8 t8 K9 a6 p5 Y" d
           CS=RESET ;
& F2 K' _. y# x$ f+ S8 {/ j       else! |, _4 n7 S& S6 ~% ~6 [1 S% v
            CS=NS ;
& W9 v, h- I) V; D& Send , e  X. X# p! V. v$ f( T- V
                2 d: t, M' g2 A: C+ N: [  L: f# y0 o! U
               
7 A. j% E1 g9 r# O9 M$ Y) r0 D( o: A, J
    always@(CS or sw)
/ H1 o4 {" R( [' x0 q" U      begin
1 |; r$ V. X) W  V3 y1 Z2 M            case(CS)4 K. W( U3 L, z& |& O
             RESET :  begin NS=S1 ; LED=2'b00 ; end
/ A* a, f8 T8 I& D% \. R                  S1    :  begin NS=S2 ; //LED=2'b10 ;                    _2 v$ S. S' s; }2 |
                   if(sw==2'b10)
( D3 `; g# o6 {. r" f                       LED=2'b00 ;
3 l& I  b0 \: W0 L                   else
  Y/ H$ V4 p9 V; F' N4 ]0 ]5 y% @                                   LED=2'b10 ;  end
/ y. b- S* R, o5 W+ c' U) n                  S2    : begin NS=S3 ; //LED=2'b11 ;- e: t0 O0 S( p) e; |- W7 T$ H
                                if(sw==2'b00)6 F! s. D7 E+ ]/ |
                                    LED=2'b11 ;
& ?* v+ Y( Q% v5 g* U" S4 ]0 _$ v+ H5 k                               else if(sw==2'b01)
5 f5 h3 x, z$ r( ^- T                                    LED=2'b10 ;9 x6 K6 ^1 D6 o* j3 Y, f# s# W
                               else if (sw==2'b10)* j4 g$ Y6 X8 {6 @! g3 f
                                    LED=2'b01 ;7 q: X; ]. a  l
                               else + K) Y+ ^; O1 \/ _7 A- H
                                   LED=2'b00 ; end
, @: u5 }" _! ]9 a9 d$ _- P                  S3    : begin NS=S1 ; //LED=2'b01 ;' ^7 B4 _' I7 J% @" f3 p5 ~
                              if(sw==2'b01)
& Z; j( C6 r3 E* s+ K                                   LED=2'b00 ;, e$ |4 {+ \, ]( M# |( W7 i+ R/ g
                              else 0 m6 L0 h& u1 G3 b/ D$ I- t
                                  LED=2'b01 ;  end; N) Z% F& ^9 z4 m  a( z2 @# k
            default : begin NS=RESET ; LED=2'b00 ; end                   
3 ^1 P6 F+ ?- t& H0 P          endcase                                
( L( W; U( b" `& S  P      end               
0 K* T" k1 k. R, u: {                6 o# B* r/ f( q( y! f- T+ 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-29 06:18 PM , Processed in 0.116515 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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