OpenCores
URL https://opencores.org/ocsvn/statled/statled/trunk

Subversion Repositories statled

[/] [statled/] [trunk/] [rtl/] [statled.v] - Diff between revs 5 and 6

Show entire file | Details | Blame | View Log

Rev 5 Rev 6
Line 1... Line 1...
 
//////////////////////////////////////////////////////////////////////
 
////  statled.v                                                   ////   
 
////                                                              ////
 
////  This file is part of the Status LED module.                 ////
 
////  http://www.opencores.org/projects/statled/                  ////
 
////                                                              ////
 
////  Author:                                                     ////
 
////     -Dimitar Dimitrov, d.dimitrov@bitlocker.eu               ////
 
////                                                              ////
 
//////////////////////////////////////////////////////////////////////
 
////                                                              ////
 
//// Copyright (C) 2010 Authors                                   ////
 
////                                                              ////
 
//// This source file may be used and distributed without         ////
 
//// restriction provided that this copyright statement is not    ////
 
//// removed from the file and that any derivative work contains  ////
 
//// the original copyright notice and the associated disclaimer. ////
 
////                                                              ////
 
//// This source file is free software; you can redistribute it   ////
 
//// and/or modify it under the terms of the GNU Lesser General   ////
 
//// Public License as published by the Free Software Foundation; ////
 
//// either version 2.1 of the License, or (at your option) any   ////
 
//// later version.                                               ////
 
////                                                              ////
 
//// This source is distributed in the hope that it will be       ////
 
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
 
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
 
//// PURPOSE.  See the GNU Lesser General Public License for more ////
 
//// details.                                                     ////
 
////                                                              ////
 
//// You should have received a copy of the GNU Lesser General    ////
 
//// Public License along with this source; if not, download it   ////
 
//// from http://www.opencores.org/lgpl.shtml                     ////
 
////                                                              ////
 
//////////////////////////////////////////////////////////////////////
 
 
`timescale 1ns / 100ps
`timescale 1ns / 100ps
/******************************************************************************
 
*  Status LED module
 
*
 
*  Use single LED ouput to displays various internal states as blink codes.
 
*  http://www.opencores.org/cores/statled
 
*
 
******************************************************************************/
 
module statled (
module statled (
    input           clk,
    input           clk,
    input           rst,
    input           rst,
    input  [3:0]    status,
    input  [3:0]    status,
    output          led
    output          led
Line 20... Line 50...
reg [15:0]       lsr;            // LED shift register 
reg [15:0]       lsr;            // LED shift register 
reg [15:0]       cr;             // Code register
reg [15:0]       cr;             // Code register
reg [3:0]        str;            // Status register
reg [3:0]        str;            // Status register
wire            rate;           // LED rate
wire            rate;           // LED rate
 
 
//-----------------------------------------------------------------------------
//--------------------------------------------------------------------
// LED rate  
// LED rate  
//
//
always @(posedge clk or posedge rst)
always @(posedge clk or posedge rst)
        if (rst)
        if (rst)
        pre <= #tDLY 0;
        pre <= #tDLY 0;
Line 33... Line 63...
    else
    else
        pre <= #tDLY pre + 1;
        pre <= #tDLY pre + 1;
 
 
assign rate = (pre == STATLED_PULSE_CLKCNT);
assign rate = (pre == STATLED_PULSE_CLKCNT);
 
 
//-----------------------------------------------------------------------------
//--------------------------------------------------------------------
// Capture status inputs
// Capture status inputs
//
//
always @(posedge clk or posedge rst)
always @(posedge clk or posedge rst)
    if (rst)
    if (rst)
        str <= #tDLY 0;
        str <= #tDLY 0;
    else
    else
        str <= #tDLY status;
        str <= #tDLY status;
 
 
//-----------------------------------------------------------------------------
//--------------------------------------------------------------------
// Shift register and bit counter
// Shift register and bit counter
//
//
always @(posedge clk or posedge rst)
always @(posedge clk or posedge rst)
    if (rst)
    if (rst)
        bcnt <= #tDLY 15;
        bcnt <= #tDLY 15;
Line 63... Line 93...
    else if (rate)
    else if (rate)
        lsr <= #tDLY lsr << 1;
        lsr <= #tDLY lsr << 1;
 
 
assign led = rst? 1 : lsr[15];
assign led = rst? 1 : lsr[15];
 
 
//-----------------------------------------------------------------------------
//--------------------------------------------------------------------
// Codes 
// Codes 
//
//
always @*
always @*
    case(str)
    case(str)
        0: cr = CODE_50_50;           // Default code
        0: cr = CODE_50_50;           // Default code

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.