(no commit message)
[libreriscv.git] / 180nm_Oct2020.mdwn
1 # 180 nm ASIC plan for Oct 2020
2
3 This page is for discussion of what we can aim for and reasonably achieve.
4 To be expanded with links to bugreports
5
6 Links:
7
8 * <https://gitlab.com/Chips4Makers>
9 * <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2020-June/007699.html>
10
11 ## Minimum viability
12
13 * a Wishbone interface.  this allows us to drop *directly* into
14 already-written Litex "SOC" infrastructure (leaving all of us free to
15 focus on the essentials)
16 * the dependency matrices are essential.
17 * a Branch Function Unit is essential (minimum of 1)
18 * Load/Store Function Units are essential
19 * so are multiple register file files (SPRs, Condition Regs, 32x INT Regs)
20 * the integer pipelines (integer and logic instructions) are essential
21 (the FP ones not so much)
22 <https://bugs.libre-soc.org/show_bug.cgi?id=305>
23 * a very very basic Branch Prediction system (fixed, but observing POWER
24 branch "hints")
25 * a very very basic Common Data Bus infrastructure.
26 * a TLB and MMU are not strictly essential (not for a proof-of-concept ASIC)
27 * neither in some ways is a L1 cache
28 * [[180nm_Oct2020/interfaces]] we need as a bare minimum include JTAG,
29 GPIO, EINT, SPI and QSPI, I2C, UART16550, LPC (from Raptor Engineering)
30 and that actually might even be it.
31
32 ## Secondary priorities
33
34 * a PLL (this is quite a lot however it turns the ASIC from a 24mhz
35 design into a 300mhz design)
36 * a TLB and MMU (in combination with a PLL if it is GNU/Linux OS capable
37 we have an actual viable *saleable product*, immediately)
38 * dual L1 Caches with the 2x 128-bit-wide L0CacheBuffer to merge 8x LD/STs
39 * multiple Common Data Buses to / from the RegFile along with a 4x
40 "Striped" HI/LO-32-ODD/EVEN access pattern.
41 * multi-issue
42 * PartitionedSignal-based integer pipelines
43 * an FP regfile and associated FP pipelines
44 * SV compliance
45 * 128x INT/FP registers
46 * GPU-style opcodes - Jacob mentioned Texturisation opcodes as being
47 more important than e.g. SIN/COS.
48 * additional interfaces such as RGB/TTL, SDRAM, HyperRAM, RGMII, SD/MMC,
49 USB-ULPI
50 * a pinmux
51 * [FSI instead of JTAG](https://gitlab.raptorengineering.com/raptor-engineering-public/lpc-spi-bridge-fpga/-/blob/master/fsi_master.v)
52
53 # Available people
54
55 * Rudi from <http://asics.ws> to cover the interface set
56 * [[lkcl]] for the scoreboard systems
57 * [[programmerjake]] TODO
58 * [[Yehowshua_Immanuel]] - Delegate interfaces and do timeline/cost projections
59 * [[mnolan]] pipelines
60 * [[tplaten]] memory and cache
61 * [[jock_tanner]] TODO
62 * MarketNext TODO
63
64 # Preliminary coriolis2 ASIC layout
65
66 ## 02jul2020 - first version
67
68 * <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2020-July/008438.html>
69
70 [[!img 180nm_Oct2020/2020-07-02_19-01.png size="900x" ]]
71
72 ## 03jul2020 - DIV unit added
73
74 [[!img 180nm_Oct2020/2020-07-03_11-04.png size="900x" ]]
75