Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題
' O3 T# m/ \- e. n" q! e如果我有二個LED燈,1表示亮,0表示暗
: N3 y& B* e% @% q樣本如下表,如果我想要控制它每一個樣本LED亮二秒; B3 V8 h2 ^, _0 j
並依照此樣本往下依序亮& C4 x6 g7 M$ z# }2 Q% B
1~2秒 LED1亮,LED2暗
& v, P* C) E! {3~4秒 LED1亮,LED2亮, X* f8 i2 S) _7 H! ^7 L# @' a, w
5~6秒 LED1暗,LED2亮  q  G( B8 C1 A
7~8秒 LED1亮,LED2暗) e& E& ]8 n3 X! K+ w8 v2 K9 {! i
LED1 LED2
6 B; r. k/ b' c; o0 p 1  0, S+ ^# ~: |0 I" t, L
 1  1
3 z1 Y8 `1 p8 ?: `  S 0  1
) ~; w# m' P% Z1 g 1  0 : |, O7 T( r7 F9 o4 Z
且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)
; A. i; L+ r# n! b& j% \; z5 _  }如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行
2 A) X7 B2 S* V9 z7 h* O: x' x用verilog程示要怎麼寫呢?) D3 P! c) L) P) l2 P& f
有高手可以教我嗎?) i( b  s; i) m/ r/ T! C- x" p
感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?' I  c  k' F4 g- Y+ I$ q
$ f) l4 F# d6 t  A; {
不太常用verilog...哈, l5 o: e3 X3 T

1 y! a! f/ `; g不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

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

我也是新手 大家一起努力

Dear Sir ,# ~* F( v* X7 s( G0 z
我用FSM嘗試,simulation也成功       J/ {; y  [% e% H7 Y! A
參考看看吧, g5 E5 L4 U9 ]2 ]

. K0 Z# n  g' D/ t" w% U$ Smodule LED_Ctrl(clk, rst_n, sw, LED);
  V; a& [& U: Z0 |  W    input clk;
# d" d6 ^/ _2 u. H( R4 c9 ]    input rst_n;
+ J) \# O( P. b0 a    input [1:0] sw;  d3 I6 V7 }) x- R
    output [1:0] LED;: Q3 C7 I7 ~* k! r# B2 f  f
         
. g9 S& x1 ~' q+ N         reg [1:0] LED ;# l  S$ p6 C% b! p( s- f2 z# [
         reg [1:0] CS ;, ^: I( [/ [: E: K' \
         reg [1:0] NS ;
0 K" k1 v* `& h3 C( U; E8 n$ c4 f         4 G# R4 Q6 c  |+ w5 W: ]% z( Z
////////// STATE //////////////
& ?. @! M2 Z) v7 W% D         parameter RESET=0 ;# Q- h$ i6 b: q6 G. i
         parameter S1=1 ;
+ K: H  I# M, g4 b5 {         parameter S2=2 ;
$ |% U1 g* [4 a) s# _3 I         parameter S3=3 ;: X9 _* V1 x+ i0 z4 a" {- y% N
         4 x9 u+ c; H2 @# [
         # f/ x' \& b4 Z2 @7 U3 b' Z$ S" Z- r
         
) y- T, ]8 c4 R7 I         
- Z; ]5 x; W+ o2 T+ D! Q" T////////////  FSM  //////////5 a* c, |3 B* ~% Z9 A5 A

" T- B4 W( i+ ^6 calways@(posedge clk or negedge rst_n)& p# z! P2 h- L. H5 ^0 T' ^
begin
: z; L4 [3 q. k& l       if(rst_n==1'b0)
' C6 y7 m! `3 e. U           CS=RESET ;
2 @) r& @+ o( D6 g! b8 w7 V1 S       else6 z; E; U9 M9 P% j( T9 K
            CS=NS ;0 k3 r/ Z  J# g5 j
end * n% X/ `! d3 I4 s; ]
                - m" @- ^. J! I& h( I8 p
               
& g3 ]; W2 U+ X- \- M8 Q' T5 b- \  D
    always@(CS or sw)  M1 I$ M1 T6 w% @; F
      begin6 p3 w! M1 e" ?$ x' u& c
            case(CS)* E0 n5 r% G- o7 Q
             RESET :  begin NS=S1 ; LED=2'b00 ; end : R9 P) ?7 |0 ^5 f. M& i( P9 l
                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  
( x/ O/ P" ?4 Z) _( t* f                   if(sw==2'b10)
; s8 I1 n$ t* k! |+ y                       LED=2'b00 ;
1 w; S& k8 Z0 s" v                   else
$ M6 [- Y1 }! s                                   LED=2'b10 ;  end  R- R8 u1 |! f" {5 ^1 C& D
                  S2    : begin NS=S3 ; //LED=2'b11 ;
0 `' o. v% p  P' w6 Q                                if(sw==2'b00)
9 p1 p6 b! {: C0 |                                    LED=2'b11 ;
8 W6 A0 \' }1 |% J* `4 b                               else if(sw==2'b01)0 q5 I6 Z9 M4 m, s1 z" z1 [
                                    LED=2'b10 ;4 E2 b' y' m1 S" C" L' [- c% o
                               else if (sw==2'b10)
  A4 r; t! U& c8 [4 |# \$ g                                    LED=2'b01 ;" g# r" y. R/ I5 ~
                               else ' c5 P. T* @) {! ^9 ], t
                                   LED=2'b00 ; end
  ~$ f- W0 R/ u8 H% N                  S3    : begin NS=S1 ; //LED=2'b01 ;
7 f$ L* S, z3 @; c  D                              if(sw==2'b01); H8 J- K4 a! q6 G
                                   LED=2'b00 ;
9 W5 `8 |& p% a# K' @                              else
: e, n/ D, o# Z                                  LED=2'b01 ;  end; l  W2 Y8 g* x) `$ o. [
            default : begin NS=RESET ; LED=2'b00 ; end                   
4 F1 ?% e. z8 T          endcase                                
. I1 r* ^4 n; z      end               
1 |7 w* c5 x) `% l. X0 R: k! @4 z2 ]                ) @3 J) f- p3 D; Z/ ]# S6 ^
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-2 02:27 AM , Processed in 0.115014 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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