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

Subversion Repositories spdif_transmitter

[/] [spdif_transmitter/] [trunk/] [testbench/] [spdif_decoder.h] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 ultra_embe
#ifndef SPDIF_DECODER_H
2
#define SPDIF_DECODER_H
3
 
4
#include <systemc.h>
5
 
6
#define SPDIF_MAX_BITS     24
7
 
8
//-------------------------------------------------------------
9
// spdif_decoder: Decoder for SPDIF signal
10
//-------------------------------------------------------------
11
SC_MODULE (spdif_decoder)
12
{
13
public:
14
    // Clock and Reset
15
    sc_in  <bool>   clk_i;
16
    sc_in  <bool>   rst_i;
17
 
18
    // I/O
19
    sc_in  <bool>   rx_i;
20
 
21
    // Constructor
22
    SC_HAS_PROCESS(spdif_decoder);
23
    spdif_decoder(sc_module_name name): sc_module(name),
24
                                        m_rx_fifo(1024)
25
    {
26
        m_divisor = 0;
27
        m_bits    = 16;
28
        SC_CTHREAD(input, clk_i.pos());
29
    }
30
 
31
public:
32
    sc_uint <SPDIF_MAX_BITS> read(void)  { return m_rx_fifo.read(); }
33
    bool read_ready(void)                { return m_rx_fifo.num_available() > 0; }
34
    void set_clock_div(int divisor)      { m_divisor = divisor; }
35
    void set_bit_width(int bits)         { m_bits = bits; }
36
 
37
private:
38
    void input(void);
39
 
40
    sc_fifo < sc_uint<SPDIF_MAX_BITS> > m_rx_fifo;
41
 
42
    int m_divisor;
43
    int m_bits;
44
};
45
 
46
#endif

powered by: WebSVN 2.1.0

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