summaryrefslogtreecommitdiffstats
path: root/zpu/hdl/zpu3/src/status.txt
diff options
context:
space:
mode:
Diffstat (limited to 'zpu/hdl/zpu3/src/status.txt')
-rw-r--r--zpu/hdl/zpu3/src/status.txt67
1 files changed, 0 insertions, 67 deletions
diff --git a/zpu/hdl/zpu3/src/status.txt b/zpu/hdl/zpu3/src/status.txt
deleted file mode 100644
index df8773a..0000000
--- a/zpu/hdl/zpu3/src/status.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-- Make LOADSP/STORESP/ADDSP/PUSHPC & OR emulated => From 444 => 428 LUT.
- A pitiful saving in return for destroying performance.
-- If I reduce datapath to 8(which is useless) => 197 LUT.
-
-Bare bones version of ZPU3:
-
-- remove NOP, PUSHPC, STORESP, LOADSP, ADDSP and OR instructions. This requires
- modification to the GCC toolchain and will result in a fairly significant
- code increase. We should still do better than ARM though.
-- reduce datapath to 16 bits. This will reduce stack usage, which is good.
-- 4kBytes of RAM.
-
- [exec] =========================================================================
- [exec] Device utilization summary:
- [exec] ---------------------------
- [exec] Selected Device : 3s400ft256-4
- [exec] Number of Slices: 167 out of 3584 4%
- [exec] Number of Slice Flip Flops: 126 out of 7168 1%
- [exec] Number of 4 input LUTs: 288 out of 7168 4%
- [exec] Number of bonded IOBs: 49 out of 173 28%
- [exec] Number of BRAMs: 1 out of 16 6%
- [exec] Number of GCLKs: 1 out of 8 12%
- [exec] =========================================================================
-
-
-
-
-Measurements:
-
-- Removing PUSHPC(which is possible) reduces usage by 2 LUT's.
-- I tried to introduce the instructions as seperate states at the top level,
- but did not succeed in reducing LUT count. This might be an avenue to
- pursue if asynchronous(?) ROM's could replace logic.
-- 550 LUT @ 76MHz. 32 bit datapath & 8 bit instructions. Added seperate decode
- stage.
-- Tried to move memAControl into decoded opcode. Usage went up to 594 from 550.
-
-- using 16 bit opcodes to encode signals directly. 466 LUT's.
-- w/2kBytes 32 RAM & 32 bit opcodes. 415 LUT's.
-- 16 bit opcode, 16 bit datapath and 1kbyte RAM. 292 LUT's.
-
-- 725 LUT's @ 63MHz
- Minimum period: 15.909ns{1} (Maximum frequency: 62.858MHz)
-- removed addsp, loadsp & storesp. => 670 LUT's.
-- removed all pushes & pops to sp. => 638 LUT's.
-- removed OR instruction. => 672 LUT's.
-- on the second cycle an ADD is done regardless => 713 LUT's.
-- using others => 'x' for e.g. pushsp. 713 => 703.
-- switching from lots of prioritized if() for decoding instruction to a case
- statement. 713 => 631.
-- Using ZPU1's memory scheme instead of inferred memory. 713 => 715, i.e. no
- difference.
-- Removing AddSP. 715 => 704 LUT's.
-- Add COMPARE. 715 => 743 LUT's.
-- Slight reorganization of binary operand & NOP 715 => 704.
-- STORE only pops 1 (which can be fixed in the assembler). 704 => 701.
-- Remove NOP. NOP is only used to clear idim_flag. Use NOT instead.
-- Removing FLIP. 681 => 646. Using a different way to generate the FLIP,
- 681 => 679.
-- Add a seperate memory system for code?
-- Use IDIM_FLAG to cache value before IM and make add single cycle.
-
-- by expanding the opcode to 32 bits, encoding everything in the opcode &
- using case statements. 713 => 433 LUT.
-- 32 bit opcode w/encoded state & 16 bit datapath. => 325 LUT
-- by using 512 byte RAM, 16 bit datapath and 32 bit instructions => 285.
-
OpenPOWER on IntegriCloud