From ebc1cc5a20858557fd5d04bea0b507c85a9c31d2 Mon Sep 17 00:00:00 2001 From: TinyTapeoutBot <139130078+TinyTapeoutBot@users.noreply.github.com> Date: Wed, 1 May 2024 02:05:51 +0300 Subject: [PATCH] feat: update project tt_um_kianv_bare_metal from splinedrive/RISCV-KianV-BareMetalStyle Commit: 5ec86e00e8afa57a3978bc2d9aca0478ea414054 Workflow: https://github.com/splinedrive/RISCV-KianV-BareMetalStyle/actions/runs/8902437308 --- .../tt_um_kianv_bare_metal/commit_id.json | 6 +-- projects/tt_um_kianv_bare_metal/docs/info.md | 40 +++++++++++++++--- projects/tt_um_kianv_bare_metal/info.yaml | 2 +- .../tt_um_kianv_bare_metal/stats/metrics.csv | 2 +- .../tt_um_kianv_bare_metal.gds | Bin 19042618 -> 19042618 bytes .../tt_um_kianv_bare_metal.spef | 2 +- 6 files changed, 40 insertions(+), 12 deletions(-) diff --git a/projects/tt_um_kianv_bare_metal/commit_id.json b/projects/tt_um_kianv_bare_metal/commit_id.json index 4a22364..9c8a117 100644 --- a/projects/tt_um_kianv_bare_metal/commit_id.json +++ b/projects/tt_um_kianv_bare_metal/commit_id.json @@ -1,8 +1,8 @@ { - "app": "Tiny Tapeout tt07 4b2bb6d0", + "app": "Tiny Tapeout tt07 81bffaf9", "repo": "https://github.com/splinedrive/RISCV-KianV-BareMetalStyle", - "commit": "477b9c295c8387652859065384467984a21efce8", - "workflow_url": "https://github.com/splinedrive/RISCV-KianV-BareMetalStyle/actions/runs/8820871140", + "commit": "5ec86e00e8afa57a3978bc2d9aca0478ea414054", + "workflow_url": "https://github.com/splinedrive/RISCV-KianV-BareMetalStyle/actions/runs/8902437308", "sort_id": 1713981849557, "openlane_version": "OpenLane eaba5192c45aa333ab45216ce1773d75d539e9b3", "pdk_version": "open_pdks cd1748bb197f9b7af62a54507de6624e30363943" diff --git a/projects/tt_um_kianv_bare_metal/docs/info.md b/projects/tt_um_kianv_bare_metal/docs/info.md index 91b8d04..c502926 100644 --- a/projects/tt_um_kianv_bare_metal/docs/info.md +++ b/projects/tt_um_kianv_bare_metal/docs/info.md @@ -8,13 +8,41 @@ You can also include images in this folder and reference them in the markdown. E --> ## How it works -Explain how your project works -it works it works +After implementing a KianV uLinux TT06, I felt like implementing a KianV bare +metal edition, which is an RV32E RISC-V32 SoC. This SoC is equipped with a +UART, qspi memory controller (psram/flash), a generic SPI interface, and a sigma-delta emulator for playing audio +files. In the firmware folder, the kernelboot.c and crt0.S files display all +hardware registers and their initialization in the code. ## How to test -Explain how to use your project -Explain how to use your project +First, one must build the toolchain for an RV32E, as you can see here: +``` +sudo apt-get update +sudo apt-get install autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev +git clone --recursive https://github.com/riscv/riscv-gnu-toolchain.git +cd riscv-gnu-toolchain +./configure --prefix=/opt/riscv32e --with-arch=rv32e --with-abi=ilp32e +make +export PATH=/opt/riscv32e/bin:$PATH +``` +The following hardware addresses are given: +``` +#define LSR_DR 0x01 +#define LSR_TEMT 0x40 +#define LSR_THRE 0x20 +#define PWM_ADDR (IO_BASE + 0x14) +#define REG_DIV (IO_BASE + 0x10) +#define SPI_DIV (IO_BASE + 0x500010) +#define UART_LSR (IO_BASE + 0x5) +#define UART_RX (IO_BASE) +#define UART_TX (IO_BASE) +``` +The use of the registers can be determined from the C, linker script and assembly program. +The CPU starts to execute the instruction stored in the NOR Flash at an offset of 1MiB. +When the chip comes into my hands, I will provide demos that I test on the +chip, including audio playback with appropriate documentation. + ## External hardware -List external hardware used in your project (e.g. PMOD, LED display, etc), if any -List external hardware used in your project (e.g. PMOD, LED display, etc), if any +It's very important to use the PMOD Flash + PSRAM. We only use 8MB of PSRAM +address space. diff --git a/projects/tt_um_kianv_bare_metal/info.yaml b/projects/tt_um_kianv_bare_metal/info.yaml index 8d221e5..f9ee65e 100644 --- a/projects/tt_um_kianv_bare_metal/info.yaml +++ b/projects/tt_um_kianv_bare_metal/info.yaml @@ -5,7 +5,7 @@ project: discord: "" # Your discord username, for communication and automatically assigning you a Tapeout role (optional) description: "A baremetal RISC-V RV32E ASIC with audio, spi, uart" # One line description of what your project does language: "verilog" # other examples include SystemVerilog, Amaranth, VHDL, etc - clock_hz: 0 # Clock frequency in Hz (or 0 if not applicable) + clock_hz: 50 # Clock frequency in Hz (or 0 if not applicable) # How many tiles your design occupies? A single tile is about 167x108 uM. tiles: "3x2" # Valid values: 1x1, 1x2, 2x2, 3x2, 4x2, 6x2 or 8x2 diff --git a/projects/tt_um_kianv_bare_metal/stats/metrics.csv b/projects/tt_um_kianv_bare_metal/stats/metrics.csv index 12f85c9..7f386da 100644 --- a/projects/tt_um_kianv_bare_metal/stats/metrics.csv +++ b/projects/tt_um_kianv_bare_metal/stats/metrics.csv @@ -1,2 +1,2 @@ design,design_name,config,flow_status,total_runtime,routed_runtime,(Cell/mm^2)/Core_Util,DIEAREA_mm^2,CellPer_mm^2,OpenDP_Util,Final_Util,Peak_Memory_Usage_MB,synth_cell_count,tritonRoute_violations,Short_violations,MetSpc_violations,OffGrid_violations,MinHole_violations,Other_violations,Magic_violations,pin_antenna_violations,net_antenna_violations,lvs_total_errors,cvc_total_errors,klayout_violations,wire_length,vias,wns,pl_wns,optimized_wns,fastroute_wns,spef_wns,tns,pl_tns,optimized_tns,fastroute_tns,spef_tns,HPWL,routing_layer1_pct,routing_layer2_pct,routing_layer3_pct,routing_layer4_pct,routing_layer5_pct,routing_layer6_pct,wires_count,wire_bits,public_wires_count,public_wire_bits,memories_count,memory_bits,processes_count,cells_pre_abc,AND,DFF,NAND,NOR,OR,XOR,XNOR,MUX,inputs,outputs,level,DecapCells,WelltapCells,DiodeCells,FillCells,NonPhysCells,TotalCells,CoreArea_um^2,power_slowest_internal_uW,power_slowest_switching_uW,power_slowest_leakage_uW,power_typical_internal_uW,power_typical_switching_uW,power_typical_leakage_uW,power_fastest_internal_uW,power_fastest_switching_uW,power_fastest_leakage_uW,critical_path_ns,suggested_clock_period,suggested_clock_frequency,CLOCK_PERIOD,FP_ASPECT_RATIO,FP_CORE_UTIL,FP_PDN_HPITCH,FP_PDN_VPITCH,GRT_ADJUSTMENT,GRT_REPAIR_ANTENNAS,MAX_FANOUT_CONSTRAINT,PL_TARGET_DENSITY,RUN_HEURISTIC_DIODE_INSERTION,STD_CELL_LIBRARY,SYNTH_STRATEGY -/work/src,tt_um_kianv_bare_metal,wokwi,flow completed,0h12m1s0ms,0h9m49s0ms,131763.09108361966,0.1148576576,65881.54554180983,67.58,76.62780000000001,937.42,6496,0,0,0,0,0,0,0,8,7,0,-1,-1,242797,56365,0.0,-1,-1,-1,-1,0.0,-1,-1,-1,-1,161146565.0,0.0,64.6,57.28,29.06,15.25,-1,4796,8510,348,3802,0,0,0,6080,110,55,134,225,836,267,42,1941,1270,1264,38,2846,1577,58,2631,7567,14679,110873.8368,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21.0,47.61904761904762,20,1,50,153.18,153.6,0.3,1,10,0.68,0,sky130_fd_sc_hd,AREA 0 +/work/src,tt_um_kianv_bare_metal,wokwi,flow completed,0h12m10s0ms,0h9m57s0ms,131763.09108361966,0.1148576576,65881.54554180983,67.58,76.62780000000001,936.85,6496,0,0,0,0,0,0,0,8,7,0,-1,-1,242797,56365,0.0,-1,-1,-1,-1,0.0,-1,-1,-1,-1,161146565.0,0.0,64.6,57.28,29.06,15.25,-1,4796,8510,348,3802,0,0,0,6080,110,55,134,225,836,267,42,1941,1270,1264,38,2846,1577,58,2631,7567,14679,110873.8368,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21.0,47.61904761904762,20,1,50,153.18,153.6,0.3,1,10,0.68,0,sky130_fd_sc_hd,AREA 0 diff --git a/projects/tt_um_kianv_bare_metal/tt_um_kianv_bare_metal.gds b/projects/tt_um_kianv_bare_metal/tt_um_kianv_bare_metal.gds index a42d6b23c50082d695aad34a5b5a02f45647802e..5a0a759adbc40d04430eb487450d1411e9d60580 100644 GIT binary patch delta 4689 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 UF&?sc$l;;2Wf#r|%Xi=W9~gq(Z2$lO diff --git a/projects/tt_um_kianv_bare_metal/tt_um_kianv_bare_metal.spef b/projects/tt_um_kianv_bare_metal/tt_um_kianv_bare_metal.spef index 38cdcbf..6776275 100644 --- a/projects/tt_um_kianv_bare_metal/tt_um_kianv_bare_metal.spef +++ b/projects/tt_um_kianv_bare_metal/tt_um_kianv_bare_metal.spef @@ -1,6 +1,6 @@ *SPEF "ieee 1481-1999" *DESIGN "tt_um_kianv_bare_metal" -*DATE "17:49:49 Wednesday April 24, 2024" +*DATE "22:41:07 Tuesday April 30, 2024" *VENDOR "The OpenROAD Project" *PROGRAM "OpenROAD" *VERSION "0889970d1790a2617e69f253221b8bd7626e51dc"