Paul Pan
7b33e4213a
1. add test soft 2. modify verilator (TODO: crossbar need to replace) 3. fix CP0: now CU0 is always 1 4. Controller: cacheop 5. Controller: fix TEN 6. mycpu_top fix CP0_i 7. fix AXI.sv 8. fix AXIReader.sv 9. fix AXIWriter.sv: getting the correct data and length 10. MU: fix cache writeback, fix mem data mux, fix writer address, fix read request
31 lines
467 B
C
31 lines
467 B
C
unsigned long get_epc(void)
|
|
{
|
|
unsigned long n;
|
|
asm(
|
|
"mfc0 %0,$14\n\t"
|
|
:"=r"(n)
|
|
);
|
|
return n;
|
|
}
|
|
|
|
unsigned long get_cause(void)
|
|
{
|
|
unsigned long n;
|
|
asm(
|
|
"mfc0 %0,$13\n\t"
|
|
:"=r"(n)
|
|
);
|
|
return n;
|
|
}
|
|
|
|
void exception(void)
|
|
{
|
|
unsigned long n;
|
|
printf("There is an exception!!\n");
|
|
n=get_epc();
|
|
printf("The epc is %x\n",n);
|
|
n=get_cause();
|
|
printf("The cause is %x\n",n);
|
|
return;
|
|
}
|