Skip to content

Commit f0e03a4

Browse files
author
Cesar Fuguet
committed
Initial commit of the Core-V HPDcache
0 parents  commit f0e03a4

File tree

71 files changed

+23807
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+23807
-0
lines changed

.gitignore

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
vnc_logs/
2+
veloce.map
3+
VRMDATA/
4+
*.log
5+
*.wlf
6+
*.ucdb

CHANGELOG.md

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Changelog
2+
All notable changes to this project will be documented in this file.
3+
4+
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5+
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6+
7+
## [Unreleased]
8+
9+
### Added
10+
11+
### Changed
12+
13+
## [1.0.0] - 2023-02-22
14+
15+
### Added
16+
- Initial release to the OpenHW Group

CODEOWNERS

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Global Owners
2+
* @cfuguet

LICENSE

+97
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
Solderpad Hardware License v2.1
2+
3+
This license operates as a wraparound license to the Apache License
4+
Version 2.0 (the “Apache License”) and incorporates the terms and
5+
conditions of the Apache License (which can be found here:
6+
http://apache.org/licenses/LICENSE-2.0), with the following additions and
7+
modifications. It must be read in conjunction with the Apache License.
8+
Section 1 below modifies definitions and terminology in the Apache
9+
License and Section 2 below replaces Section 2 of the Apache License.
10+
The Appendix replaces the Appendix in the Apache License. You may, at
11+
your option, choose to treat any Work released under this license as
12+
released under the Apache License (thus ignoring all sections written
13+
below entirely).
14+
15+
1. Terminology in the Apache License is supplemented or modified as
16+
follows:
17+
18+
“Authorship”: any reference to ‘authorship’ shall be taken to read
19+
“authorship or design”.
20+
21+
“Copyright owner”: any reference to ‘copyright owner’ shall be taken to
22+
read “Rights owner”.
23+
24+
“Copyright statement”: the reference to ‘copyright statement’ shall be
25+
taken to read ‘copyright or other statement pertaining to Rights’.
26+
27+
The following new definition shall be added to the Definitions section of
28+
the Apache License:
29+
30+
“Rights” means copyright and any similar right including design right
31+
(whether registered or unregistered), rights in semiconductor
32+
topographies (mask works) and database rights (but excluding Patents and
33+
Trademarks).
34+
35+
The following definitions shall replace the corresponding definitions in
36+
the Apache License:
37+
38+
“License” shall mean this Solderpad Hardware License version 2.1, being
39+
the terms and conditions for use, manufacture, instantiation, adaptation,
40+
reproduction, and distribution as defined by Sections 1 through 9 of this
41+
document.
42+
43+
“Licensor” shall mean the owner of the Rights or entity authorized by the
44+
owner of the Rights that is granting the License.
45+
46+
“Derivative Works” shall mean any work, whether in Source or Object form,
47+
that is based on (or derived from) the Work and for which the editorial
48+
revisions, annotations, elaborations, or other modifications represent,
49+
as a whole, an original work of authorship or design. For the purposes of
50+
this License, Derivative Works shall not include works that remain
51+
reversibly separable from, or merely link (or bind by name) or physically
52+
connect to or interoperate with the Work and Derivative Works thereof.
53+
54+
“Object” form shall mean any form resulting from mechanical
55+
transformation or translation of a Source form or the application of a
56+
Source form to physical material, including but not limited to compiled
57+
object code, generated documentation, the instantiation of a hardware
58+
design or physical object or material and conversions to other media
59+
types, including intermediate forms such as bytecodes, FPGA bitstreams,
60+
moulds, artwork and semiconductor topographies (mask works).
61+
62+
“Source” form shall mean the preferred form for making modifications,
63+
including but not limited to source code, net lists, board layouts, CAD
64+
files, documentation source, and configuration files.
65+
66+
“Work” shall mean the work of authorship or design, whether in Source or
67+
Object form, made available under the License, as indicated by a notice
68+
relating to Rights that is included in or attached to the work (an
69+
example is provided in the Appendix below).
70+
71+
2. Grant of License. Subject to the terms and conditions of this License,
72+
each Contributor hereby grants to You a perpetual, worldwide,
73+
non-exclusive, no-charge, royalty-free, irrevocable license under the
74+
Rights to reproduce, prepare Derivative Works of, make, adapt, repair,
75+
publicly display, publicly perform, sublicense, and distribute the Work
76+
and such Derivative Works in Source or Object form and do anything in
77+
relation to the Work as if the Rights did not exist.
78+
79+
APPENDIX
80+
81+
Copyright 2023 CEA*
82+
*Commissariat a l'Energie Atomique et aux Energies Alternatives (CEA)
83+
84+
SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
85+
86+
Licensed under the Solderpad Hardware License v 2.1 (the “License”); you
87+
may not use this file except in compliance with the License, or, at your
88+
option, the Apache License version 2.0. You may obtain a copy of the
89+
License at
90+
91+
https://solderpad.org/licenses/SHL-2.1/
92+
93+
Unless required by applicable law or agreed to in writing, any work
94+
distributed under the License is distributed on an “AS IS” BASIS, WITHOUT
95+
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
96+
License for the specific language governing permissions and limitations
97+
under the License.

README.md

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# OpenHW Core-V High-Performance L1 Dcache (CV-HPDcache)
2+
3+
The HPDcache is an open-source High-Performance, Multi-requester, Out-of-Order L1 Dcache for RISC-V cores and accelerators.
4+
5+
6+
## Directory Structure
7+
8+
<table>
9+
<tr>
10+
<th style="text-align:left;width:20%">Directory</th>
11+
<th style="text-align:left">Description</th>
12+
</tr>
13+
<tr>
14+
<td><i>rtl</i></td>
15+
<td>Contains the file lists to be used for the compiling of the HPDcache</td>
16+
</tr>
17+
<tr>
18+
<td><i>rtl/src<i></td>
19+
<td>Contains the SystemVerilog RTL sources of the HPDcache</td>
20+
</tr>
21+
<tr>
22+
<td><i>rtl/src/target</i></td>
23+
<td>Contains processor-dependent sources (e.g. adapter modules for the CVA6 core)</td>
24+
</tr>
25+
<tr>
26+
<td><i>docs</i></td>
27+
<td>Contains documentation of the HPDcache</td>
28+
</tr>
29+
</table>
30+
31+
32+
## Documentation
33+
34+
The HPDcache specification document can be found in the *docs/hpdcache_spec_document* folder.
35+
It is written in LaTeX.
36+
You cand find pre-compiled PDF documents in *docs/hpdcache_spec_document/release*.
37+
38+
If you need to recompile the specification document, a dedicated *Makefile* is in the specification folder.
39+
This *Makefile* needs the *latexmk* command-line tool (included in most common LaTeX distributions) and the *inkscape* tool to convert SVG images into PDF.
40+
41+
42+
## Licensing
43+
44+
The HPDcache is released under the Solderpad Hardware License (version 2.1).
45+
Please refer to the [LICENSE](LICENSE) file for further information.
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
build/
2+
pdf/
3+
supplement/package

docs/hpdcache_spec_document/Makefile

+110
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
##
2+
## Copyright 2023 CEA*
3+
## *Commissariat a l'Energie Atomique et aux Energies Alternatives (CEA)
4+
##
5+
## SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
6+
##
7+
## Licensed under the Solderpad Hardware License v 2.1 (the “License”); you
8+
## may not use this file except in compliance with the License, or, at your
9+
## option, the Apache License version 2.0. You may obtain a copy of the
10+
## License at
11+
##
12+
## https://solderpad.org/licenses/SHL-2.1/
13+
##
14+
## Unless required by applicable law or agreed to in writing, any work
15+
## distributed under the License is distributed on an “AS IS” BASIS, WITHOUT
16+
## WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
17+
## License for the specific language governing permissions and limitations
18+
## under the License.
19+
##
20+
## Author(s): Cesar Fuguet
21+
## Date: February, 2023
22+
## Description: Makefile for the specification document of the HPDcache
23+
## hardware IP
24+
##
25+
LATEXMK = latexmk -pdf
26+
INKSCAPE = inkscape --without-gui
27+
PDFVIEWER = evince
28+
RM = rm -rf
29+
RMDIR = rmdir -p
30+
CP = cp -f
31+
ECHO = echo -e
32+
MKDIR = mkdir -p
33+
34+
PDF_DIR = pdf
35+
AUX_DIR = build
36+
SOURCE_DIR = source
37+
RELEASE_DIR = release
38+
39+
VERSION = $(shell cat version)
40+
41+
TARGET = hpdcache_spec
42+
TEX_SOURCES = $(SOURCE_DIR)/$(TARGET).bib \
43+
$(SOURCE_DIR)/hpdcache_spec_changelog.tex \
44+
$(SOURCE_DIR)/hpdcache_spec_preamble.tex \
45+
$(AUX_DIR)/hpdcache_data_ram_organization.pdf \
46+
$(AUX_DIR)/hpdcache_request_arbiter.pdf \
47+
$(AUX_DIR)/hpdcache_core.pdf \
48+
$(AUX_DIR)/hpdcache_request_address_data_alignment.pdf \
49+
$(AUX_DIR)/wave_ready_before_valid.pdf \
50+
$(AUX_DIR)/wave_valid_before_ready.pdf \
51+
$(AUX_DIR)/wave_ready_when_valid.pdf \
52+
$(AUX_DIR)/wave_back_to_back.pdf
53+
54+
LATEXMK_ARGS = -bibtex \
55+
$(if $(VERBOSE),,-silent) \
56+
-pretex='\newcommand{\docversion}{$(VERSION)}' \
57+
-usepretex
58+
59+
vpath %.svg $(SOURCE_DIR)/images
60+
vpath %.svg $(SOURCE_DIR)/images/exported
61+
62+
all:
63+
@$(ECHO) "usage: make [target]\n"
64+
@$(ECHO) "Target candidates:\n"
65+
@$(ECHO) "pdf generate PDF document"
66+
@$(ECHO) "release make a release of the PDF document"
67+
@$(ECHO) "view view PDF document"
68+
@$(ECHO) "clean clean auxiliary files"
69+
@$(ECHO) "clean_pdf clean PDF file"
70+
@$(ECHO) "distclean clean all generated files"
71+
72+
.PHONY: release
73+
release: $(RELEASE_DIR)/$(TARGET)-$(VERSION).pdf
74+
75+
$(RELEASE_DIR)/$(TARGET)-$(VERSION).pdf: $(PDF_DIR)/$(TARGET).pdf
76+
@$(MKDIR) $(dir $@)
77+
$(CP) $< $@
78+
79+
.PHONY: pdf
80+
pdf: $(PDF_DIR)/$(TARGET).pdf
81+
82+
$(PDF_DIR)/$(TARGET).pdf: $(AUX_DIR)/$(TARGET).pdf
83+
@$(MKDIR) $(dir $@)
84+
$(CP) $< $@
85+
86+
$(AUX_DIR)/$(TARGET).pdf: $(SOURCE_DIR)/$(TARGET).tex \
87+
$(TEX_SOURCES)
88+
@$(MKDIR) $(dir $@)
89+
$(LATEXMK) $(LATEXMK_ARGS) --output-directory=$(dir $@) $<
90+
91+
$(AUX_DIR)/%.pdf: %.svg
92+
@$(MKDIR) $(dir $@)
93+
$(INKSCAPE) --export-pdf=$@ --export-area-drawing $<
94+
95+
.PHONY: view
96+
view: $(PDF_DIR)/$(TARGET).pdf
97+
@$(ECHO) "Opening PDF viewer..."
98+
@$(PDFVIEWER) $< >&/dev/null &
99+
100+
.PHONY: clean clean_pdf distclean
101+
clean:
102+
@$(ECHO) "Cleaning build directory..."
103+
@$(RM) $(AUX_DIR)
104+
105+
clean_pdf:
106+
@$(ECHO) "Cleaning generated PDF file..."
107+
@$(RM) $(PDF_DIR)/$(TARGET).pdf
108+
@$(RMDIR) $(PDF_DIR) >&/dev/null || true
109+
110+
distclean: clean clean_pdf

docs/hpdcache_spec_document/latexmkrc

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
$ENV{'TEXINPUTS'}=':source:source/images:source/images/exported:build:';
2+
$ENV{'BIBINPUTS'}=':source:';
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
%%
2+
%% Copyright 2023 CEA*
3+
%% *Commissariat a l'Energie Atomique et aux Energies Alternatives (CEA)
4+
%%
5+
%% SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
6+
%%
7+
%% Licensed under the Solderpad Hardware License v 2.1 (the “License”); you
8+
%% may not use this file except in compliance with the License, or, at your
9+
%% option, the Apache License version 2.0. You may obtain a copy of the
10+
%% License at
11+
%%
12+
%% https://solderpad.org/licenses/SHL-2.1/
13+
%%
14+
%% Unless required by applicable law or agreed to in writing, any work
15+
%% distributed under the License is distributed on an “AS IS” BASIS, WITHOUT
16+
%% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
17+
%% License for the specific language governing permissions and limitations
18+
%% under the License.
19+
%%
20+
%% Author(s): Cesar Fuguet
21+
%% Date: February, 2023
22+
%% Description: Bibliography of the specification document of the
23+
%% HPDcache hardware IP
24+
%%
25+
@online{RISCV_spec,
26+
title = {{The RISC-V Instruction Set Manual, Volume I: Unprivileged ISA}},
27+
author = {Waterman, Andrew and Asanovic, Krste},
28+
year = 2019,
29+
url = {https://github.com/riscv/riscv-isa-manual/releases/download/Ratified-IMAFDQC/riscv-spec-20191213.pdf},
30+
}
31+
@online{RISCV_privileged_spec,
32+
title = {{The RISC-V Instruction Set Manual, Volume II: Privileged Architecture}},
33+
author = {Waterman, Andrew and Asanovic, Krste and Hauser, John},
34+
year = 2021,
35+
url = {https://github.com/riscv/riscv-isa-manual/releases/download/Priv-v1.12/riscv-privileged-20211203.pdf},
36+
}
37+
38+
@Techreport{arm_amba_2017,
39+
author = {\mbox{Arm Limited}},
40+
year = "2020",
41+
title = {{AMBA} {AXI} and {ACE} {Protocol} {Specification}},
42+
type = "Specification Document",
43+
source = {https://developer.arm.com/documentation/ihi0022/hc/?lang=en},
44+
address = "110 Fulbourn Road, Cambridge, England",
45+
pages = {440},
46+
language = {en},
47+
note = "",
48+
}
49+
50+
@INPROCEEDINGS{durand_vrp_2022,
51+
author = {Durand, Yves and Guthmuller, Eric and Fuguet, Cesar and Fereyre, Jérôme and Bocco, Andrea and Alidori, Riccardo},
52+
booktitle = {2022 IEEE 29th Symposium on Computer Arithmetic (ARITH)},
53+
title = {Accelerating Variants of the Conjugate Gradient with the Variable Precision Processor},
54+
year = {2022},
55+
volume = {},
56+
number = {},
57+
pages = {51-57},
58+
doi = {10.1109/ARITH54963.2022.00017}
59+
}
60+
61+
@online{epac_website_2022,
62+
title = {{European Processor Initiative (EPI) Accelerator Stream}},
63+
author = {},
64+
year = {2022},
65+
url = {https://www.european-processor-initiative.eu/accelerator/},
66+
lastaccessed = {February 23, 2023},
67+
}

0 commit comments

Comments
 (0)