Main Page | Modules | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages | Examples

acsim.h File Reference

ArchC Simulator Generator header file This file contains the structures and macro definitions needed by the ArchC Simulator. More...

#include <stdlib.h>
#include <stdio.h>
#include "ac_decoder.h"

Include dependency graph for acsim.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Classes

struct  _ac_cache_parms
 List of a Cache's parameters. More...

struct  _ac_pipe_list
 List of Pipelines. More...

struct  _ac_stg_list
 List of Stages. More...

struct  _ac_sto_list
 List of Storage Devices. More...

union  endian
 Used to check the endianess of the host machine. More...


Defines

#define INDENT0   ""
#define INDENT1   " "
#define INDENT2   " "
#define INDENT3   " "
#define INDENT4   " "
#define INDENT5   " "
#define CONF_MAX_LINE   256
 Maximal number of characters per line in archc.conf.

#define WRITE_THROUGH   0x01
 Cache will use the write-through policy.

#define WRITE_BACK   0x02
 Cache will use the write-back policy.

#define WRITE_AROUND   0x20
 Cache will use the write-around policy.

#define WRITE_ALLOCATE   0x10
 Cache will use the write-allocate policy.

#define COMMENT(I, args...)   fprintf( output, "%s//!", I); fprintf( output, args);fprintf( output, "\n");
#define COMMENT_MAKE(args...)   fprintf( output, "# "); fprintf( output, args);fprintf( output, "\n");
#define AC_INTERNAL_ERROR(str)   fprintf(stderr, "ArchC ERROR: %s. File: %s Line: %d\n", str, __FILE__, __LINE__);
#define AC_ERROR(str,)   fprintf(stderr, "ArchC ERROR: " str, ##__VA_ARGS__);
#define AC_MSG(str,)   fprintf(stdout, "ArchC: " str, ##__VA_ARGS__);

Typedefs

typedef enum _ac_cmd_options_ ac_cmd_options
typedef enum _ac_sto_types ac_sto_types
typedef _ac_cache_parms ac_cache_parms
 List of a Cache's parameters.

typedef _ac_sto_list ac_sto_list
 List of Storage Devices.

typedef _ac_stg_list ac_stg_list
 List of Stages.

typedef _ac_pipe_list ac_pipe_list
 List of Pipelines.


Enumerations

enum  _ac_cmd_options {
  OPABI, OPDasm, OPDebug, OPDelay,
  OPDDecoder, OPHelp, OPDecCache, OPStats,
  OPVerbose, OPVersion, OPEncoder, OPGDBIntegration,
  ACNumberOfOptions
}
 Enumeration type for command line options.

enum  _ac_sto_types {
  MEM, CACHE, ICACHE, DCACHE,
  REG, REGBANK
}
 Enumeration type for storage device types.


Functions

void print_comment (FILE *output, char *description)
void CreateResourceHeader (void)
 Create the header file for ac_resources class.

void CreateTypeHeader (void)
 Create the header file for ArchC types.

void CreateISAHeader (void)
 Create the header file for the AC_ISA derived class.

void CreateARCHHeader (void)
 Create the header file for the AC_ARCH derived class.

void CreateStgHeader (ac_stg_list *stage_list, char *pipe_name)
 Create the header files for pipeline stages.

void CreateProcessorHeader (void)
 Create the header file for the processor module.

void CreateParmHeader (void)
 Create the header file for ArchC common parameters.

void CreateRegsHeader (void)
 Create the header file for ArchC formatted registers.

void CreateCoverifHeader (void)
 Create the header file for ArchC co-verification class.

void CreateStatsHeader (void)
 Create the header file for ArchC statistics collection class.

void CreateArchSyscallHeader (void)
 Create the header file for ArchC model syscalls.

void CreateMakefile (void)
 Create a Makefile for teh ArchC nodel.

void CreateResourceImpl (void)
 Create the .cpp file for ac_resources class.

void CreateStgImpl (ac_stg_list *stage_list, char *pipe_name)
 Create the .cpp file for pipeline stages.

void CreateRegsImpl (void)
 Create the .cpp template file for formatted registers.

void CreateImplTmpl (void)
 Create the .cpp template file for behavior description.

void CreateMainTmpl (void)
 Create the .cpp template file for the main function.

void CreateProcessorImpl (void)
 Create the .cpp file for processor module.

void CreateARCHImpl (void)
 Create the .cpp file for AC_ARCH derived class.

void EmitGenInstrClass (FILE *output)
 Emit class declaration for generic instruction.

void EmitFormatClasses (FILE *output)
 Emit class declarations for formats.

void EmitInstrClasses (FILE *output)
 Emit class declarations for instructions.

void EmitDecStruct (FILE *output)
 Emit decoder structure initialization.

void EmitPipeUpdateMethod (FILE *output)
 Emit reg update method for pipelined architectures.

void EmitMultiPipeUpdateMethod (FILE *output)
 Emit reg update method for multi-pipelined architectures.

void EmitUpdateMethod (FILE *output)
 Emit reg update method for non-pipelined architectures.

void EmitMultiCycleProcessorBhv (FILE *output)
 Emit processor behavior for a multicycle processor.

void EmitProcessorBhv (FILE *output)
 Emit processor behavior for a single-cycle processor.

void EmitProcessorBhv_ABI (FILE *output)
 Emit processor behavior for a single-cycle processor with ABI provided.

void EmitABIAddrList (FILE *output, int base_indent)
 Emit the calls for macros containing the list o address used for system calls.

void EmitABIDefine (FILE *output)
 Emit the define that implements the ABI control for non-pipelined architectures.

void EmitPipeABIDefine (FILE *output)
 Emit the define that implements the ABI control for pipelined architectures.

void EmitInstrExec (FILE *output, int base_indent)
 Emit code for executing an instruction behavior.

void EmitDecodification (FILE *output, int base_indent)
 Emit for instruction decodification.

void EmitFetchInit (FILE *output, int base_indent)
 Emit code used for initializing fetchs.

void EmitCacheDeclaration (FILE *output, ac_sto_list *pstorage, int base_indent)
 Emit code for ac_cache object declaration.

void ReadConfFile (void)
 Read archc.conf contents.


Variables

char * ARCHC_PATH
 Path where ArchC is installed.

char * SYSTEMC_PATH
 Path where SystemC is installed.

char * TARGET_ARCH
 Architecture of the host machine.

char * CC_PATH
 C/C++ compiler path.

char * OPT_FLAGS
 Optimization flags to be passed to the compiler.

char * DEBUG_FLAGS
 Debugging flags to be passed to the compiler.

char * OTHER_FLAGS
 Miscellaneous flags to be passed to the compiler.


Detailed Description

ArchC Simulator Generator header file This file contains the structures and macro definitions needed by the ArchC Simulator.

Definition in file acsim.h.


Generated on Thu Jun 24 08:30:06 2004 for ArchC by doxygen 1.3.4