Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題9 @- w8 k# L9 c# a0 D  O. t, O* f
如果我有二個LED燈,1表示亮,0表示暗. u- }9 z; \& n" L$ j
樣本如下表,如果我想要控制它每一個樣本LED亮二秒2 _8 s: o& m$ C' J; u
並依照此樣本往下依序亮
: v3 A: t( e! B$ w. O1~2秒 LED1亮,LED2暗
3 l  H! i* z7 E, B( e7 l" q3~4秒 LED1亮,LED2亮
9 I4 u2 |, n5 B/ e$ M5~6秒 LED1暗,LED2亮( c$ p! d% u3 A
7~8秒 LED1亮,LED2暗' R4 Z. q5 U3 r' S6 X6 j0 K
LED1 LED2
# F2 A( {' s; D( m 1  00 h' Q3 F( ^/ a
 1  1
1 s9 y7 _" T8 A4 a2 | 0  14 z1 {7 Z) Q* h  Q
 1  0
+ I) O  d9 I& A( G  F' k3 p且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)
7 }# V6 u! E* k; }! |& O7 n4 Y如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行
8 k- J4 r" A) @/ ^8 m3 C- t0 t用verilog程示要怎麼寫呢?
1 ]( b. ?+ B! H3 N" G有高手可以教我嗎?/ g* X9 I8 A; S" v. @' n
感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?
! {( O: H) J- L5 L) z: G# K9 {. c3 o5 B+ c$ u4 q8 [4 J
不太常用verilog...哈/ D% b5 J# m3 V2 ?
) @8 i) {9 h5 y, i, g) w+ F6 K: `
不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

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

我也是新手 大家一起努力

Dear Sir ,
- `& ~/ A$ v2 d+ j! G! }我用FSM嘗試,simulation也成功     
/ a+ o9 q7 F0 B; B; R2 x+ f- ~參考看看吧% H; T1 L% o4 v6 V$ T& K2 j

0 n! |* N! V3 e, a% ~6 gmodule LED_Ctrl(clk, rst_n, sw, LED);
" O3 @" q' r$ v" D% s: f    input clk;3 e# u$ K+ {8 n; G
    input rst_n;
; F2 o8 T( P9 ]2 Q- Q+ E    input [1:0] sw;; b* s& Y* m9 i0 \& U  n. P$ e
    output [1:0] LED;
3 ?# u2 T1 j1 n0 J  D8 \) e         
8 }- a6 W8 C7 B9 R9 C& e0 v  f* S         reg [1:0] LED ;
$ K3 M  K9 \2 {) v         reg [1:0] CS ;6 A7 N2 |1 c! y' w3 f
         reg [1:0] NS ;
; o. D% B* m) |8 q         1 e9 U2 Q. i4 e( x" g! F8 L* n
////////// STATE //////////////
% Z) }' G4 X( ~! j. ~9 F) I         parameter RESET=0 ;
& x2 o2 j  [8 e  \0 @) [" w         parameter S1=1 ;
: M) ?. ?6 S% ?% R$ G5 M         parameter S2=2 ;+ ]: R4 n. \( _1 W1 y2 e: w
         parameter S3=3 ;/ ~/ W  A5 l, g" O9 E( P$ P3 z
         8 m: i7 {, d4 U$ I
         ( E3 O  p$ K2 T. y7 c3 s
         
* {8 ~% D% u  @( K: H/ s         
0 ]8 ?( Q3 C; \- M////////////  FSM  //////////
! C# S* I, p) l
# J" I& X6 [0 t  I, F1 galways@(posedge clk or negedge rst_n), ]5 }. {3 l( Z/ v( Q% e! k8 R& L
begin  l6 H) a( Y3 L9 l) R% T. U
       if(rst_n==1'b0), Y: X" l8 E3 n% C
           CS=RESET ;9 {$ Q, z" \8 g3 L: x: N" A
       else3 y& L6 x( R/ Y# [0 W7 J
            CS=NS ;
, T) v& w) u/ ^end . R# T! s* N  R1 O( v
               
- _# S/ Z1 R" E* X- f( p7 O               
. c, u7 R; C7 K5 x- c# W4 f8 V4 ^: d" ?
    always@(CS or sw)
7 i; d3 K- q- v      begin
; w$ y; l- W2 p& T/ `" o- X4 c            case(CS)
4 e( y! M6 L) v8 W5 c) Q9 g             RESET :  begin NS=S1 ; LED=2'b00 ; end " a9 P& u4 K+ x0 ?0 X& A% E/ G
                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  + k1 x  n. @( A3 _2 O! u' B
                   if(sw==2'b10)! \5 A: v4 f9 S5 I6 G6 L, F
                       LED=2'b00 ;
0 K3 r3 I* h; z8 T+ X3 f& e; F5 F& w                   else
7 H% b; [0 P* A* _% x% }- |" ^                                   LED=2'b10 ;  end, |3 s- y' k. |/ I$ c3 `5 M
                  S2    : begin NS=S3 ; //LED=2'b11 ;. [3 A5 L7 c! l  @4 l
                                if(sw==2'b00)
; F3 Z; z" O9 M  e                                    LED=2'b11 ;% M  `( {/ S( a  j
                               else if(sw==2'b01)5 \2 U6 E* S+ _9 h" ]" Y# B3 J6 R
                                    LED=2'b10 ;6 E1 Y( U4 Y1 l  \9 u8 Z: g
                               else if (sw==2'b10)' R1 K$ z* s3 v$ Z
                                    LED=2'b01 ;/ A' Q) }1 w9 L$ |" L
                               else 2 F/ J! k# f$ ]2 t! `' Q1 [
                                   LED=2'b00 ; end
* k' X! e8 l) ]+ C                  S3    : begin NS=S1 ; //LED=2'b01 ;; N3 K& i! q  T. x( i: }
                              if(sw==2'b01)! B; ~( _$ C9 z& _' }
                                   LED=2'b00 ;8 m0 G" F0 Y  ?
                              else
8 k4 [7 _8 k; z8 \                                  LED=2'b01 ;  end
; k: c, H8 r& b            default : begin NS=RESET ; LED=2'b00 ; end                   
5 Z5 x6 y# k; t4 k          endcase                                 1 Y6 l9 E+ [0 L" E# _* `' R
      end               
1 t3 z+ n7 ?# [. z, A2 B                ; h& d% P- E* Q
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-5-19 11:44 PM , Processed in 0.113514 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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