Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-15 18:26:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是一個verilog新手,最近在想一個問題
) y( l9 \0 b2 s3 t如果我有二個LED燈,1表示亮,0表示暗/ z8 h$ Y! [2 ~( j
樣本如下表,如果我想要控制它每一個樣本LED亮二秒
/ [. l+ u/ v8 l' x並依照此樣本往下依序亮
* b* j, {! _# Y, k+ x* U9 y1~2秒 LED1亮,LED2暗% k' E' `9 N6 G8 |* _- F
3~4秒 LED1亮,LED2亮
6 k, ^5 s) g" y6 B; i$ Q7 Q5~6秒 LED1暗,LED2亮
: I$ r. X/ ^2 [/ c6 H" f7~8秒 LED1亮,LED2暗; ^) e$ d. A; c" o. [: G5 ^2 H
LED1 LED2
- K. X" Y: I; e6 k. { 1  02 ?7 P# x  x* ?$ p- l9 X* r
 1  1, J& w5 W! F2 Z  u# w+ l8 Z7 t0 k; d7 a
 0  1
( w7 f$ ?& Y6 r" O% F3 \. P- A 1  0
! w! J& U  F7 _/ _$ u5 Q且用2個指撥開關控制LED關(指撥開關1控制LED1關,指撥開關2控制LED2關)
8 c2 y8 @7 t8 P) h0 O0 N6 Y如1~2秒時LED1亮,如果我在1~2秒時間區間內按指撥開關1,LED1熄滅,但在3秒時LED1和LED2又會亮.....一直往下執行2 y$ B; W: T2 C- d; t
用verilog程示要怎麼寫呢?
& V3 |, n6 |2 }5 b* w, @. T有高手可以教我嗎?
. G+ n( V5 v9 V1 N4 P# a1 H- o感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-18 01:17:08 | 只看該作者
"沒聲" 大大在嗎?7 p" C! `+ X9 r0 ?$ ~0 @
% X7 {4 c) K5 p  R2 {! \- }6 M
不太常用verilog...哈
. B! G* K6 s* ]) J' u8 P* e
: b- D: e( G  G3 I3 I$ i* f/ _! |6 E不過看起來就是個有條件輸入的counter而已
3#
發表於 2008-5-26 09:55:34 | 只看該作者

回復 1# 的帖子

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

我也是新手 大家一起努力

Dear Sir ,
* {. z; ^) P- Z, u" ?/ A我用FSM嘗試,simulation也成功     ) H% I7 u' S- ^* V) Y& I# R% g
參考看看吧
$ q  J9 }1 V" `, z
4 e9 k# E6 f5 s/ m6 f. Dmodule LED_Ctrl(clk, rst_n, sw, LED);# m$ k% e$ E( J$ }( o
    input clk;# ]! @  _0 a9 q7 r2 k+ Y2 d
    input rst_n;9 K# l8 q# B' u1 I
    input [1:0] sw;! n" R. @8 v; c
    output [1:0] LED;
6 E% z' @& Q3 V( P. Q7 \" g         % j- b7 T: P$ U* p0 D7 v$ L0 @6 o
         reg [1:0] LED ;
2 y" p2 [# Q9 }! O- }0 X/ w3 J- V         reg [1:0] CS ;& d8 X9 h7 d' o! Q* ?
         reg [1:0] NS ;4 T7 t. z& D5 X6 v: y$ ^0 l
         9 X8 C1 G  h; D% J8 r5 M! q' ^
////////// STATE //////////////
6 Y  ]1 T& P: S5 K7 y: A, S! q         parameter RESET=0 ;
9 H* l1 ~1 ?9 g6 Z" m" W         parameter S1=1 ;; I: n2 I1 w# i
         parameter S2=2 ;! f. E& W% ^& B. I# w+ P4 L: k) N
         parameter S3=3 ;7 Y# ^/ z+ x; E# P( o' D8 p
         , K4 k% k4 Y# I/ O- i
         $ D  V; ]0 Y# k. V4 x4 z
         3 v; F0 n9 k/ Q
         ) X5 o& \7 c' ?" }
////////////  FSM  //////////
6 S/ a6 ]' A: I. R6 k) i" I6 N( S5 i: R8 L( }6 Y( X% S
always@(posedge clk or negedge rst_n)
/ W; b; R5 b3 H* T. V& D* Sbegin% I3 l. a. N' |# t
       if(rst_n==1'b0)
5 ^1 E7 `& |% X8 l4 ~6 U; M$ d           CS=RESET ;" S( G; c7 k/ R6 D& R
       else
- w& q0 o% d5 t            CS=NS ;
& `+ D* }! G; A6 _) x1 n, b5 A0 Oend 5 o. I2 V: ~/ ]5 b7 u1 w
               
, B2 R6 l" N  J) g2 O! o, u. U1 [! e               
" n' ~: I, Q% Q" k  a
) z' p. v5 S8 Y4 l5 D3 p    always@(CS or sw)6 {1 u+ c7 w/ S" T3 B* ~
      begin
) C$ ?, W$ F; B" S, J; C9 t9 m            case(CS)
, `1 ~# K- N7 _             RESET :  begin NS=S1 ; LED=2'b00 ; end
! g2 {$ E2 H$ M8 L- L+ X                  S1    :  begin NS=S2 ; //LED=2'b10 ;                  , n1 J8 _1 z- f$ X9 j2 P
                   if(sw==2'b10)0 U8 {+ h$ L. B6 V8 C
                       LED=2'b00 ;  a. I4 \9 [! e0 i& {
                   else / S* K- x- H1 r, U* Y9 B9 D
                                   LED=2'b10 ;  end
1 L6 B7 C5 p& _, o; R                  S2    : begin NS=S3 ; //LED=2'b11 ;5 U8 i# A* |& {, c( e! P
                                if(sw==2'b00)0 {* }3 b$ n8 t7 T3 U
                                    LED=2'b11 ;. O# Q- u- V, Q+ j' u& M& d$ V* f
                               else if(sw==2'b01)
7 |; U5 N! Q0 c9 Q  `5 c$ ]" _                                    LED=2'b10 ;0 g1 m, b5 U. x6 K7 @$ f( G
                               else if (sw==2'b10)
  J+ ]. c+ T9 E; W                                    LED=2'b01 ;, W- w( |  @% s3 o& R, i
                               else ) J# v4 M- o2 U$ H, Q; W- g5 a
                                   LED=2'b00 ; end
% [% b# M0 E/ h1 [4 t5 ]4 C6 g                  S3    : begin NS=S1 ; //LED=2'b01 ;
* U' s1 R( p& E) s7 P                              if(sw==2'b01)
- G: q; N8 E/ g( X                                   LED=2'b00 ;
+ v0 @0 S' y, Z                              else
& ~$ C5 M6 L, P0 N7 h# I8 P                                  LED=2'b01 ;  end
7 {7 |  T1 E' b5 Q! l# o            default : begin NS=RESET ; LED=2'b00 ; end                   
- l+ z0 a5 k8 c8 m" R7 Y          endcase                                   p; ]$ \$ \% \' u
      end                . L6 i7 u  n1 M' f/ }1 x! y5 |% x- p
               
1 c, e  q- _8 [4 _' l- eendmodule

評分

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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