-
Notifications
You must be signed in to change notification settings - Fork 0
First Steps
Before running the simulation, a few tools are required. This isn't a precise step-by-step guide, but it provides all the information you need to get started.
If you just want to explore the visual simulation, you'll need:
- Java 21 — required to run the simulator
- Logisim Evolution — preferably the latest version
After installing Java and downloading the .jar file for Logisim Evolution, you can open it directly. To load the simulation file, go to File > Open and select either drisc.circ or drisc_with_no_csr.circ located at the root of this repository.
To run the SystemVerilog simulation, you'll need:
- Icarus Verilog — the recommended simulator (others may work but could lack full compatibility)
-
Visual Studio Code — for editing and running the simulation via its internal terminal
(Note: Running the simulation directly through the Windows terminal may not display colors correctly)
- VaporView — VS Code extension for inspecting waveform output
- SystemVerilog - Language Support — syntax highlighting for SystemVerilog
- .NET Framework — required if you prefer using the lightweight executable instead of the full SV interface
⚠️ The simulation may run on Linux, but some features are not guaranteed to work
Once everything is installed, open the verilog folder in Visual Studio Code by going to File > Open Folder, selecting the folder, and choosing to trust its authors.
For writing assembly code for the simulations, it's recommended to use Notepad++, as this repository includes syntax highlighting support.
To install the custom language definition in Notepad++:
- Go to
Language > User Defined Language > Define Your Language - In the window that appears, click
Import - Select the file
DRISC_Notepad++_Syntax_Hilight.xmllocated at the root of this repository
-
- 1.1 Introduction
- 1.2 RISC-V Implementation
- 1.2.1 Available Instruction Set
- 1.2.2 Available Non-ISA Features
-
- 2.1 ALU
- 2.2 Register File
- 2.3 Program Counter
- 2.4 Input Buffer
- 2.5 RAM
- 2.6 Operation Controller
- 2.7 CSR Controller
-
- 3.1 Input Devices
- 3.1.1 Keyboard
- 3.1.2 Switches and Joystick
- 3.1.3 Random Number Generator
- 3.1.4 Real-Time Device
- 3.2 Output Devices
- 3.2.1 Screen
- 3.2.2 Terminal
- 3.2.3 Software Interrupt Register
- 3.1 Input Devices