Go to file
Zhicheng a857bef19d
Update LICENSE
change to MulanPSL2
2024-05-07 12:28:16 +08:00
.github update tasks and milestone 2024-05-07 02:46:40 +00:00
doc update tasks and milestone 2024-05-07 02:46:40 +00:00
mk Optimize the directory structure and update the Makefile 2024-04-26 15:16:43 +08:00
rtl Optimize the directory structure and update the Makefile 2024-04-26 15:16:43 +08:00
tests Change the name Interface to Bundle 2024-05-06 10:48:20 +08:00
utils Update README 2024-04-24 14:31:08 +08:00
.gitignore Updated DUT tests to support testing multiple use cases at once 2024-04-30 10:59:14 +08:00
LICENSE Update LICENSE 2024-05-07 12:28:16 +08:00
Makefile add ittage, rename src to rtl_src, update gitignore 2024-04-19 06:50:22 +00:00
Readme.md update 2024-04-15 17:52:36 +08:00
Readme_cn.md update tasks and milestone 2024-05-07 02:46:40 +00:00
image update tasks and milestone 2024-05-07 02:46:40 +00:00

Readme.md

The first phase of Open Verification for the Kunminghu microarchitecture of Xiangshan: Kunminghu's BPU Module UT Verification in Action.

中文文档

This project aims to explore open-sourced subdivision verification of the high-performance open-source RISC-V OpenXiangshan processor's microarchitecture. It introduces new tools and methods based on Python, enabling all students interested in chip design and verification to quickly grasp and study the XiangShan microarchitecture. This phase provides a detailed introduction to the principles and implementation of the branch prediction module of the XiangShan Kunminghu architecture, along with the corresponding open-source verification environment. Participants in this phase can earn points and rewards by submitting bugs, writing verification reports, and more.

The Open-Verify Porject Official Websiteopen-verify.cc

Gitlink Eventhttps://www.gitlink.org.cn/glcc/2023/subjects/detail/473

Introduction

This project utilizes open-source tools for the open verification of open-source chips. The focus of the current phase is the BPU module within the XiangShan Kunminghu microarchitecture.

Kunminghu microarchitecture

The Kunming Lake architecture is the third-generation high-performance microarchitecture of the XiangShan open-source processor. For the architecture diagram, please refer to the Kunminghu architecture diagram.

Chip verification

Chip validation is a crucial aspect of chip design work. Skipping or insufficient validation can result in chip fabrication failures or products not meeting standards, leading to significant losses. Chip design companies treat chip design as proprietary business secrets, and chip validation typically requires access to the chip design source code. Therefore, chip validation work can only be conducted internally within the company. However, with the open-source nature of the Shanhai high-performance RISC-V chip, concerns about "leaking proprietary secrets" do not arise. Consequently, chip validation work can be distributed in a manner similar to software subcontracting or crowdsourcing, allowing interested individuals to participate remotely.

  1. Basic Learning Materials: Learn about chip validation and how to use Python for validation.

  2. Introduction to Shanhai BPU: Learn about branch prediction and the basic predictors used in the Shanhai processor.

  3. How to Participate in This Activity: Learn how to participate in this activity and the rules.

  4. Building Verification Environment: Learn how to set up the basic verification environment, how to validate, and submit validation results.

Repository Directory

The structure of this repository directory and corresponding explanations are as follows:

.
├── LICENSE          
├── Makefile         
├── Readme.md        
├── Readme_cn.md     
├── doc              
├── image            
├── mk               # Sub makefiles
├── out              # DUT output
└── src              # DUT source code

Note: Since this project requires submitting results via PR, please make sure to organize the data according to the directory requirements mentioned above.

Discussion group

To prevent spam advertisements in the group, please run the following Python code to get the group number.

QQ group

import base64
base64.b64decode('Your_Base64_Data_Here').decode()

Wechat group

import base64
from io import BytesIO
from PIL import Image
base64_image_data = \
"Your_Base64_Image_Data_Here_0"\
"Your_Base64_Image_Data_Here_1"
image_data = base64.b64decode(base64_image_data)
image = Image.open(BytesIO(image_data))
image.show()