Conspiracion
Linux-capable SoC platform with a custom ARMv4 quad-core SMP CPU, coherent caches, and a 3D graphics accelerator. Synthesizes for Terasic DE-series FPGA boards. Simulated with Verilator.
Install / Use
/learn @3442/ConspiracionREADME
Lord of the rings: MESI & cache coherence
Fabián Montero, Alejandro Soto, Julián Camacho
Introduction
This is a quad-core soft processor that implements ARMv4 with 64kb cache in each core with no shared cache. It is implemented in a DE-SoC-1 Altera FPGA.
In order to make ARMv4 capable of multicore, ldrex and strexeq were also implemented.
Getting started
There are two main components in this project. The soft core and software tests and simulations that simulate and can be executed in it.
Prerequisites
-
An SD card flashed with a Terasic image for the DE-SoC-1 Altera FPGA available at: https://www.terasic.com.tw/en/
-
Nix package manager version > 2.4 with flakes enabled. All other requirements will be installed by Nix. In order to initiate this process,
cdinto the root of the project and run the following command:nix develop
Building and loading the bitstream
In order to build the soft core, run quartus:
quartus
and open the conspiracion.qpf project file.
Once the project is loaded, open Platform Designer and Generate HDL. Close Platform Designer and Compile Design, this may take up to 40 mins.
Now click File->Generate Programming Files and use the following settings:
- Type: Raw Binary File (.rbf)
- Mode: Passive Parallel x16
- Change
output_file.rbftooutput_files/conspiracion.rbf - In the
Input files to convrertsection, clickPage_0-> Add files ->Output_files/conspiracion.sof - Click
Generate
In your terminal, run nix develop if you hadn't already and run:
make demo.bin
Notice the printed path.
Plug in your SD card and mount it's /boot partition and create a directory called taller inside it. Copy the contents of the printed path into this directory, renaming it to boot.bin:
cp </printed/path> </path/to/mounted/boot/dir>/taller/boot.bin
Copy the output_files/conspiracion.rbf into taller:
cp </path/to/the/project/output_files/conspiracion.rbf> </path/to/mounted/boot/dir>/taller/
Unmount your SD card and plug it into the FPGA.
In order to boot:
- Turn off the reset switch
- In your terminal, run:
kermit hps-fpga.kermit - Power the FPGA on
- Wait for uBoot and Linux to boot
- In another terminal, run
scrripts/jtag_uart.sh - Turn on the reset switch
Done! :)
Related Skills
node-connect
336.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
336.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.0kCommit, push, and open a PR
