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

Subversion Repositories or1k

[/] [or1k/] [tags/] [nog_patch_52/] [or1ksim/] [cache/] [dcache_model.c] - Diff between revs 102 and 167

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 102 Rev 167
Line 55... Line 55...
        } way[DC_WAYS];
        } way[DC_WAYS];
} dc[DC_SETS];
} dc[DC_SETS];
 
 
void dc_info()
void dc_info()
{
{
        if (!getsprbits(SPR_UPR, SPR_UPR_DCP)) {
        if (!testsprbits(SPR_UPR, SPR_UPR_DCP)) {
                printf("DCache not implemented. Set UPR[DCP].\n");
                printf("DCache not implemented. Set UPR[DCP].\n");
                return;
                return;
        }
        }
 
 
        printf("Data cache %dKB: ", DC_SETS * DC_BLOCK_SIZE * DC_WAYS / 1024);
        printf("Data cache %dKB: ", DC_SETS * DC_BLOCK_SIZE * DC_WAYS / 1024);
Line 81... Line 81...
{
{
        int set, way = -1;
        int set, way = -1;
        int i;
        int i;
        unsigned long tagaddr;
        unsigned long tagaddr;
 
 
        if ((!getsprbits(SPR_UPR, SPR_UPR_DCP)) || (!getsprbits(SPR_SR, SPR_SR_DCE)))
        if ((!testsprbits(SPR_UPR, SPR_UPR_DCP)) || (!testsprbits(SPR_SR, SPR_SR_DCE)))
                return;
                return;
 
 
        /* Which set to check out? */
        /* Which set to check out? */
        set = (dataaddr / DC_BLOCK_SIZE) % DC_SETS;
        set = (dataaddr / DC_BLOCK_SIZE) % DC_SETS;
        tagaddr = (dataaddr / DC_BLOCK_SIZE) / DC_SETS;
        tagaddr = (dataaddr / DC_BLOCK_SIZE) / DC_SETS;
Line 138... Line 138...
{
{
        int set, way = -1;
        int set, way = -1;
        int i;
        int i;
        unsigned long tagaddr;
        unsigned long tagaddr;
 
 
        if ((!getsprbits(SPR_UPR, SPR_UPR_DCP)) || (!getsprbits(SPR_SR, SPR_SR_DCE)))
        if ((!testsprbits(SPR_UPR, SPR_UPR_DCP)) || (!testsprbits(SPR_SR, SPR_SR_DCE)))
                return;
                return;
 
 
        /* Which set to check out? */
        /* Which set to check out? */
        set = (dataaddr / DC_BLOCK_SIZE) % DC_SETS;
        set = (dataaddr / DC_BLOCK_SIZE) % DC_SETS;
        tagaddr = (dataaddr / DC_BLOCK_SIZE) / DC_SETS;
        tagaddr = (dataaddr / DC_BLOCK_SIZE) / DC_SETS;
Line 189... Line 189...
{
{
        int set, way = -1;
        int set, way = -1;
        int i;
        int i;
        unsigned long tagaddr;
        unsigned long tagaddr;
 
 
        if (!getsprbits(SPR_UPR, SPR_UPR_DCP))
        if (!testsprbits(SPR_UPR, SPR_UPR_DCP))
                return;
                return;
 
 
        /* Which set to check out? */
        /* Which set to check out? */
        set = (dataaddr / DC_BLOCK_SIZE) % DC_SETS;
        set = (dataaddr / DC_BLOCK_SIZE) % DC_SETS;
        tagaddr = (dataaddr / DC_BLOCK_SIZE) / DC_SETS;
        tagaddr = (dataaddr / DC_BLOCK_SIZE) / DC_SETS;

powered by: WebSVN 2.1.0

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