Comments (5)
Thanks for the feedback on CI.
Currently we are using five self-hosted servers for CI (AMD EPYC 7742). We did consider Travis-CI or other public platforms. But none of us has actually tried to do that. We are also considering migrating our repo to gitee, which uses a different CI framework. Hopefully we will build a better CI before September.
For the second question, these two EMUs are not the same. The latter one uses DRAMsim but not the former one. GitHub has a limitation on CI running time (6 hours). If we combine them into a single job, it cannot finish within 6 hours.
We are much appreciated if someone in the community could help us build the CI platform. Actually we don’t know much yet.
from xiangshan.
Thanks for the feedback on CI.
Currently we are using five self-hosted servers for CI (AMD EPYC 7742). We did consider Travis-CI or other public platforms. But none of us has actually tried to do that. We are also considering migrating our repo to gitee, which uses a different CI framework. Hopefully we will build a better CI before September.
For the second question, these two EMUs are not the same. The latter one uses DRAMsim but not the former one. GitHub has a limitation on CI running time (6 hours). If we combine them into a single job, it cannot finish within 6 hours.
We are much appreciated if someone in the community could help us build the CI platform. Actually we don’t know much yet.
I don't know much about CI, either. After questioning my senior, who's also a chisel
user, he considered your CI to be fast enough.
Maybe this is what hardware development like I think. 🤣
BTW, I've tried developing a very naive pipeline CPU in verilog
last year, which did give me a bad impression about hardware development for writing annoying test benches
For example, the compiler just lets go those bad codes that will stuck the whole simulator like modelsim
or vivado
. Such as
// this is a test bench
always sig_trig=2'b01;
// should be "assign sig_trig=2'b1;"
// no warnings will be given out
Can Chisel
avoid such a situation? Are there any recommendations on books or videos about ChiselHDL
?
from xiangshan.
Information for those who are interested in enhancing XiangShan CI:
Currently, XiangShan CI does 3 jobs in parallel:
- Generate Verilog code (not for simulation) from Chisel source code
- Use Verilator to run simulation without DRAMsim for basic inst tests and embedded benchmarks
- Use Verilator to run simulation with DRAMsim for spec SimPoints
Verilator simulation consists of 3 stages:
- We need to convert Chisel to Verilog before running Verilator simulation. It can only be done with a single thread.
- Compiling Verilator emulator. This can be done in parallel.
- After Verilator emulator compiling, run benchmarks and inst tests. They can run in parallel.
Currently, we use a python script https://github.com/OpenXiangShan/XiangShan/blob/master/scripts/xiangshan.py to deal with environmental things.
from xiangshan.
Chisel generates synthesizable verilog. It cannot be used to write testbench.
Recommend resources: https://www.chisel-lang.org/chisel3/docs/resources/resources.html.
from xiangshan.
I can help on the CI front if that's needed. We can also try Azure DevOps if there is no policy against using these big clouds.
from xiangshan.
Related Issues (20)
- How can projects using Chisel 3 and Chisel 5/6 be integrated together? HOT 1
- Is there any interface to flush L2 Cache data HOT 2
- Solution to make FIR elaboration faster
- Can not generate RTL when NUM_CORES >= 3
- 使用命令时遇到错误“已放弃(核心已转储) ” HOT 1
- Eeception while compile using "make emu EMU_THREADS=8 MFC=1 CONFIG=KunminghuV2Config" HOT 1
- Compile Exception while using "make emu EMU_THREADS=8 MFC=1 CONFIG=KunminghuV2Config", HOT 5
- Difftest failed on a RISC-V Vector memcpy workload with misaligned(in vlen granularity, not element) unit stride load HOT 1
- Assertion failed at UserYanker.scala:63 assert (!out.r.valid || r_valid) // Q must be ready faster than the response HOT 1
- make verilog NUM_CORES=4 gets error HOT 7
- In VCS simulation, multi-core simulation of some harts ended prematurely due to incorrect execution of SEQZ instruction HOT 1
- ./build/emu HOT 10
- xsdebug HOT 9
- invalid opcode HOT 3
- error massage HOT 3
- What is the stable version of Nanhu-V2 verified on FPGA? HOT 8
- DispatchQueue numDeq and deqNext generation HOT 2
- Using docker to check data.txt generated by compiling app, but cannot find compiled instruction after burning HOT 4
- rvv-bench: XiangShan performance problems HOT 1
- How to enable the DebugModule of StandAloneDebugModule with the AXI version
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xiangshan.