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

Subversion Repositories or1k

[/] [or1k/] [tags/] [nog_patch_61/] [or1ksim/] [sim-config.h] - Diff between revs 242 and 257

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 242 Rev 257
/* config.h -- Simulator configuration header file
/* config.h -- Simulator configuration header file
   Copyright (C) 1999 Damjan Lampret, lampret@opencores.org
   Copyright (C) 1999 Damjan Lampret, lampret@opencores.org
 
 
   This file is part of OpenRISC 1000 Architectural Simulator.
   This file is part of OpenRISC 1000 Architectural Simulator.
 
 
   This program is free software; you can redistribute it and/or modify
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.
   (at your option) any later version.
 
 
   This program is distributed in the hope that it will be useful,
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   GNU General Public License for more details.
 
 
   You should have received a copy of the GNU General Public License
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   along with this program; if not, write to the Free Software
   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
 
 
#include <stdio.h>
#include <stdio.h>
 
 
/* Simulator configuration macros. Eventually this one will be a lot bigger. */
/* Simulator configuration macros. Eventually this one will be a lot bigger. */
 
 
#define NR_UARTS        4       /* Number of UARTs simulated */   
#define NR_UARTS        4       /* Number of UARTs simulated */   
#define NR_DMAS         1       /* Number of DMA controllers */
#define NR_DMAS         1       /* Number of DMA controllers */
 
#define NR_ETHERNETS    2       /* Number of Ethernet MACs   */
#define NONE            0
#define NONE            0
#define VIRTUAL         1
#define VIRTUAL         1
#define PHYSICAL        2
#define PHYSICAL        2
 
 
#define STR_SIZE        (256)
#define STR_SIZE        (256)
 
 
struct config {
struct config {
  struct {
  struct {
    int tagtype;
    int tagtype;
  } dc;
  } dc;
 
 
  struct {
  struct {
    int tagtype;
    int tagtype;
  } ic;
  } ic;
 
 
  struct {
  struct {
    int bpb_sim;
    int bpb_sim;
    int btic_sim;
    int btic_sim;
  } bp;     /* Branch prediction */
  } bp;     /* Branch prediction */
  int clkcycle_ns;  /* Clock cycle in nanoseconds */
  int clkcycle_ns;  /* Clock cycle in nanoseconds */
 
 
  struct {
  struct {
    char *rxfile; /* File for RX */
    char *rxfile; /* File for RX */
    char *txfile; /* File for TX (required) */
    char *txfile; /* File for TX (required) */
          int jitter;     /* CZ 250801 - in msecs...time to block */
          int jitter;     /* CZ 250801 - in msecs...time to block */
    unsigned long baseaddr; /* Naturally aligned base address */
    unsigned long baseaddr; /* Naturally aligned base address */
  } uarts[NR_UARTS];
  } uarts[NR_UARTS];
 
 
  struct {
  struct {
    unsigned long baseaddr;
    unsigned long baseaddr;
    unsigned irq;
    unsigned irq;
  } dmas[NR_DMAS];
  } dmas[NR_DMAS];
 
 
 
        struct {
 
                unsigned long baseaddr;
 
                unsigned dma; /* Which controller is this ethernet "connected" to */
 
                unsigned tx_channel; /* DMA channel used for TX */
 
                unsigned rx_channel; /* DMA channel used for RX */
 
                char *rxfile;
 
                char *txfile;
 
        } ethernets[NR_ETHERNETS];
 
 
  struct {
  struct {
    char memory_table_file[STR_SIZE]; /* Memory table filename */
    char memory_table_file[STR_SIZE]; /* Memory table filename */
    int enable;                      /* is MC enabled? */
    int enable;                      /* is MC enabled? */
    unsigned POC;                     /* power on reset configuration register */
    unsigned POC;                     /* power on reset configuration register */
  } mc;
  } mc;
 
 
  int simdebug; /* Simulator debugging */
  int simdebug; /* Simulator debugging */
  int profile;    /* Is profiler running */
  int profile;    /* Is profiler running */
  FILE *fprof;    /* profiler file */
  FILE *fprof;    /* profiler file */
  int iprompt;  /* Interactive prompt */
  int iprompt;  /* Interactive prompt */
  int dependstats;/* Calculation of dependency statistics */
  int dependstats;/* Calculation of dependency statistics */
  int dependency; /* Calculation of dependency (implied by dependstats) */
  int dependency; /* Calculation of dependency (implied by dependstats) */
  int history;  /* Instruction stream history remembered by the simulator */
  int history;  /* Instruction stream history remembered by the simulator */
  int superscalar;/* "Superscalar" simulation */
  int superscalar;/* "Superscalar" simulation */
  int slp;
  int slp;
  int inhibit_server; /* Don't start up the JTAG proxy server */
  int inhibit_server; /* Don't start up the JTAG proxy server */
  int server_port; /* A user specified port number for services */
  int server_port; /* A user specified port number for services */
  int pattern_mem; /* A user specified memory initialization pattern */
  int pattern_mem; /* A user specified memory initialization pattern */
  int random_mem;  /* Initialize the memory with random values */
  int random_mem;  /* Initialize the memory with random values */
 
 
  char* filename;  /* Original Command Simulator file (CZ) */
  char* filename;  /* Original Command Simulator file (CZ) */
};
};
 
 
extern struct config config;
extern struct config config;
 
 
/* Read environment from a script file. Does not fail - assumes defaukt configuration instead. */
/* Read environment from a script file. Does not fail - assumes defaukt configuration instead. */
void read_script_file (char *filename);
void read_script_file (char *filename);
 
 

powered by: WebSVN 2.1.0

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