Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions Bender.local
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,10 @@
# SPDX-License-Identifier: SHL-0.51

overrides:
axi: { git: https://github.com/pulp-platform/axi.git , version: 0.39.1 }
axi_riscv_atomics: { git: https://github.com/pulp-platform/axi_riscv_atomics.git , version: 0.8.2 }
apb: { git: "https://github.com/pulp-platform/apb.git" , version: 0.2.3 }
register_interface: { git: "https://github.com/pulp-platform/register_interface.git" , version: 0.4.1 }
redundancy_cells: { git: "https://github.com/pulp-platform/redundancy_cells.git" , rev: astral-v0 }
tech_cells_generic: { git: "https://github.com/pulp-platform/tech_cells_generic.git" , version: =0.2.13 }
riscv-dbg: { git: "https://github.com/pulp-platform/riscv-dbg.git" , version: =0.8.0 }
idma: { git: "https://github.com/pulp-platform/idma.git" , version: 0.5.1 }
scm: { git: "https://github.com/pulp-platform/scm.git" , rev: 74426dee36f28ae1c02f7635cf844a0156145320 }
clic: { git: "https://github.com/pulp-platform/clic.git" , rev: 0ff9f07e0a492bff046dfe24399b1e1e82d557b7 } # branch: balasr/dev-2
fpnew: { git: "https://github.com/pulp-platform/cvfpu.git" , rev: pulp-v0.1.3 }
cv32e40p: { git: "https://github.com/pulp-platform/cv32e40p.git" , rev: e863f576699815b38cc9d80dbdede8ed5efd5991 }
axi_rt: { git: "https://github.com/pulp-platform/axi_rt.git" , version: =0.0.0-alpha.4 }
serial_link: { git: "https://github.com/pulp-platform/serial_link.git" , rev: 4024f01b1d67cdf1cf9486467d0f2e2f407aa372 }
neureka: { git: "https://github.com/pulp-platform/neureka.git" , rev: f6b9a014c7ff4c536865c8ad376b383d4026f286 }
softex: { git: "https://github.com/belanoa/softex.git" , rev: a93ddff106ca3596660584ce6c7f77fb2a8475e3 }
57 changes: 37 additions & 20 deletions Bender.lock
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ packages:
- obi_peripherals
- register_interface
axi:
revision: fccffb5953ec8564218ba05e20adbedec845e014
version: 0.39.1
revision: 78831b6feba265d5ee2683bbf42b4150f8a35c43
version: 0.39.8
source:
Git: https://github.com/pulp-platform/axi.git
dependencies:
Expand All @@ -48,10 +48,10 @@ packages:
dependencies:
- axi_slice
axi_llc:
revision: 7d7fc1349d4915a657de535a491bc26fbf0d2cfa
revision: d8d41097c43e1bf8448bd40f258fdeb8482a9a8c
version: null
source:
Git: https://github.com/pulp-platform/axi_llc
Git: https://github.com/pulp-platform/axi_llc.git
dependencies:
- axi
- common_cells
Expand All @@ -77,8 +77,8 @@ packages:
- common_cells
- common_verification
axi_rt:
revision: 2be9d4028cd3fd6617a0302a53212495a4c4e3fa
version: 0.0.0-alpha.4
revision: 50153a346b753dc2bc7723c446656a43db35d02d
version: 0.0.0-alpha.10
source:
Git: https://github.com/pulp-platform/axi_rt.git
dependencies:
Expand All @@ -92,6 +92,13 @@ packages:
Git: https://github.com/pulp-platform/axi_slice.git
dependencies:
- common_cells
axi_stream:
revision: 54891ff40455ca94a37641b9da4604647878cc07
version: 0.1.1
source:
Git: https://github.com/pulp-platform/axi_stream.git
dependencies:
- common_cells
axi_vga:
revision: 4d3e70d4f47bb74edc1ab68d99ffc02382e0fb9e
version: 0.1.4
Expand All @@ -108,7 +115,7 @@ packages:
Git: [email protected]:AlSaqr-platform/can_bus.git
dependencies: []
cheshire:
revision: 0c95210cf242c384fafe3019e84b8974c3ff1e92
revision: ce7b0270e1bbce8bb0fe5b006115bbf03a423670
version: null
source:
Git: https://github.com/pulp-platform/cheshire.git
Expand All @@ -124,6 +131,7 @@ packages:
- common_cells
- common_verification
- cva6
- dram_rtl_sim
- idma
- irq_router
- opentitan_peripherals
Expand All @@ -133,8 +141,8 @@ packages:
- tagger
- unbent
clic:
revision: 0ff9f07e0a492bff046dfe24399b1e1e82d557b7
version: 3.0.0-for-carfield
revision: 72472df17362734e4d2ac2bcb8c80a452fba9808
version: 3.0.0-rc5
source:
Git: https://github.com/pulp-platform/clic.git
dependencies:
Expand Down Expand Up @@ -196,7 +204,7 @@ packages:
- fpnew
- tech_cells_generic
cva6:
revision: ec242579ea25a1f6bef7235591814dd1e475f90c
revision: 39e65c9918423ba20985771a0fbd8ad93f18c802
version: null
source:
Git: https://github.com/pulp-platform/cva6.git
Expand All @@ -205,6 +213,13 @@ packages:
- common_cells
- fpnew
- tech_cells_generic
dram_rtl_sim:
revision: 2cac4a9e12a60537567276b539ab6c919c87b5dc
version: 0.1.1
source:
Git: https://github.com/pulp-platform/dram_rtl_sim.git
dependencies:
- axi
dyn_mem:
revision: 480590062742230dc9bd4050358a15b4747bdf34
version: null
Expand Down Expand Up @@ -234,7 +249,7 @@ packages:
- fpnew
- tech_cells_generic
fpnew:
revision: a8e0cba6dd50f357ece73c2c955d96efc3c6c315
revision: e5aa6a01b5bbe1675c3aa8872e1203413ded83d1
version: null
source:
Git: https://github.com/pulp-platform/cvfpu.git
Expand Down Expand Up @@ -287,8 +302,8 @@ packages:
dependencies:
- tech_cells_generic
hyperbus:
revision: 2a14bd8f9a985b488ee23d240764f52f129f7729
version: 0.0.9
revision: 841deb9d821b63bf05a1c85d3a4746352a8bcae2
version: null
source:
Git: https://github.com/pulp-platform/hyperbus.git
dependencies:
Expand All @@ -310,14 +325,16 @@ packages:
Git: https://github.com/pulp-platform/icache-intc.git
dependencies: []
idma:
revision: ca1b28816a3706be0bf9ce01378246d5346384f0
version: 0.5.1
revision: ff5d56fffb3767814db88d6bf8f381974ea33aa5
version: 0.6.4
source:
Git: https://github.com/pulp-platform/idma.git
Git: https://github.com/pulp-platform/iDMA.git
dependencies:
- axi
- axi_stream
- common_cells
- common_verification
- obi
- register_interface
irq_router:
revision: d1d31350b24f3965b3a51e1bc96c71eb34e94db3
Expand Down Expand Up @@ -473,15 +490,15 @@ packages:
- common_cells
- common_verification
riscv-dbg:
revision: 138d74bcaa90c70180c12215db3776813d2a95f2
version: 0.8.0
revision: 358f90110220adf7a083f8b65d157e836d706236
version: 0.8.1
source:
Git: https://github.com/pulp-platform/riscv-dbg.git
dependencies:
- common_cells
- tech_cells_generic
safety_island:
revision: aaef55c798ab53560faaf451a86668fa1e6d0f3b
revision: d9feaedcec1d2fa09fbb57cd1c910fa9a821a0de
version: null
source:
Git: https://github.com/pulp-platform/safety_island.git
Expand Down Expand Up @@ -530,7 +547,7 @@ packages:
- hwpe-stream
- ibex
spatz:
revision: b8fea8f2386f837a0854ad4e84f25b70a3a430e0
revision: b7474288e3945305b5b1c0e7300cc9ad17a222be
version: null
source:
Git: https://github.com/pulp-platform/spatz.git
Expand Down
10 changes: 5 additions & 5 deletions Bender.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@ package:

dependencies:
register_interface: { git: https://github.com/pulp-platform/register_interface.git, version: 0.4.2 }
axi: { git: https://github.com/pulp-platform/axi.git, version: 0.39.1 }
cheshire: { git: https://github.com/pulp-platform/cheshire.git, rev: 0c95210cf242c384fafe3019e84b8974c3ff1e92 } # branch: aottaviano/carfield
hyperbus: { git: https://github.com/pulp-platform/hyperbus.git, version: 0.0.9 }
axi: { git: https://github.com/pulp-platform/axi.git, version: 0.39.8 }
cheshire: { git: https://github.com/pulp-platform/cheshire.git, rev: ce7b0270e1bbce8bb0fe5b006115bbf03a423670 } # branch: carfield
hyperbus: { git: https://github.com/pulp-platform/hyperbus.git, rev: 841deb9d821b63bf05a1c85d3a4746352a8bcae2 } # branch: aottaviano/nonfree
dyn_mem: { git: https://github.com/pulp-platform/dyn_spm.git, rev: 480590062742230dc9bd4050358a15b4747bdf34 } # branch: main
safety_island: { git: https://github.com/pulp-platform/safety_island.git, rev: aaef55c798ab53560faaf451a86668fa1e6d0f3b } # branch: carfield
safety_island: { git: https://github.com/pulp-platform/safety_island.git, rev: d9feaedcec1d2fa09fbb57cd1c910fa9a821a0de } # branch: carfield
pulp_cluster: { git: https://github.com/pulp-platform/pulp_cluster.git, version: 3.0.3 }
opentitan: { git: https://github.com/pulp-platform/opentitan.git, rev: 48595339c9bea8eddf7cc799bb74e6af5ec5d846 } # branch: carfield-soc
mailbox_unit: { git: [email protected]:pulp-platform/mailbox_unit.git, version: 1.1.0 }
apb: { git: https://github.com/pulp-platform/apb.git, version: 0.2.3 }
timer_unit: { git: https://github.com/pulp-platform/timer_unit.git, version: 1.0.2 }
apb_adv_timer: { git: https://github.com/pulp-platform/apb_adv_timer.git, version: 1.0.4 }
can_bus: { git: [email protected]:AlSaqr-platform/can_bus.git, rev: 0ec0bf8b7dab6d5e4b3f7ec58338a8efee066379 } # branch: pulp
spatz: { git: https://github.com/pulp-platform/spatz.git, rev: b8fea8f2386f837a0854ad4e84f25b70a3a430e0 } # branch: main
spatz: { git: https://github.com/pulp-platform/spatz.git, rev: b7474288e3945305b5b1c0e7300cc9ad17a222be } # branch: main
common_cells: { git: https://github.com/pulp-platform/common_cells.git, version: 1.31.1 }
pulp-ethernet: { git: https://github.com/pulp-platform/pulp-ethernet.git, rev: bdc8031ab270a49da28df269266ce9ab9a133636 } # branch: carfield
riscv-dbg: { git: https://github.com/pulp-platform/riscv-dbg.git, version: =0.8.0 }
Expand Down
2 changes: 1 addition & 1 deletion bender-common.mk
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ common_targs += -t spatz
common_targs += -t integer_cluster
common_targs += -t cv32e40p_use_ff_regfile
common_targs += -t scm_use_fpga_scm
common_targs += -t cv64a6_imafdcsclic_sv39
common_targs += -t cv64a6_carfield
common_targs += -t rtl
common_targs += -t deprecated
# Carfield config target.
Expand Down
5 changes: 5 additions & 0 deletions carfield.mk
Original file line number Diff line number Diff line change
Expand Up @@ -127,9 +127,14 @@ PLIC_NUM_INTRS := 89
SERIAL_LINK_NUM_BITS := 16

# AXI Real-Time unit configuration in Carfield
# CVA60, CVA61, DBG, SYSDMA, SL, USB, SAFED, SECD, SPATZD, PULPD
AXIRT_NUM_MGRS := 10
AXIRT_NUM_SUBS := 2

# LLC partitioning configuration
CHS_LLC_PARTITION := 1
CHS_LLC_MAXPARTITIONS := 16

##########################
# Dependency maintenance #
##########################
Expand Down
63 changes: 47 additions & 16 deletions hw/carfield_pkg.sv
Original file line number Diff line number Diff line change
Expand Up @@ -591,13 +591,34 @@ typedef struct packed {
// Cheshire configuration
localparam cheshire_cfg_t CheshireCfg = '{
// CVA6 parameters
Cva6RASDepth : ariane_pkg::ArianeDefaultConfig.RASDepth,
Cva6BTBEntries : ariane_pkg::ArianeDefaultConfig.BTBEntries,
Cva6BHTEntries : ariane_pkg::ArianeDefaultConfig.BHTEntries,
Cva6RASDepth : 2,
Cva6BTBEntries : 32,
Cva6BHTEntries : 128,
Cva6NrPMPEntries : 0,
Cva6ExtCieLength : 'h1000_0000, // [0x2000_0000, 0x7000_0000) is non-CIE,
// [0x7000_0000, 0x8000_0000) is CIE
Cva6ExtCieOnTop : 1,
Cva6NrScoreboardEntries : 8,
Cva6MaxOutstandingStores : 7,
Cva6IcacheByteSize : 16384,
Cva6IcacheSetAssoc : 4,
Cva6IcacheLineWidth : 128,
Cva6DCacheType : config_pkg::WB,
Cva6DcacheByteSize : 32768,
Cva6DcacheSetAssoc : 8,
Cva6DcacheLineWidth : 128,
Cva6DcacheFlushOnFence : 1,
Cva6DcacheInvalidateOnFlush : 0,
Cva6InstrTlbEntries : 16,
Cva6DataTlbEntries : 16,
Cva6LockableTlbWays : 8,
Cva6NumTlbColors : 4,
Cva6UseSharedTlb : 0,
Cva6SharedTlbDepth : 64,
Cva6NrLoadPipeRegs : 1,
Cva6NrStorePipeRegs : 0,
Cva6DcacheIdWidth : 1,
Cva6SuperscalarEn : 0,
// Harts
NumCores : 2,
CoreMaxTxns : 8,
Expand All @@ -610,11 +631,6 @@ localparam cheshire_cfg_t CheshireCfg = '{
NumExtOutIntrTgts : CarfieldNumRouterTargets,
NumExtOutIntrs : CarfieldNumExtIntrs+$bits(cheshire_int_intr_t),
ClicIntCtlBits : 8,
ClicUseSMode : 1,
ClicUseUMode : 0,
ClicUseVsMode : 1,
ClicUseVsModePrio : 1,
ClicNumVsCtxts : 2, // TODO: choose appropriately
NumExtIntrSyncs : SyncStages,
// Interconnect
AddrWidth : 48,
Expand All @@ -631,6 +647,7 @@ localparam cheshire_cfg_t CheshireCfg = '{
RegMaxWriteTxns : 8,
RegAmoNumCuts : 1,
RegAmoPostCut : 1,
RegAdaptMemCut : 1,
// External AXI ports (at most 8 ports and rules)
AxiExtNumMst : CarfieldAxiNumMasters,
AxiExtNumSlv : CarfieldAxiNumSlaves,
Expand Down Expand Up @@ -658,6 +675,7 @@ localparam cheshire_cfg_t CheshireCfg = '{
Dma : 1,
SerialLink : 1,
Vga : 0,
Usb : 1,
AxiRt : 1,
Clic : 1,
IrqRouter : 1,
Expand Down Expand Up @@ -691,29 +709,37 @@ localparam cheshire_cfg_t CheshireCfg = '{
LlcCachePartition : 1,
LlcMaxPartition : 16,
LlcRemapHash : axi_llc_pkg::Modulo,
// VGA: RGB332; carfield doesn't have a vga, but widths are required for top-level pins anyway.
VgaRedWidth : 3,
VgaGreenWidth : 3,
VgaBlueWidth : 2,
// VGA: RGB565; carfield doesn't have a vga, but widths are required for top-level pins anyway.
VgaRedWidth : 5,
VgaGreenWidth : 6,
VgaBlueWidth : 5,
VgaHCountWidth : 24, // TODO: Default is 32; is this needed?
VgaVCountWidth : 24, // TODO: See above
VgaBufferDepth : 16,
VgaMaxReadTxns : 24,
// Serial Link: map other chip's lower 32bit to 'h1_000_0000
SlinkMaxTxnsPerId : 4,
SlinkMaxUniqIds : 4,
SlinkMaxClkDiv : 1024,
SlinkRegionStart : 'h1_0000_0000,
SlinkRegionEnd : 'h2_0000_0000,
SlinkRegionStart : 64'h1_0000_0000,
SlinkRegionEnd : 64'h2_0000_0000,
SlinkTxAddrMask : 'hFFFF_FFFF,
SlinkTxAddrDomain : 'h0000_0000,
SlinkUserAmoBit : 3, // Convention: lower AMO bits for cores, MSB for serial link
// USB config
UsbDmaMaxReads : 16,
UsbAddrMask : 'hFFFF_FFFF,
UsbAddrDomain : 'h0000_0000,
// DMA config
DmaConfMaxReadTxns : 4,
DmaConfMaxWriteTxns : 4,
DmaConfAmoNumCuts : 1,
DmaConfAmoPostCut : 1,
DmaConfEnableTwoD : 1,
DmaNumAxInFlight : 24,
DmaMemSysDepth : 16,
DmaJobFifoDepth : 4,
DmaRAWCouplingAvail : 1,
DmaConfAmoPostCut : 1,
DmaConfEnableTwoD : 1,
// GPIOs
GpioInputSyncs : 1,
// AXI RT
Expand All @@ -722,6 +748,11 @@ localparam cheshire_cfg_t CheshireCfg = '{
AxiRtNumAddrRegions : 2,
AxiRtCutPaths : 1,
AxiRtEnableChecks : 0,
// CLIC
ClicVsclic : 0,
ClicVsprio : 0,
ClicNumVsctxts : 4,
ClicPrioWidth : 1,
// All non-set values should be zero
default: '0
};
Expand Down
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ mkdocs-material
mkdocs-glightbox
dataclasses
jstyleson
flatdict
Loading
Loading