Line 108... |
Line 108... |
// much area on the FPGA, this is an important option to use in trimming down
|
// much area on the FPGA, this is an important option to use in trimming down
|
// used area if necessary. Hence, it needs to be maintained for that purpose.
|
// used area if necessary. Hence, it needs to be maintained for that purpose.
|
// Be aware, though, it will drop your performance by a factor between 2x and
|
// Be aware, though, it will drop your performance by a factor between 2x and
|
// 3x.
|
// 3x.
|
//
|
//
|
|
// We can either pipeline our fetches, or issue one fetch at a time. Pipelined
|
|
// fetches are more complicated and therefore use more FPGA resources, while
|
|
// single fetches will cause the CPU to stall for about 5 stalls each
|
|
// instruction cycle, effectively reducing the instruction count per clock to
|
|
// about 0.2. However, the area cost may be worth it. Consider:
|
|
//
|
|
// Slice LUTs ZipSystem ZipCPU
|
|
// Single Fetching 2521 1734
|
|
// Pipelined fetching 2796 2046
|
|
// (These numbers may be dated, but should still be representative ...)
|
|
//
|
// I recommend only defining this if you "need" to, if area is tight and
|
// I recommend only defining this if you "need" to, if area is tight and
|
// speed isn't as important. Otherwise, just leave this undefined.
|
// speed isn't as important. Otherwise, just leave this undefined.
|
//
|
//
|
// `define OPT_SINGLE_FETCH
|
// `define OPT_SINGLE_FETCH
|
//
|
//
|