Line 7... |
Line 7... |
//// ////
|
//// ////
|
//// Description ////
|
//// Description ////
|
//// Instantiation of all IMMU blocks. ////
|
//// Instantiation of all IMMU blocks. ////
|
//// ////
|
//// ////
|
//// To Do: ////
|
//// To Do: ////
|
//// - make it smaller and faster ////
|
//// - cache inhibit ////
|
//// ////
|
//// ////
|
//// Author(s): ////
|
//// Author(s): ////
|
//// - Damjan Lampret, lampret@opencores.org ////
|
//// - Damjan Lampret, lampret@opencores.org ////
|
//// ////
|
//// ////
|
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
Line 42... |
Line 42... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.9 2002/08/18 19:54:17 lampret
|
|
// Added store buffer.
|
|
//
|
// Revision 1.8 2002/08/14 06:23:50 lampret
|
// Revision 1.8 2002/08/14 06:23:50 lampret
|
// Disabled ITLB translation when 1) doing access to ITLB SPRs or 2) crossing page. This modification was tested only with parts of IMMU test - remaining test cases needs to be run.
|
// Disabled ITLB translation when 1) doing access to ITLB SPRs or 2) crossing page. This modification was tested only with parts of IMMU test - remaining test cases needs to be run.
|
//
|
//
|
// Revision 1.7 2002/08/12 05:31:30 lampret
|
// Revision 1.7 2002/08/12 05:31:30 lampret
|
// Delayed external access at page crossing.
|
// Delayed external access at page crossing.
|
Line 293... |
Line 296... |
assign icimmu_cycstb_o = immu_en ? ~(miss | fault) & icpu_cycstb_i & ~page_cross & itlb_done : icpu_cycstb_i & ~page_cross;
|
assign icimmu_cycstb_o = immu_en ? ~(miss | fault) & icpu_cycstb_i & ~page_cross & itlb_done : icpu_cycstb_i & ~page_cross;
|
|
|
//
|
//
|
// Cache Inhibit
|
// Cache Inhibit
|
//
|
//
|
assign icimmu_ci_o = immu_en ? itlb_done & itlb_ci : `OR1200_IMMU_CI;
|
// Cache inhibit is not really needed for instruction memory subsystem.
|
|
// If we would do it, we would do it like this.
|
|
// assign icimmu_ci_o = immu_en ? itlb_done & itlb_ci : `OR1200_IMMU_CI;
|
|
// However this causes a async combinational loop so we stick to
|
|
// no cache inhibit.
|
|
assign icimmu_ci_o = `OR1200_IMMU_CI;
|
|
|
//
|
//
|
// Page cross
|
// Page cross
|
//
|
//
|
// Asserted when CPU address crosses page boundary. Most of the time it is zero.
|
// Asserted when CPU address crosses page boundary. Most of the time it is zero.
|