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
1 change: 1 addition & 0 deletions hw/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ IPS ?= aes \
adc_ctrl \
aon_timer \
bkdr_loader \
cheriot \
csrng \
dma \
edn \
Expand Down
1 change: 1 addition & 0 deletions hw/ip/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ filegroup(
"//hw/ip/aes:rtl_files",
"//hw/ip/aon_timer:rtl_files",
"//hw/ip/bkdr_loader:rtl_files",
"//hw/ip/cheriot:rtl_files",
"//hw/ip/csrng:rtl_files",
"//hw/ip/dma:rtl_files",
"//hw/ip/edn:rtl_files",
Expand Down
2 changes: 2 additions & 0 deletions hw/ip/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
| [`aon_timer`] | Wakeup and watchdog timers running on a low-power, always-on clock |
| [`ascon`] | Ascon authenticated encryption and decryption engine |
| [`bkdr_loader`] | Provides FPGA-only indirect programming to RAMs |
| [`cheriot`] | CHERIoT-aware memory subsystem |
| [`csrng`] | Takes entropy bits to produce cryptographically secure random numbers for consumption by hardware blocks and by software |
| [`dma`] | DMA Controller for the integrated OpenTitan. |
| [`edn`] | Distributes random numbers produced by CSRNG to hardware blocks |
Expand Down Expand Up @@ -44,6 +45,7 @@
[`aon_timer`]: ./aon_timer/README.md
[`ascon`]: ./ascon/README.md
[`bkdr_loader`]: ./bkdr_loader/README.md
[`cheriot`]: ./cheriot/README.md
[`csrng`]: ./csrng/README.md
[`dma`]: ./dma/README.md
[`edn`]: ./edn/README.md
Expand Down
30 changes: 30 additions & 0 deletions hw/ip/cheriot/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

package(default_visibility = ["//visibility:public"])

filegroup(
name = "rtl_files",
srcs = glob(
["**"],
exclude = [
"dv/**",
"doc/**",
"README.md",
],
) + [
"//hw/ip/cheriot/data:all_files",
],
)

filegroup(
name = "doc_files",
srcs = glob(
[
"**/*.md",
"**/*.svg",
],
allow_empty = True,
) + ["//hw/ip/cheriot/data:doc_files"],
)
1 change: 1 addition & 0 deletions hw/ip/cheriot/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# CHERIoT
83 changes: 83 additions & 0 deletions hw/ip/cheriot/cheriot.core
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
CAPI=2:
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:ip:cheriot:0.1"
description: "CHERIoT memory subsystem"

filesets:
files_rtl:
depend:
- lowrisc:prim:all
- lowrisc:ip:tlul
- pulp-platform:common_cells:common_cells
files:
- rtl/cheriot_reg_pkg.sv
- rtl/cheriot_regs_reg_top.sv
- rtl/cheriot_rmw_filter.sv
- rtl/cheriot_tag_filter.sv
- rtl/cheriot_access_check.sv
- rtl/cheriot.sv
file_type: systemVerilogSource

files_verilator_waiver:
depend:
# common waivers
- lowrisc:lint:common
- lowrisc:lint:comportable
files:
- lint/cheriot.vlt
file_type: vlt

files_ascentlint_waiver:
depend:
# common waivers
- lowrisc:lint:common
- lowrisc:lint:comportable
files:
- lint/cheriot.waiver
file_type: waiver

files_veriblelint_waiver:
depend:
# common waivers
- lowrisc:lint:common
- lowrisc:lint:comportable
files:
- lint/cheriot.vbl
file_type: veribleLintWaiver

parameters:
SYNTHESIS:
datatype: bool
paramtype: vlogdefine


targets:
default: &default_target
filesets:
- tool_verilator ? (files_verilator_waiver)
- tool_ascentlint ? (files_ascentlint_waiver)
- tool_veriblelint ? (files_veriblelint_waiver)
- files_rtl
toplevel: cheriot

lint:
<<: *default_target
default_tool: verilator
parameters:
- SYNTHESIS=true
tools:
verilator:
mode: lint-only
verilator_options:
- "-Wall"

syn:
<<: *default_target
# TODO: set default to DC once
# this option is available
# olofk/edalize#89
default_tool: icarus
parameters:
- SYNTHESIS=true
18 changes: 18 additions & 0 deletions hw/ip/cheriot/data/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

package(default_visibility = ["//visibility:public"])

filegroup(
name = "all_files",
srcs = glob(["**"]),
)

filegroup(
name = "doc_files",
srcs = glob(
["*_testplan.hjson"],
allow_empty = True,
),
)
Loading
Loading