Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: pku-liang
  • License: apache-2.0
  • Language: C++
  • Default Branch: main
  • Size: 193 KB
Statistics
  • Stars: 40
  • Watchers: 1
  • Forks: 4
  • Open Issues: 1
  • Releases: 0
Created almost 3 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

Khronos

Khronos is moving to https://github.com/pku-liang.

Introductions

Khronos is a cycle-accurate software RTL simulation tool that exploits the temporal data (hardware state) locality between consecutive cycles. Khronos will fuse state writes and reads with temporal localities, effectively reducing the pressure to the host cache and memory.

As shown in the figure, the queue graph captures temporal data dependencies and enables temporal optimization between cycles. By adjust the simulation order and re-schedule the simulation, Khronos can reducing the memory access and accelerate RTL simulation.

Installation

Setup depedencies:

bash mkdir install export INSTALL_PREFIX=$PWD/install git submodule update --init cd third_party ./setup-circt.sh ./setup-lemon.sh

Build khronos:

bash mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX -DCMAKE_BUILD_TYPE=Release make ksim make install

Usage

Currently, Khronos has full support for firtool frontend, partly support for moore and calyx frontend.

```bash

add current install prefix to path

export PATH=$PWD/install/bin:$PATH

first, translate firrtl file to mlir dialect

firtool --ir-hw --disable-all-randomization $design.fir -o $design.mlir

then, translate mlir to llvm ir

generating header and default implementation

ksim $design.mlir -v -o $design.ll --out-header=$design.h --out-driver=$design.cpp

call LLVM to compile the llvm ir file to binary

llc --relocation-model=dynamic-no-pic -O2 -filetype=obj $design.ll -o $design.o

link testbench and simulator together

clang++ -O2 $design.o $design.cpp -o $design ```

Citing Khronos

If you use this software, please cite it as below.

bibtex @inproceedings{Khronos, author = {Kexing, Zhou and Yun, Liang and Yibo, Lin and Runsheng, Wang and Ru, Huang}, title = {Khronos: Fusing Memory Access for Improved Hardware RTL Simulation}, booktitle = {MICRO '23: 55th IEEE/ACM International Symposium on Microarchitecture}, publisher = {ACM}, year = {2023}, url = {https://doi.org/10.1145/3613424.3614301}, doi = {10.1145/3613424.3614301} }

Owner

  • Name: PKU Yun (Eric) Liang Research Group
  • Login: pku-liang
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
messages: If you use this software, please cite it as below.
authors:
- family-names: Zhou
  given-names: Kexing
  orcid: 0000-0001-7635-3425
- family-names: Liang
  given-names: Yun
  orcid: 0000-0002-9076-7998
- family-names: Lin
  given-names: Yibo
  orcid: 0000-0002-0977-2774
- family-names: Wang
  given-names: Runsheng
  orcid: 0000-0002-7514-0767
- family-names: Huang
  given-names: Ru
title: "Khronos: Fusing Memory Access for Improved Hardware RTL Simulation"
version: 1.0.0
doi: 10.1145/3613424.3614301
url: https://github.com/pku-liang/ksim
preferred-citation:
  type: conference-paper
  title: "Khronos: Fusing Memory Access for Improved Hardware RTL Simulation"
  authors:
  - family-names: Zhou
    given-names: Kexing
    orcid: 0000-0001-7635-3425
  - family-names: Liang
    given-names: Yun
    orcid: 0000-0002-9076-7998
  - family-names: Lin
    given-names: Yibo
    orcid: 0000-0002-0977-2774
  - family-names: Wang
    given-names: Runsheng
    orcid: 0000-0002-7514-0767
  - family-names: Huang
    given-names: Ru
  doi: 10.1145/3613424.3614301
  year: 2023

GitHub Events

Total
  • Watch event: 12
  • Delete event: 1
  • Push event: 3
  • Create event: 2
Last Year
  • Watch event: 12
  • Delete event: 1
  • Push event: 3
  • Create event: 2