Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題
6 h; g3 r6 R* H1 E8 s如果我有二個LED燈,1表示亮,0表示暗4 @, E; y$ F6 x" h
樣本如下表,如果我想要控制它每一個樣本LED亮二秒
$ V' P0 n- K/ v1 D' W( H9 ]並依照此樣本往下依序亮
8 l8 t, ], e4 B- t0 L& ^1~2秒 LED1亮,LED2暗
0 O# q6 j4 ]: s/ G# @7 S6 S3~4秒 LED1亮,LED2亮+ V/ f- q4 S  b+ v7 Y1 k
5~6秒 LED1暗,LED2亮
  o* P8 D6 C$ k$ \1 H7~8秒 LED1亮,LED2暗5 V7 D) M. I; ^* [+ V
LED1 LED2
- Y0 n4 S" M8 D 1  0
2 j2 A; U9 o! E" V0 n, N( r# C 1  1
5 l  O9 m, }6 n/ a( M/ w 0  12 H0 n" p5 F1 y  d
 1  0 0 l* u4 f: |* c) p2 e
且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)
/ s/ a* i. `! r3 O如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行
1 V4 v" P% d8 a: T用verilog程示要怎麼寫呢?
! p) h. c. L  _! @. X- L$ L0 S有高手可以教我嗎?
: i+ T$ U! d+ j. m感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?0 P, v" M* Y! U) b1 i# U. I

# Y, J+ G; ^- r7 g0 c不太常用verilog...哈
( f! c; a: V3 R& @, E! ?5 y2 t7 t0 E) R- ]; R; \  H
不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

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

我也是新手 大家一起努力

Dear Sir ,. V2 z  h' D& Z# r% c
我用FSM嘗試,simulation也成功     / O4 D4 e  q" N3 c
參考看看吧+ q" f! ^4 r* S$ P. G% |% d- ]

  [$ r, N" f3 N, {  P4 Q* wmodule LED_Ctrl(clk, rst_n, sw, LED);; k  [* g+ t8 d. s( O
    input clk;
7 b+ q8 h0 a. g- A; R    input rst_n;6 G. l  ~1 y( ^, I- N# j
    input [1:0] sw;* Q4 u4 r% ^: ?) w
    output [1:0] LED;
. {# L  z+ D+ ?: G         
# c2 x6 w  x' e% I2 r$ j2 C" O8 r         reg [1:0] LED ;
" X" t2 }0 n7 q. N5 c         reg [1:0] CS ;, \6 Z6 T7 z6 E& k/ u/ w& L4 Q
         reg [1:0] NS ;
3 X2 Z* F9 M& x, s+ s         6 i& m1 y3 Q; ]% V
////////// STATE //////////////* O0 g+ ^. m* J$ F) K/ X
         parameter RESET=0 ;- s4 q1 L. S( Q) X0 @
         parameter S1=1 ;/ h) s0 V, J2 @
         parameter S2=2 ;1 V" X7 A3 `" b: Y2 ~0 p
         parameter S3=3 ;
4 |# T( Y. F: G5 _. e1 n         " c2 S' r8 n7 @% R9 L: R+ U1 z* @
         + ^! I; K8 ?. i
         $ C* a) A# i' _. L! V
         8 H; ?) s/ u$ q2 `3 b. {
////////////  FSM  //////////
$ ^' x/ ]7 d  F' l* w5 d# Q
) y6 Y1 O! g7 u) b4 b& l6 halways@(posedge clk or negedge rst_n)8 h% t& N( A% r( q7 G
begin  ^! Y# I1 U0 V1 {3 P
       if(rst_n==1'b0)
# o: N7 j9 y- s9 U           CS=RESET ;
/ P& [1 H+ [5 f7 A" R" q, E       else1 v0 t4 ^9 X! K: f! {
            CS=NS ;
: f% H% a/ D# s! V; z/ {* ^& Bend
% f7 _; c) ^: H0 E% y) N               
8 u% e3 l  q+ h' s5 V               
; c: R, B# h' p/ P+ C3 W5 R% h# k, [- y9 V- P- Q
    always@(CS or sw)7 z* h1 }# \2 X  y% t2 V# O
      begin
6 P2 z: N& R% ?" L  K2 L8 x1 H            case(CS)# N0 `( e% P- T9 p3 V
             RESET :  begin NS=S1 ; LED=2'b00 ; end . e; B5 [# x9 |3 O/ [: [
                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  
4 b( V9 y% R* V& U! |                   if(sw==2'b10); I4 g0 z( S# i" B
                       LED=2'b00 ;, |  G0 t  B& w) N8 c" Y; F
                   else # l  w3 K, @" U6 a/ e) G
                                   LED=2'b10 ;  end
& B/ N: f  R: ]7 b- L                  S2    : begin NS=S3 ; //LED=2'b11 ;" k& g3 {1 w- w5 L# u3 b( l
                                if(sw==2'b00)
4 k7 f& H& p  I, ~/ s7 v6 t8 n                                    LED=2'b11 ;
3 p; x( N+ N2 e                               else if(sw==2'b01)
+ p' Y* j& c: u                                    LED=2'b10 ;
" p- ^2 A, R3 P0 v  G) I                               else if (sw==2'b10)
  W6 i0 T" r. z! h& N3 t7 o" V7 n                                    LED=2'b01 ;! ]; p3 i& N5 n5 w# f; g2 P
                               else
- F7 L* y; V' ]5 J                                   LED=2'b00 ; end
) `' C3 c5 u6 t8 d' D                  S3    : begin NS=S1 ; //LED=2'b01 ;
: `9 ]' z( s0 p- \% a, z                              if(sw==2'b01)( E2 g" L6 A. Q& b
                                   LED=2'b00 ;! t8 x4 f3 |5 Q5 M" s' u5 g7 B
                              else
# m0 X! U5 Z/ ?0 b* L. y                                  LED=2'b01 ;  end" P2 S8 j. p, i. I* \% Q9 z' J1 P/ s
            default : begin NS=RESET ; LED=2'b00 ; end                   
4 }" h3 B* t( }$ p4 S5 j          endcase                                 0 h7 a; c- I0 B5 Z, L
      end               
' H, q0 q, S5 p8 w# K               
: Z* N9 P. _- g  [! n2 Q  G1 G6 Fendmodule

評分

參與人數 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, 2025-2-12 11:42 PM , Processed in 0.171600 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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