Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題
9 d- E: f6 S: z: J- a3 l如果我有二個LED燈,1表示亮,0表示暗7 f# W4 }2 x: @5 r! S
樣本如下表,如果我想要控制它每一個樣本LED亮二秒4 O$ F: X/ R6 l5 ^) _# K
並依照此樣本往下依序亮5 a4 n- O. P+ r' e1 e2 r% \
1~2秒 LED1亮,LED2暗
0 q! n; |1 `3 S- u) H; `4 k3~4秒 LED1亮,LED2亮7 K7 z' ^$ r( m- N# O; |! v; k
5~6秒 LED1暗,LED2亮: Q( a$ P2 Q! k' F% V
7~8秒 LED1亮,LED2暗
3 y) r- y8 K, A. jLED1 LED2
$ u# O7 ~9 v- {3 T' F" _ 1  0, \5 u% o. v' K$ a/ B/ c
 1  1
9 t4 ^. k/ ?: I! W/ u& |: f 0  1
3 Z; b0 g+ j4 ~ 1  0
8 F+ V; l7 P1 T且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)
* a+ y9 d6 \& d$ X. _* y* V如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行
6 D  A* j5 K( ]$ f5 p1 c用verilog程示要怎麼寫呢?
! q6 C# M, `* O7 ]. |" ~有高手可以教我嗎?0 h6 s* f) W3 v% w" f  d3 c: i( \
感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?* H4 C- X& s/ N! f: T

1 k. {1 }( X0 G9 q( G; `# T1 a不太常用verilog...哈+ h: E$ I: m. [; o. |0 k/ i+ O
+ S$ b; w7 J# ~$ V% m; d
不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

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

我也是新手 大家一起努力

Dear Sir ,
# {  ^3 G8 N: K2 k# _. W+ D8 a6 r. K我用FSM嘗試,simulation也成功     
7 y' L% d; Y/ f7 Z( V; U/ e" V: t$ ?參考看看吧3 D( E. q% T  Q7 R

' [3 |3 W, |( jmodule LED_Ctrl(clk, rst_n, sw, LED);, S+ S% i. K* V( K  [2 q
    input clk;
% `& t/ h0 C, n0 l3 Z. w# X5 J    input rst_n;
) e9 {% E( T, s3 A    input [1:0] sw;3 ^4 ?2 }) I) W
    output [1:0] LED;$ b! d; ~$ y8 C/ b( f
         9 J4 d$ y  f- B8 y, j
         reg [1:0] LED ;
7 @/ m1 N; T( ^+ t( u% ?         reg [1:0] CS ;, e& o- U8 g6 F) P9 O( l
         reg [1:0] NS ;; v/ v/ \9 V+ W$ [( M* ]' t5 Y
         
+ C/ `- n, ]2 n3 X9 ]////////// STATE //////////////  o  X% b8 R/ n9 |3 t! I
         parameter RESET=0 ;
. E- P# p4 x+ b4 b) y3 O% W         parameter S1=1 ;
4 @1 K: e7 I% F5 m$ |         parameter S2=2 ;2 [* `7 f! J9 H/ V8 D) ^; n
         parameter S3=3 ;( x3 O+ Y; l& O3 o3 S* _3 P
         ) {; z3 R3 N& ]8 R
         
# Z0 ?# w! u0 Z7 W$ ?+ c         
8 Z5 U+ y6 F" s% w         ) ?' I* a# x6 R) T8 B/ L% o
////////////  FSM  //////////
* N$ M  A+ \  V7 j. B
* q+ \" T( ^8 |2 i* n' Talways@(posedge clk or negedge rst_n)4 h; p% R4 K: e2 ~) |
begin
( @; y* \3 ?4 b       if(rst_n==1'b0)' u! A5 v5 W: h9 ~5 j
           CS=RESET ;9 B% b0 D6 d- _, h& y6 b, K  ~- M
       else
/ |. v0 j! R/ K" T            CS=NS ;7 k! @+ j  c- K( _4 ?' x
end 0 a3 A$ Q+ u" K" I: Q$ I
                ) @; j% d& L4 w' B# E$ d. G
                ; T" u) ?7 l/ A& D% c* t

2 w1 ^$ G6 Y0 W/ y    always@(CS or sw)0 b4 l6 M- j* s& C% j/ l5 Q8 c
      begin
; i5 Y- J1 t4 X! g            case(CS)7 Y& a' U) N/ [# |5 Y( N
             RESET :  begin NS=S1 ; LED=2'b00 ; end
7 \0 j$ }/ `4 u5 _6 G+ ?                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  
( z" k+ z# A; [0 l. l2 g' @# K" U1 g; |                   if(sw==2'b10)
0 y4 g3 {0 W7 F+ ^4 x                       LED=2'b00 ;
, U5 B7 F' K! n) O  N7 j                   else
+ G+ D# e  l6 H) ?4 h2 Y8 s5 O0 S                                   LED=2'b10 ;  end" Y$ |3 G$ y/ A- Z
                  S2    : begin NS=S3 ; //LED=2'b11 ;
9 m& }! E" Z9 W. v                                if(sw==2'b00)
) q) {- \" Z' W& ]7 F                                    LED=2'b11 ;4 ^' O7 H2 ~) `9 K
                               else if(sw==2'b01)' _2 W2 \- ^8 h
                                    LED=2'b10 ;
5 `1 k+ E% S/ u: e- M1 }6 T- o                               else if (sw==2'b10)
- R% y; r$ T- M, Z                                    LED=2'b01 ;
8 O" F" c- a, b) @: s- A6 M% C8 e                               else
3 i9 x% s* F( t/ f& l, \                                   LED=2'b00 ; end  `* Z2 H% x+ a3 G# m
                  S3    : begin NS=S1 ; //LED=2'b01 ;
9 ?7 [) S5 X% g1 h3 l9 q, Q# A1 l" m                              if(sw==2'b01)! h, ?; v0 c2 d; f
                                   LED=2'b00 ;
+ i7 X! D  }2 W                              else 5 O' _6 r1 X, v6 ?
                                  LED=2'b01 ;  end, ^' v0 ~  Y5 B2 g$ a# f, |6 z
            default : begin NS=RESET ; LED=2'b00 ; end                   5 X) r5 B% J9 @' U6 f) r
          endcase                                 3 |# L: s" q! o% Q2 H4 c4 c. }
      end                2 }' I: l/ m& v+ z) E
               
# z: f# r# [3 V, u: g3 D8 bendmodule

評分

參與人數 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-6-5 08:49 AM , Processed in 0.132017 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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