My omnium-gatherom of scripts and source code.
1
2/********** Defines **************/
3
4/* Get ra out of one byte regid field */
5#define GET_RA(r) HI4(r)
6
7/* Get rb out of one byte regid field */
8#define GET_RB(r) LO4(r)
9
10
11/************ Global state declaration ****************/
12
13/* Determines whether running SEQ or SEQ+ */
14extern int plusmode;
15
16/* Both instruction and data memory */
17extern mem_t mem;
18
19/* Keep track of range of addresses that have been written */
20extern word_t minAddr;
21extern word_t memCnt;
22
23/* Register file */
24extern mem_t reg;
25/* Condition code register */
26extern cc_t cc;
27/* Program counter */
28extern word_t pc;
29
30/* For seq+ */
31/* Results computed by previous instruction.
32 Used to compute PC in current instruction */
33extern byte_t prev_icode;
34extern byte_t prev_ifun;
35extern word_t prev_valc;
36extern word_t prev_valm;
37extern word_t prev_valp;
38extern bool_t prev_bcond;
39
40/* Intermdiate stage values that must be used by control functions */
41extern byte_t imem_icode;
42extern byte_t imem_ifun;
43extern byte_t icode;
44extern word_t ifun;
45extern word_t ra;
46extern word_t rb;
47extern word_t valc;
48extern word_t valp;
49extern bool_t imem_error;
50extern bool_t instr_valid;
51extern word_t vala;
52extern word_t valb;
53extern word_t vale;
54extern bool_t bcond;
55extern bool_t cond;
56extern word_t valm;
57extern bool_t dmem_error;
58extern byte_t status;
59
60/* Log file */
61extern FILE *dumpfile;
62
63
64/* Sets the simulator name (called from main routine in HCL file) */
65void set_simname(char *name);
66
67/* Initialize simulator */
68void sim_init();
69
70/* Reset simulator state, including register, instruction, and data memories */
71void sim_reset();
72
73/*
74 Run processor until one of following occurs:
75 - An status error is encountered
76 - max_instr instructions have completed
77
78 Return number of instructions executed.
79 if statusp nonnull, then will be set to status of final instruction
80 if ccp nonnull, then will be set to condition codes of final instruction
81*/
82word_t sim_run(word_t max_instr, byte_t *statusp, cc_t *ccp);
83
84/* If dumpfile set nonNULL, lots of status info printed out */
85void sim_set_dumpfile(FILE *file);
86
87/*
88 * sim_log dumps a formatted string to the dumpfile, if it exists
89 * accepts variable argument list
90 */
91void sim_log( const char *format, ... );
92
93
94/******************* GUI Interface Functions **********************/
95#ifdef HAS_GUI
96
97void signal_register_clear();
98
99void report_pc(word_t pc);
100
101void report_state(char *id, char *txt);
102
103void show_cc(cc_t cc);
104
105void create_memory_display();
106void set_memory(word_t addr, word_t val);
107#endif
108