Skip to content
This repository was archived by the owner on Dec 1, 2022. It is now read-only.

Commit 3f9041a

Browse files
author
Fiscarelli
committed
CEP Release v3.11
1 parent 05d2917 commit 3f9041a

File tree

111 files changed

+7617
-42934
lines changed

Some content is hidden

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

111 files changed

+7617
-42934
lines changed

LICENSE.md

-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
<<<<<<< HEAD
21
[//]: # (Copyright 2021 Massachusetts Institute of Technology)
32
[//]: # (SPDX short identifier: BSD-2-Clause)
43

54
[![DOI](https://zenodo.org/badge/108179132.svg)](https://zenodo.org/badge/latestdoi/108179132)
65
[![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg)](https://opensource.org/licenses/BSD-2-Clause)
76

8-
=======
9-
>>>>>>> 6494113db2448733228b0f6659bfa0a7fedc93c0
107
Copyright 2021 Massachusetts Institute of Technology
118

129
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

README.md

-174
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,7 @@
88
<img src="./doc/cep_logo.jpg" width="721" height="300">
99
</p>
1010
<p align="center">
11-
<<<<<<< HEAD
1211
<img src="./doc/version3.11.jpg" width="98" height="60">
13-
=======
14-
<img src="./doc/version3.1.jpg" width="98" height="60">
15-
>>>>>>> 6494113db2448733228b0f6659bfa0a7fedc93c0
1612
</p>
1713
<p align="center">
1814
Copyright 2021 Massachusetts Institute of Technology
@@ -26,13 +22,10 @@ The Common Evaluation Platform (CEP) is intended as a surrogate System on a Chip
2622
The Logic Locking Key Interface (LLKI) has been provided as a representative means of distributing key / configuration material to LLKI-enabled cores.
2723

2824
For CEP v3.1+, the full LLKI has been added. This includes the Surrogate Root of Trust (SRoT) and mock Technique Specific Shims (TSS) for all accelerator cores.
29-
<<<<<<< HEAD
3025

3126
### Please check the [Release Notes](./RELEASE_NOTES.md) to understand what has changed and a list of known issues.
3227

3328
<br/><br/>
34-
=======
35-
>>>>>>> 6494113db2448733228b0f6659bfa0a7fedc93c0
3629

3730
<p align="center">
3831
<img src="./doc/cep_v3.1_architecture.jpg">
@@ -56,11 +49,7 @@ Currently, the test platform for the CEP is the Xilinx VC-707 FPGA Development B
5649

5750
## Pre-requisites (validated test/build configuration):
5851
The following items describe the configuration of the system that CEP has been developed and tested on:
59-
<<<<<<< HEAD
6052
* Ubuntu 16.04 LTS x86_64 / Ubuntu 18.04 LTS x86_64 [RECOMMENDED]
61-
=======
62-
* Ubuntu 16.04 LTS x86_64 / Ubuntu 18.04 LTS x86_64
63-
>>>>>>> 6494113db2448733228b0f6659bfa0a7fedc93c0
6453
* Modelsim Questa Sim-64 v2019.1 (for co-simulation and unit simulation)
6554
* Xilinx Vivado 2018.3 (Design or System Edition)
6655
- Plus Digilent Adept Drivers for programming the VC-707, https://reference.digilentinc.com/reference/software/adept/start?redirect=1#software_downloads)
@@ -117,14 +106,10 @@ Ensure you have write permissions to the directory pointed to by $RISCV and that
117106

118107
#### Ubuntu 18.04 LTS instructions
119108

120-
<<<<<<< HEAD
121109
Default openssl version is 18.04 is different than 16.04. Install the following additional package.
122110
`sudo apt install libssl1.0-dev`
123111

124112
You'll also need to force the compilation of the riscv-toolchain with GCC-5, which is not installed by default.
125-
=======
126-
If you are using Ubuntu 18.04 LTS, you need to force the compilation of the riscv-toolchain with GCC-5, which is not installed by default.
127-
>>>>>>> 6494113db2448733228b0f6659bfa0a7fedc93c0
128113

129114
First, install gcc-5
130115
```
@@ -167,7 +152,6 @@ Next, you need to install Scala which is required by Chisel.
167152
Install the required dependencies by running the following command:
168153
`sudo apt install build-essential git texinfo bison flex libgmp-dev libmpfr-dev libmpc-dev gawk libz-dev libssl-dev python unzip libncurses5-dev libglib2.0-dev libpixman-1-dev device-tree-compiler`
169154
170-
<<<<<<< HEAD
171155
## Repository Directory Structure (highlight)
172156
```
173157
<CEP_ROOT>
@@ -205,47 +189,6 @@ Install the required dependencies by running the following command:
205189
|
206190
|-- riscv-gnu-toolchain/ - RISC-V GNU toolchain
207191
|-- riscv-tests - RISC-V tests (used for importing into the cosimulation environment)
208-
=======
209-
If running on Ubuntu 18.04, you'll need to to the following:
210-
`sudo apt install libssl1.0-dev`
211-
212-
## Repository Directory Structure (highlight)
213-
```
214-
<CEP ROOT> ---|-- cosim/ - Defines the CEP co-simulation evironment for performing "chip" level
215-
| simulations of the CEP in either bare metal or bus functional model
216-
| (BFM) mode. Dependent on the building of the CEP hardware (described
217-
| below). Refer to the README.md file in this directory for more information.
218-
|
219-
|-- unit_simulation/ - Unit-level testbenches for the CEP cores
220-
|
221-
|-- get_external_dependencies.sh - Script used to fetch external CEP dependencies.
222-
|
223-
|-- hdl_cores/ - Source for all the components within the CEP. All the blocks that
224-
| | implement algorithms also have corresponding test vectors.
225-
| |
226-
| |-- freedom - CEP-modified variant of the Freedom U500 platform
227-
| | |
228-
| | |-- mitllBlocks - Chisel code for the CEP cores
229-
| |
230-
| |-- llki - LLKI SystemVerilog files
231-
|
232-
|-- generated_dsp_code/ - Placeholder for the generated DSP code that cannot be
233-
| directly included in the CEP repository due to licensing
234-
| restrictions.
235-
|
236-
|-- opentitan/ - Copy of the OpenTitan repository, some components are used by the LLKI.
237-
|
238-
|-- software/
239-
|
240-
|-- freedom-u-sdk/ - Directory containing an export of the https://github.com/
241-
| mcd500/freedom-u-sdk directory, which is a fork of the
242-
| main SiFive repo. Variant specifically chosen because it
243-
| has been modified to boot without PCIe support (which for
244-
| the VC-707 requires a HiTech Global HTG-FMC-PCIE module).
245-
|
246-
|-- riscv-gnu-toolchain/ - RISC-V GNU toolchain
247-
|-- riscv-tests - RISC-V tests (used for importing into the cosimulation environment)
248-
>>>>>>> 6494113db2448733228b0f6659bfa0a7fedc93c0
249192

250193
```
251194
@@ -254,11 +197,7 @@ The SRoT is a SINGLE THREADED DEVICE.
254197
255198
As such, care should be taken when using the SRoT in a multi-core environment. Multiple cores should NOT access the SRoT at the same time.
256199
257-
<<<<<<< HEAD
258200
As of CEP v3.1+, all cores have been LLKI-enabled. Thus, they must be initialized with the appropriate mock keys.
259-
=======
260-
As of CEP v3.1+, all cores have been LLKI-enabled. Thus, they must ne initialized with the appropriate mock keys.
261-
>>>>>>> 6494113db2448733228b0f6659bfa0a7fedc93c0
262201
263202
See ./cosim/drivers/diag/cepMacroMix.cc for example code.
264203
@@ -388,11 +327,7 @@ You should see the following logo/text appear:
388327
./+++++++++++oo+++: +oo++o++++o+o+oo+oo.- `s+++s`-
389328
.--:---:-:-::-::` -::::::::::::::::::. :::::.
390329
391-
<<<<<<< HEAD
392330
Common Evaluation Platform v3.11
393-
=======
394-
Common Evaluation Platform v3.1
395-
>>>>>>> 6494113db2448733228b0f6659bfa0a7fedc93c0
396331
Copyright 2021 Massachusetts Institute of Technology
397332
398333
Built upon the SiFive Freedom U500 Platform using
@@ -415,11 +350,7 @@ At the command prompt, you can run the CEP diagnostics by commanding `cep_diag`.
415350
A partial output should be similar to:
416351

417352
```sh
418-
<<<<<<< HEAD
419353
*** CEP Tag=CEPTest CEP HW VERSION = v3.11 was built on Feb 14 2021 12:01:26 ***
420-
=======
421-
*** CEP Tag=CEPTest CEP HW VERSION = v3.10 was built on Feb 14 2021 12:01:26 ***
422-
>>>>>>> 6494113db2448733228b0f6659bfa0a7fedc93c0
423354
CEP FPGA Physical=0x70000000 -> Virtual=0x00000020004fa000
424355
gSkipInit=0/0
425356
gverbose=0/0
@@ -495,111 +426,6 @@ More information about the unit simulations can be found [./unit_simulation/READ
495426
Feedback on the CEP is welcomed by the authors. They are best contacted by opening a Github issue.
496427

497428

498-
<<<<<<< HEAD
499-
=======
500-
## Release Notes
501-
502-
v1.0 - Initial release
503-
504-
v1.1 - (19 July 2018)
505-
* Directory structure has been reorganized (details below)
506-
* Upgraded to the non-deprecated mor1kx (added as a subnodule)
507-
* Verified with both the pre-built and build-your-own version of the Newlib toolchain as described on [http://openrisc.io](http://openrisc.io)
508-
* In addition to test vectors for each of the cores, some additional test_software, such as "hello world", have been added for reference
509-
* Expanded testbench (details below)
510-
* Bug fixes and general code cleanup [Additional details in the git commit history]
511-
512-
v1.1.1 - (27 September 2018)
513-
* Added CEP\_utilization\_placed.rpt in implSummaries directory. This summarizes utlization of the CEP v1.1 targetted to the VC707 using Vivado 2018.1.
514-
515-
v1.2 - (15 November 2018)
516-
* Major Update: The underlying bus has been converted from Wishbone-B4 to AXI4-Lite. All cores as well as the MOR1KX has been wrapped with translation modules. All the wrapping logic and interconnect are now in SystemVerilog.
517-
* Regression Suite: In additon to each core's unit tests, a regression test suite has been included. When compiled by the or1k toolchain, it be loaded/synthesized into the CEP RAM block and run at boot time.
518-
* Modelsim Testing: Unit-level and system-level modelsim-based testbenches added
519-
* GPS clkgen: The GPS clock gen component has been moved to the top level of the CEP, simplifying its replacement when targetting an ASIC.
520-
* Misc. bug fixes
521-
522-
v2.0 - (16 August 2019)
523-
* Major Update: mor1k proceesor core replaced with the UCB Rocket-Chip within the SiFive Freedom U500 Platform. All modules have been updated to support TileLink natively. Currently only the AES and FIR cores have been integrated, but v2.1 will include the re-release of all the CEP cores.
524-
525-
v2.1 - (31 October 2019)
526-
* Integrated DES3, GPS, MD5, RSA, SHA256, DFT, IDFT, and IIR cores.
527-
528-
v2.2 - (31 January 2020)
529-
* Added co-simulation environment that supports both Bus Functional Model (BFM) and Baremetal simulation modes. Additional diagnostic capabilities within Linux.
530-
531-
v2.3 - (17 April 2020)
532-
* Added unit-level testbenches for all CEP cores. Co-simulation modified to generate unit-level test stimulus.
533-
534-
v2.4 - (5 June 2020)
535-
* CEP core test coverage expanded
536-
* Unit testbenches transactional-level support added
537-
* AES-derived and FIR-derived generated cores added
538-
* Misc. bug fixes
539-
540-
v2.5 - (31 July 2020)
541-
* All Unit-level testbenches have been expanded to optional support the Logic Locking Keying Interface (LLKI)
542-
for both cycle-level and transactional-level modes
543-
544-
v2.51 - (7 August 2020)
545-
* Legacy unused core wrapper files (axi4lite and wb) removed
546-
547-
v2.52 - (2 September 2020)
548-
* Added ./doc/CEP_TestDescriptions.pdf
549-
550-
v2.6 - (18 September 2020)
551-
* Rocket-Chip and Freedom repositories updated. Source responsitory list:
552-
https://github.com/sifive/freedom/tree/8622a684e7e54d0a20df90659285b9c587772629 - Aug 19, 2020
553-
https://github.com/chipsalliance/rocket-chip/tree/d2210f9545903fad40c9860389cdcf9c28515dba - Apr 2, 2020
554-
https://github.com/sifive/fpga-shells/tree/19d0818deda5d295154992bd4e2c490b7c905df9 - Jan 28, 2020
555-
https://github.com/sifive/sifive-blocks/tree/12bdbe50636b6c57c8dc997e483787fdb5ee540b - Dec 17, 2019
556-
https://github.com/mcd500/freedom-u-sdk/tree/29fe529f8dd8e1974fe1743184b3e13ebb2a21dc - Apr 12, 2019
557-
* riscv-tools (formerly under rocket-chip) now located in ./software/riscv-gnu-toolchain
558-
* KNOWN ISSUES:
559-
- The iCacheCoherency passes when running bare-metal simulation, but fails when running on the VC-707. There is an issue with
560-
the iCache protocol that the tight-looped iCache coherency test results in one or more of the Rocket Cores (there are 4 in
561-
the CEP) L1 iCache not getting the value associated with the most recent write to instruction memory.
562-
563-
Functionally, this should only cause an issue when dealing with self-modifying code, which is an atypical coding practice.
564-
565-
v2.61 - (2 October 2020)
566-
- Added initial simulation support for Cadence XCellium
567-
- Cosim: Expanded DDR3 memory size to support "larger" bare-metal executables created by the new RISCV toolchain released with v2.6
568-
569-
v2.7 - (28 October 2020)
570-
* Added support for RISC-V ISA tests (under ./cosim/isaTests)
571-
* Updated license statements to BSD-2-Clause
572-
* KNOWN ISSUES:
573-
- The iCacheCoherency passes when running bare-metal simulation, but fails when running on the VC-707. There is an issue with
574-
the iCache protocol that the tight-looped iCache coherency test results in one or more of the Rocket Cores (there are 4 in
575-
the CEP) L1 iCache not getting the value associated with the most recent write to instruction memory.
576-
577-
Functionally, this should only cause an issue when dealing with self-modifying code, which is an atypical coding practice.
578-
579-
- The following cosim tests fail when run under RHEL using the "new" RISC-V toolchain:
580-
- bareMetalTests/cacheCoherence
581-
- isaTests/rv64mi-p-access
582-
- isaTests/rv64ud-p-ldst
583-
584-
v2.71 - (2 November 2020)
585-
* Corrected README.md issue
586-
587-
v3.0 - (18 December 2020)
588-
* Initial LLKI release with Surrogate Root of Trust
589-
* AES core replaced with LLKI-enabled AES core, all other cores remain unchanged
590-
591-
v3.01 - (19 December 2020)
592-
* Removed used flash model reference in cep_tb.v
593-
594-
v3.1 - (22 February 2021)
595-
* Full LLKI support (All CEP cores are now LLKI enabled)
596-
* Known Issues:
597-
- cep_diag (on Linux) has NOT been updated to work with the LLKI. Thus, running the tests that use
598-
the CEP cores (e.g., cep_aes, cep_des3, etc.) will result in failure
599-
- rv64si-p-dirty ISA test fails
600-
- unit_simulations need to be updated to be compatible with the LLKI
601-
602-
>>>>>>> 6494113db2448733228b0f6659bfa0a7fedc93c0
603429
## Licensing
604430
The CEP been developed with a goal of using components with non-viral, open source licensing whenever possible. When not feasible (such as Linux), pointers to reference repositories are given using the [get_external_dependencies.sh](./get_external_dependencies.sh) script.
605431

cosim/bareMetalTests/Makefile

-3
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,7 @@ BARE_TEST_LIST = \
6565
plicTest \
6666
fragmemter \
6767
csrTest \
68-
<<<<<<< HEAD
6968
srotMemTest \
70-
=======
71-
>>>>>>> 6494113db2448733228b0f6659bfa0a7fedc93c0
7269

7370

7471
TESTINFO_LIST := $(sort $(foreach t,${TALUS_TEST_LIST},${BLD_DIR}/${t}/testInfo.txt))

cosim/bareMetalTests/accessTest/c_dispatch.cc

-8
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,7 @@ int main(int argc, char *argv[])
4848
//
4949
// each bit is to turn on the given core (bit0 = core0, bit1=core1, etc..)
5050
//
51-
<<<<<<< HEAD
5251
long unsigned int mask = 0xF;
53-
=======
54-
<<<<<<< HEAD:cosim/bareMetalTests/csrTest/c_dispatch.cc
55-
long unsigned int mask = 0xf;
56-
=======
57-
long unsigned int mask = 0xF;
58-
>>>>>>> 6494113db2448733228b0f6659bfa0a7fedc93c0:cosim/bareMetalTests/accessTest/c_dispatch.cc
59-
>>>>>>> 6494113db2448733228b0f6659bfa0a7fedc93c0
6052
//
6153
// Set the active CPU mask before spawn the threads...
6254
//

0 commit comments

Comments
 (0)