Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題5 V+ t+ E$ r: |7 H
如果我有二個LED燈,1表示亮,0表示暗
5 x/ j1 S9 I$ W+ F9 \, k5 J2 d5 ~樣本如下表,如果我想要控制它每一個樣本LED亮二秒
: O2 z0 w5 Q$ F3 C並依照此樣本往下依序亮
( ~& T4 {4 _: \# J& }1~2秒 LED1亮,LED2暗
: h0 Z, x$ T+ }' G' Y0 d* m( Q7 ?* t6 b3~4秒 LED1亮,LED2亮) f& f9 ^* T4 N! X6 }* q# l
5~6秒 LED1暗,LED2亮
! Q$ v; q. |' V7~8秒 LED1亮,LED2暗
5 Z1 c' ]& R- P, W3 x# yLED1 LED2
% x1 v+ X9 w6 W  @6 L: m4 n 1  0
& J, `# K/ r$ M% |* t 1  1* s, n3 E0 C9 H5 C) ^
 0  19 h2 y/ b3 i, p
 1  0 : w8 H4 M1 M; Q4 {* q3 `& k9 l
且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)( e( _! `8 U. h1 d7 B
如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行
4 c; M% b9 s& z# d1 f) `/ f用verilog程示要怎麼寫呢?( n7 w5 |. e  r: t
有高手可以教我嗎?1 f9 w5 V2 O  ?, l6 C2 w5 F" F
感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?7 H% C, j# H' z9 {/ _

) w+ e6 W9 n" u4 A" n不太常用verilog...哈3 m! r( b* ]% ~' t% y
2 n0 b4 N0 t! ^2 W3 W
不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

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

我也是新手 大家一起努力

Dear Sir ,9 t2 @7 m6 Z& a. w/ ]6 s
我用FSM嘗試,simulation也成功     + i: `4 L3 P, M
參考看看吧
7 C* p, x* v! t5 s) m
- E& U/ n6 f. I5 ?/ H, Q( Y) Hmodule LED_Ctrl(clk, rst_n, sw, LED);
  i9 K8 t. `6 t8 }1 L% ^+ D( }    input clk;8 G& h" i, ^% E0 r" k- |+ v- M
    input rst_n;
; D# x, G7 W( N    input [1:0] sw;- b, V" U5 E- J7 P2 E5 F8 a
    output [1:0] LED;, }6 i6 i* ]$ P7 `
         
4 _. U4 H+ |8 \- t: c         reg [1:0] LED ;
9 T6 A  A, n2 e6 r0 j& c9 C1 O( ^& U         reg [1:0] CS ;
" t* b+ Q* t6 G. T3 @. O         reg [1:0] NS ;2 N0 u( B' }# J+ t* V7 a
         , a0 K. I" Q' l6 G3 }/ _  A2 V
////////// STATE //////////////, c& |8 e+ @6 j/ a: q8 V8 w
         parameter RESET=0 ;
$ w* b: x: u! b: B6 @         parameter S1=1 ;
, Y) {; C+ M$ A- B3 X" J         parameter S2=2 ;
7 G, |- e; p- Q5 V7 w         parameter S3=3 ;! O% n  y+ J6 z6 S, S: Y' u$ c
         
& N/ I: t- D2 {& y# U- A$ V         
$ W; G3 b6 J. H' d( t         : q5 \% c. O, i; r) a# ^9 Z
         & m  R. t$ i2 I" U6 S
////////////  FSM  /////////// Y2 V3 u( d9 ?
! {3 x' D8 U  f  a, P' [
always@(posedge clk or negedge rst_n)2 f: m) e8 W$ F0 ]
begin9 g2 W7 d; [$ i/ S1 z6 Z
       if(rst_n==1'b0): B7 s+ C4 j% T8 x0 l8 o5 |. G1 S
           CS=RESET ;$ c- j! \7 ?6 B, ]
       else
3 s& A+ t7 v7 W- F+ M* V            CS=NS ;
, Q) R) `" @1 x9 X' iend
. D  U" {5 T+ ]' T% Q3 E) D                0 l+ B" N9 j# N1 f# Q# B; H: a
                : W! z. Z* n- s# q) ^: |
# y2 [6 n4 w1 M4 I; i
    always@(CS or sw)8 E3 ^  v4 Z; O4 }! O& D; b
      begin
! `, h9 `0 D9 z' v' d; ]7 k" e# o            case(CS)
  o% \8 s$ F" h+ W0 C' v) `$ u             RESET :  begin NS=S1 ; LED=2'b00 ; end
/ l; l3 q/ j# j0 \1 M5 B4 e                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  
) I9 I8 \2 I& F: c- a# ^$ V% d  M                   if(sw==2'b10)2 ~9 L6 J7 i; t+ Y$ ^- S1 @2 _' z5 \
                       LED=2'b00 ;8 H  C( [8 M, }8 Q
                   else
) o+ u% \  M& N( @                                   LED=2'b10 ;  end# e8 Z1 U8 ~+ s9 j# A! `. H; V8 C
                  S2    : begin NS=S3 ; //LED=2'b11 ;
. h- l$ j4 R! W, L                                if(sw==2'b00)9 N/ H- \7 n% U3 a
                                    LED=2'b11 ;; c  J) D' K5 {8 }5 p" }
                               else if(sw==2'b01)" p0 V' _4 u5 B$ W% r( {* C
                                    LED=2'b10 ;  D2 A2 `  z; B: R2 ~$ d+ E* r
                               else if (sw==2'b10)7 K3 f0 `2 f; r
                                    LED=2'b01 ;, `. u" `3 w* @# v$ S2 c0 f
                               else 4 l2 P; ?5 L; `- a  `$ S. U
                                   LED=2'b00 ; end
7 z6 W* b; K: c7 K8 i( B                  S3    : begin NS=S1 ; //LED=2'b01 ;9 N5 A5 ~8 S9 z& a: B* J: B
                              if(sw==2'b01)" Q( E: E1 h3 F1 v: K5 T8 f
                                   LED=2'b00 ;
) d; Q1 u; d, x+ E6 `                              else
1 h) o1 x, p' H' c& M: X2 M8 |                                  LED=2'b01 ;  end- o0 b  @/ S" k
            default : begin NS=RESET ; LED=2'b00 ; end                   
/ |! a: {3 x$ L# X          endcase                                 & }7 {' f0 c. h+ J! |$ _
      end                2 M4 H" B2 `( O* K% _; O/ g  ]( L
                6 a% A$ ~( F! g2 y4 B
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-6-5 01:55 AM , Processed in 0.123015 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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