Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題9 e+ F4 n( F$ [, Z' A7 m# s0 @
如果我有二個LED燈,1表示亮,0表示暗
# s* F$ u& }2 J! {樣本如下表,如果我想要控制它每一個樣本LED亮二秒' U2 S. _1 j& u) L
並依照此樣本往下依序亮
+ S3 ?- h( i; ~. S- @6 S: p1~2秒 LED1亮,LED2暗
% s* Z2 U0 N9 S0 m3~4秒 LED1亮,LED2亮
0 c; C8 z/ l& k! q5 T( q" F  i! f5~6秒 LED1暗,LED2亮4 f$ Z0 R3 F3 T$ K$ K6 h# S
7~8秒 LED1亮,LED2暗, v# Z/ d, }1 H, f( r; }/ c! j
LED1 LED27 R* y: ~1 z- K4 \1 @% x+ B
 1  0
+ \0 _  G! H' L$ s- d, b4 s 1  1. R5 V5 E  g7 H/ K
 0  15 v( P8 `! a: R
 1  0 1 Q% k# ?7 Q/ B' p
且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)! y4 n; S0 D+ m- \4 z1 q# K, l
如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行$ g% p" W: N" o9 n) h/ D
用verilog程示要怎麼寫呢?) w+ ?0 o9 Z3 M
有高手可以教我嗎?
( |' X  U6 l  j* I, l$ a5 f. H1 C感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?
9 [+ H% e0 C, d$ ^4 G- W: v1 r6 d
不太常用verilog...哈
3 s7 a- P# F/ F) x" b) i! S/ R6 }, l& F- m' R
不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

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

我也是新手 大家一起努力

Dear Sir ,% a  l" [, c! T2 R, S
我用FSM嘗試,simulation也成功     
7 a3 x4 Y0 C7 Z3 y+ H9 `參考看看吧$ U% d' n& V! A8 [: I

+ y7 \' q/ L' u% A; b/ o9 Zmodule LED_Ctrl(clk, rst_n, sw, LED);/ J* u. E& a# b2 V: I& }
    input clk;( }' Q  g7 z& {. M* A* r4 W
    input rst_n;2 ~5 [& ^+ X9 I) X
    input [1:0] sw;
" C, Q: U6 p0 _" A( B! ~5 I# U0 z    output [1:0] LED;; o( h& N: G- J0 T0 m( h
         
2 J1 X7 D/ J* x* }1 l         reg [1:0] LED ;5 n5 N. ~+ ^' s3 h- r; w; V
         reg [1:0] CS ;* b7 A2 j# U2 S3 z7 d+ y
         reg [1:0] NS ;' M, J- K! a9 r
         
  z% A8 T2 v. p0 P$ C////////// STATE //////////////
1 H6 Q0 F7 k- P: R3 q6 m4 c         parameter RESET=0 ;
6 h  p# q7 s* {' m1 g: t5 T         parameter S1=1 ;1 ^# X8 q$ p/ i! B# n: d5 r+ e
         parameter S2=2 ;$ m& {: Z4 p9 r7 G; m
         parameter S3=3 ;
$ k* E1 n" E, l6 E5 W         
8 B8 t# w8 q% F+ O* q3 R: r         5 b8 ~1 I4 J! @/ a
         
2 A8 v; V# o4 X8 I' U: p% P4 C         
* W, J2 t/ a7 I7 x////////////  FSM  //////////6 i. B9 P8 q  W/ ?! N

% w; i" F0 Y  Q" Z3 xalways@(posedge clk or negedge rst_n)& r3 c- ~. S- R* p( F" o. \
begin
7 B4 x9 {3 G0 |( t( W       if(rst_n==1'b0)
2 q1 B5 r. u0 b& L7 g           CS=RESET ;' K7 y' |2 F0 a8 H8 L
       else
+ R( X' q- B3 ~3 t            CS=NS ;# I9 S) `. Z3 w
end
' M" ?% t  V  d                  C  r# S; W' L3 s" L
                % ^2 ?3 T& f8 S) s  M
4 a9 r1 e, X6 d' y+ B" m* ]
    always@(CS or sw)
! R' i) T5 U; A* D      begin! U7 [1 n! r; [3 J# }
            case(CS)
: g8 W. m; L* f             RESET :  begin NS=S1 ; LED=2'b00 ; end 8 d3 E5 U5 k( ~% x
                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  ' |  j& N/ N  E
                   if(sw==2'b10)
( n2 Y) H. v. F, z6 `; d" r                       LED=2'b00 ;3 Q, ^/ Y  G$ x
                   else 4 w) {8 C5 E, H% _& v2 q5 |
                                   LED=2'b10 ;  end6 j7 ^7 W, q+ W" e8 F
                  S2    : begin NS=S3 ; //LED=2'b11 ;! ]+ ~; R+ z* v
                                if(sw==2'b00)
4 p# m9 y) [0 i                                    LED=2'b11 ;
7 A& Q  Z' M$ W- G4 {$ D% N                               else if(sw==2'b01)- z% E( k+ ~0 l/ }' ]
                                    LED=2'b10 ;$ h8 `; o2 p& L& S$ U# J3 e
                               else if (sw==2'b10)
' a4 A7 i# P( n: \$ {2 K; u                                    LED=2'b01 ;
, C, U( l; u1 {8 x; a4 f: \: @  F  f                               else
. ~2 x, i) G( K                                   LED=2'b00 ; end) l$ w: Z& h. J/ o
                  S3    : begin NS=S1 ; //LED=2'b01 ;
" C7 r" j) G$ z# m                              if(sw==2'b01)
( I7 P. A/ H% h, Z: ]                                   LED=2'b00 ;  o) d6 x/ U  f3 _
                              else
/ G  C  |) V3 t) |) t1 w: D2 v                                  LED=2'b01 ;  end
$ G/ Z1 e$ B- m- H8 H            default : begin NS=RESET ; LED=2'b00 ; end                   
( F8 j% K: B6 j, A& J- q          endcase                                 . \' \& }7 O1 G! {( t4 t5 s
      end               
& |- i+ C! t  y' g+ o: g9 r2 ?, G               
0 a9 C1 a/ X% l& F* |' b# ?4 Qendmodule

評分

參與人數 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-13 02:23 AM , Processed in 0.171600 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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