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