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

Subversion Repositories riscv_vhdl

[/] [riscv_vhdl/] [trunk/] [debugger/] [src/] [cpu_sysc_plugin/] [riverlib/] [core/] [stacktrbuf.h] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 sergeykhbr
/**
2
 * @file
3
 * @copyright  Copyright 2017 GNSS Sensor Ltd. All right reserved.
4
 * @author     Sergey Khabarov - sergeykhbr@gmail.com
5
 * @brief      Stack trace buffer on hardware level.
6
 */
7
 
8
#ifndef __DEBUGGER_RIVERLIB_STACKTRBUF_H__
9
#define __DEBUGGER_RIVERLIB_STACKTRBUF_H__
10
 
11
#include <systemc.h>
12
#include "../river_cfg.h"
13
 
14
namespace debugger {
15
 
16
SC_MODULE(StackTraceBuffer) {
17
    sc_in<bool> i_clk;
18
    sc_in<sc_uint<5>> i_raddr;                   // todo: log2(CFG_STACK_TRACE_BUF_SIZE)
19
    sc_out<sc_biguint<2*BUS_ADDR_WIDTH>> o_rdata;
20
    sc_in<bool> i_we;
21
    sc_in<sc_uint<5>> i_waddr;                   // todo: log2(CFG_STACK_TRACE_BUF_SIZE)
22
    sc_in<sc_biguint<2*BUS_ADDR_WIDTH>> i_wdata;
23
 
24
    void comb();
25
    void registers();
26
 
27
    SC_HAS_PROCESS(StackTraceBuffer);
28
 
29
    StackTraceBuffer(sc_module_name name_);
30
 
31
    void generateVCD(sc_trace_file *i_vcd, sc_trace_file *o_vcd);
32
 
33
private:
34
    sc_signal<sc_uint<5>> raddr;
35
    sc_signal<sc_biguint<2*BUS_ADDR_WIDTH>> stackbuf[CFG_STACK_TRACE_BUF_SIZE]; // [pc, npc]
36
};
37
 
38
 
39
}  // namespace debugger
40
 
41
#endif  // __DEBUGGER_RIVERLIB_STACKTRBUF_H__

powered by: WebSVN 2.1.0

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