Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題
0 A" X: N  o& `: P! X4 k3 t) W' Q如果我有二個LED燈,1表示亮,0表示暗/ g( i$ J- M, [5 R, V" h  D
樣本如下表,如果我想要控制它每一個樣本LED亮二秒) t# u4 D6 L& @2 O" d7 G/ a
並依照此樣本往下依序亮; J3 g/ ^: Q1 I! e
1~2秒 LED1亮,LED2暗
0 t# T/ z! U; M; L3~4秒 LED1亮,LED2亮0 x$ j8 A  p+ ?
5~6秒 LED1暗,LED2亮' d4 e! u: v/ P
7~8秒 LED1亮,LED2暗
. m6 d( e) j: @( u7 z+ mLED1 LED2
& [" r9 {* r' ]1 l 1  0
  z" ~( o: a: p 1  1# U4 o- N; C, b, x
 0  17 t2 U9 ~) g6 L9 P
 1  0 : t4 ]1 m2 H% t. b/ y0 E6 m6 a
且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)
3 k; w, d$ A; `- F: r6 _: z0 j如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行* c1 k! b  i3 l& k3 j- g8 L
用verilog程示要怎麼寫呢?
& }) n+ A" n; v: n2 F/ c' L有高手可以教我嗎?
' [, H- S, c! `0 D8 ]感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?5 w  x! x* Z$ ?9 \. z6 v- |, ?

( X) N& I( m0 L6 A不太常用verilog...哈
; C8 u* ]6 V7 q( R7 a/ p9 w& L
% {% G7 a6 U0 `% n4 I不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

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

我也是新手 大家一起努力

Dear Sir ,
- a1 |0 ?  q; V% r7 ~: x; Z我用FSM嘗試,simulation也成功     
8 h* p/ |1 R, D$ o/ X' k4 |- t參考看看吧+ F! }& S+ z, l( J8 a
, c$ X0 i* f" e3 `
module LED_Ctrl(clk, rst_n, sw, LED);
7 P: X$ e6 ^/ U# g- o7 d, t; v1 _* _    input clk;! N# i1 }; t) z5 p% \7 M4 p$ `
    input rst_n;
4 V8 w# O' H$ p* \% ~# f5 e7 K. R    input [1:0] sw;
' N4 Y: c: {: s    output [1:0] LED;* m& L( ^, k3 @* l; A; Y
         
* {) A: a3 o, a1 B5 {3 Q+ |* G         reg [1:0] LED ;  K; T/ x( ?7 ~( v0 M: a
         reg [1:0] CS ;
% a& M7 q# X0 Q! \5 o$ n! \         reg [1:0] NS ;
1 {* _$ c  y* y; k# X' U         
  L# Z+ m% b. n" V9 C, y////////// STATE //////////////
% U9 \  b8 ]% o7 F9 q( C         parameter RESET=0 ;
5 m% p' Z! Y: R5 [# U4 O9 r- b* a2 i" A         parameter S1=1 ;
6 j) Y, F0 n$ r. W4 w3 U         parameter S2=2 ;
2 V. N/ x. R7 u5 G         parameter S3=3 ;
3 z+ b# }$ c) Z         
  {2 }+ l7 ^4 @8 b# m6 c         6 ~2 f; p% N( t& g4 |+ m% B* N. d
         ; n: T, [6 L. |( L
         
, R- u1 }9 V, Y, c; E/ o. d* B////////////  FSM  //////////
5 x) X; a, t6 x: {& P4 }8 _- @. p4 p2 }$ d
always@(posedge clk or negedge rst_n)7 M5 s: V0 \* [) O9 f+ q) [4 C
begin7 ^* u! w5 ]9 ^+ g
       if(rst_n==1'b0)
% w2 n1 C* E2 t0 c" v2 e- E           CS=RESET ;
3 t/ a2 m) X$ h+ C% G       else
, _, K+ K" ~: D" ~4 |3 N  o            CS=NS ;: Q* G4 d) u" w7 g# h" n, ^
end 3 h5 N4 Y# k3 a- Z, L, k/ w
                $ T4 a( k% h2 m. V( h7 a
                , v! T% S8 Y6 [# V  z* n# G
' X! ^" k7 o1 G" R; t
    always@(CS or sw)- x; k7 J/ N9 c& O  l7 p
      begin( |8 z) Z$ E$ ?* I& }
            case(CS); q* i7 _  E8 U, S6 ~
             RESET :  begin NS=S1 ; LED=2'b00 ; end
! }0 n. d0 t: b, l                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  
% j6 h/ {4 d; J* u0 P                   if(sw==2'b10)
5 y* o: v# F! x% d                       LED=2'b00 ;4 \: k" W% `/ i, R, X& y
                   else
7 M* \8 T  `' l! `  H  h2 U9 T0 J                                   LED=2'b10 ;  end, q# `8 G$ k$ ?* Z8 Y2 @& U
                  S2    : begin NS=S3 ; //LED=2'b11 ;
- T9 |# Z$ M0 m7 y6 ~! Z                                if(sw==2'b00)
, m; d3 }; ?6 F& T/ I  q6 o                                    LED=2'b11 ;/ v1 s0 C5 R& M5 w# A! W
                               else if(sw==2'b01); [5 U! ]* }7 _6 H9 @
                                    LED=2'b10 ;* ^& A/ Y+ O/ g, `& W2 q1 D/ Y
                               else if (sw==2'b10)4 M# q( [. Z) p: o: w) I
                                    LED=2'b01 ;4 |5 u# w) `+ o
                               else
2 v7 Z0 ?/ u, b( s2 @3 ^, p                                   LED=2'b00 ; end
1 {; B/ H5 M( ~: i1 X: L5 a# a/ B. n                  S3    : begin NS=S1 ; //LED=2'b01 ;
5 k" D! [$ g  K; P( o                              if(sw==2'b01)1 j6 H9 x) [6 |# J
                                   LED=2'b00 ;
, r% \/ {7 A1 f8 Z                              else
6 m0 c# J4 F- E. O                                  LED=2'b01 ;  end
! d$ y  ~8 W2 }; e& f            default : begin NS=RESET ; LED=2'b00 ; end                   
, S' M- ~0 f+ {- k; q5 L          endcase                                 ! s8 o9 C. g2 m5 R) B
      end               
( u6 f( P' ~! j0 @4 Q                % z9 \6 N# t3 z& G! ]
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 05:11 AM , Processed in 0.136017 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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