Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題
* Q+ D  s, S" L% d# O0 _如果我有二個LED燈,1表示亮,0表示暗5 |' C2 G+ z/ ^1 j
樣本如下表,如果我想要控制它每一個樣本LED亮二秒
1 W. f3 [( v/ g5 z並依照此樣本往下依序亮
3 A8 U; ~6 l2 w% \; s' Q! [$ f, o1~2秒 LED1亮,LED2暗
& I4 ?$ @3 `; q' c2 c3~4秒 LED1亮,LED2亮" G7 u" }7 [$ ^! n2 ?( E$ P
5~6秒 LED1暗,LED2亮+ r8 D( N9 m5 ]1 M
7~8秒 LED1亮,LED2暗3 s2 B6 N2 Z% k0 l% X3 `
LED1 LED2# F" h) @6 V8 B; h2 _! d; l! t
 1  0$ }' a! Z4 Z( G' q% m# u& Q( r
 1  1
) w8 I8 @" \1 Y: R, b6 ^4 K 0  18 h4 q: d# Q6 j
 1  0
1 l2 B4 C- q3 |' r$ b# ?- ^且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)
/ X, e& L4 {9 p; m/ c& Q如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行
7 b9 f0 D" Z5 Q) M" s" K2 {: _用verilog程示要怎麼寫呢?
$ o! A! w! k8 L: A9 _# l0 `7 Q有高手可以教我嗎?
8 i7 \2 U9 {; L3 F% y( h感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
8#
發表於 2012-3-14 16:02:27 | 只看該作者
其實最簡單的方法就是寫個counter,寫個判斷式來控制哪個LED要亮即可。
7#
發表於 2012-3-13 23:04:23 | 只看該作者
verilog lejie yidian ....yihou keyi xuexue
6#
發表於 2011-12-8 09:19:28 | 只看該作者
嗯!不錯的建議!可以好好參考!
5#
發表於 2008-7-6 15:52:24 | 只看該作者
頻率快慢可以控制明亮,你可以寫幾組除頻器,來切換~~
4#
發表於 2008-7-3 15:43:32 | 只看該作者

我也是新手 大家一起努力

Dear Sir ,
, r, Y; D* F, f; D6 r我用FSM嘗試,simulation也成功     
4 I: L  m$ S& |# x" |# z參考看看吧
/ G: o: c: n2 g! ]* b# V9 R' S! H0 n1 d& v- B/ [
module LED_Ctrl(clk, rst_n, sw, LED);+ L5 U( A4 }0 W9 w/ N4 U( {
    input clk;( x, B" G9 Z% w% |7 n1 R. b
    input rst_n;& E, ]& o% P$ i
    input [1:0] sw;  U& E" z1 r8 r/ d& U" J+ L- A$ e( [
    output [1:0] LED;* p0 |  q# B9 a+ J
         
: S% N8 r6 D* D) @5 _8 u         reg [1:0] LED ;8 N! ~& X, k7 y; Z& O; K
         reg [1:0] CS ;  b+ C& ]" N3 e2 u) D! I
         reg [1:0] NS ;0 C" D$ s7 Z- R- J
         * x' i, h" M8 X$ O4 }" F
////////// STATE //////////////2 ^4 u5 e! k/ }3 w8 H3 p4 X0 Y" O
         parameter RESET=0 ;
6 W& {  g5 R$ S/ K4 m' d" W         parameter S1=1 ;
6 |0 i6 c5 T- J' P) z) h! @+ u2 z         parameter S2=2 ;: _( t3 J: }! H; [3 @  z) A2 M% L
         parameter S3=3 ;
/ I3 j+ D/ ^2 U. z7 q: o4 F9 w         
0 \3 j4 i# W! C8 N! |% W; N. F4 V5 }         
5 e- x7 s8 n4 G3 B         ) o0 R3 v$ Q$ i' y7 t- J
         . y$ ^- j& a- B" e4 i
////////////  FSM  /////////// A- I2 q  @" J6 \5 B$ B

4 C4 k9 U, B9 m2 |: o7 \' a4 Talways@(posedge clk or negedge rst_n)
+ a5 `0 ], i/ x. }% O9 u  w% fbegin/ s3 `/ e  L) c/ _5 e; N
       if(rst_n==1'b0)
0 Z1 m6 V: B& R8 q! Z           CS=RESET ;
4 r1 M1 {) ?4 }( P       else
# K5 C: T7 r( @, A' ?! y5 S            CS=NS ;
, s# C$ }1 c# C! z, T! Yend / j8 q/ Y/ d& Z* s) [6 w
                ) O7 G# V# v  B# E2 [
                # s/ \4 Q% Q9 B2 w4 F

" ?( m  ^5 Y( z    always@(CS or sw)/ K. M( w' F/ e, [2 W! N
      begin
1 @0 o) X( w1 j4 {3 E/ B3 V. T- Q4 c5 C            case(CS)8 ]- F* ^  C9 w" F/ S6 o
             RESET :  begin NS=S1 ; LED=2'b00 ; end , Q" g$ w( ~" U5 N) q- E- p& ]: J
                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  
) N+ f/ A- L9 @% Y4 r( J) E1 O                   if(sw==2'b10)# m! A' R, t0 e3 m# F% X/ H
                       LED=2'b00 ;
+ P6 Z7 R) `; t) y  J& g- C4 G                   else
  C0 g! i2 N- z4 ]- O                                   LED=2'b10 ;  end
+ z% \) j! M1 i# g                  S2    : begin NS=S3 ; //LED=2'b11 ;/ L$ [/ i* z# s. z+ n  Y! b
                                if(sw==2'b00)7 L$ E( p8 C: U, \
                                    LED=2'b11 ;
/ R& Q: D* z4 a. u) A7 L/ n                               else if(sw==2'b01)
0 g2 r5 Z; V) {3 m: x' G1 @                                    LED=2'b10 ;
& n& S# V) d& u) B                               else if (sw==2'b10), N" P& y9 s" r( O
                                    LED=2'b01 ;  ], X- [& U+ {
                               else " I2 y1 j7 B$ F& u* g( N; `9 N
                                   LED=2'b00 ; end
2 l$ L8 r# Q; ~, N* f; }                  S3    : begin NS=S1 ; //LED=2'b01 ;8 ^) @  C" p$ ]9 a" R% n
                              if(sw==2'b01)
8 q+ z3 [6 x  ]9 F3 j7 X1 ]/ i                                   LED=2'b00 ;5 i& F- v, d5 o& |  M
                              else
: v1 ^4 ?6 r) y/ a9 L" v. N, W$ B                                  LED=2'b01 ;  end
7 q& r  e: C; @- X. H( h" t% n, b            default : begin NS=RESET ; LED=2'b00 ; end                   & k" C! [- P- T7 s  D# G! f
          endcase                                 ; g/ d  @7 n7 h7 [4 e/ Y. n8 \
      end               
0 u) |# I* {6 K               
! o) ~' p7 v% R0 ]- Oendmodule

評分

參與人數 1Chipcoin +3 收起 理由
masonchung + 3 熱心回覆!

查看全部評分

3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

用state machine配合組何邏輯電路即可。
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?
# V. ~! {8 C* E  m4 B9 G' i
4 P8 x: V( F; t2 E7 O  J; d6 u2 @2 S不太常用verilog...哈
% y, A: `3 h, e5 J: n5 A5 ~( d6 n4 R! t. P% v7 Q2 }
不過看起來就是個有條件輸入的counter而已
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2025-2-13 02:08 AM , Processed in 0.171601 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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