atthecodeface / atcf_hardware_bbc_grip

Grip repository for build of ATCF BBC microcomputer implementation in CDL

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

atcf_hardware_bbc_grip

This is a grip repository, whose git subrepositories provide a full BBC microcomputer implementation in CDL (an FPGA/silicon design language).

The design works on the CDL simulation, running with a VNC framebuffer to provide (slow) simulation of a BBC microcomputer. This is not designed as an emulator, though; it is a full hardware implementation, and so one can see inside the 6502 (for example) to see what is happening.

The design also operates on FPGA boards, at more than 10x the original speed if desired.

Checking out the repository

It is simple to use this repository, but it does require some tools.

Prerequisites

It repository requires the CDL tools to be installed; this is another grip repository available at https://github.com/atthecodeface/cdl_tools_grip.git

The CDL tools repository includes grip itself - so once that is checked out and configured, all is set up.

Checkout process

The process assumes Ubuntu 16.04/18.04 (or similar) or OSX, with appropriate packages.

The system packages required include: python3 automake

Python3 packages required include: toml

Get grip

Grip is currently in a github repo. It is a Python3 utility that uses a special 'grip.tom' file in a repository to describe subrepositories which require cloning, where to clone them to, which git revisions each requires, and the steps required to configure, build, run, test, and so on the collection of repositories.

cd <where_to_put_stuff>
git clone  https://github.com/atthecodeface/grip.git

Get and build CDL tools

The CDL tools grip repository, which is a github repo. It does not contain the source for any tools - it is a grip repository whose git subrepositories provide the tools or mechanisms for building the tools.

cd <where_to_put_stuff>
git clone  https://github.com/atthecodeface/cdl_tools_grip.git
cd cdl_tools_grip
<where_to_put_stuff>/grip configure all
<where_to_put_stuff>/grip shell
... (this is in a new bash shell - with path set up by grip)
grip make install

The 'all' configuration of the cdl_tools_grip repository includes grip, cdl, verilator, and GNU cross-compiler/assembler/linker for RISC-V I32MC. The latter is installed using a download of GNU tarfiles of a specific version of the tools.

The configure stage requires the download step for the GNU toolchain; hence it is that step that grip ensures happens first.

Get and set up atcf_hardware_bbc_grip

This is a grip repository, which is a github repo. It does not contain the hardware descriptions or the source for any tools - the subrepositories contain what is required.

The following assumes grip and cdl are on the PATH for the shell.

export ATCF_CDL_TOOLS_PATH=<where_to_put_stuff>/cdl_tools_grip
cd <where_to_put_stuff>
grip checkout  https://github.com/atthecodeface/atcf_hardware_bbc_grip.git

Using the repository

At present the best approach (since there are no global testing grip targets, for example) is to use a grip shell.

The following assumes grip and cdl are on the PATH for the shell.

cd <where_to_put_stuff>/atcf_hardware_bbc_grip
grip shell
grip make clean

This invokes a bash shell in which commands can be executed.

Building and running the BBC simulator

There are grip make targets for running the simulator and the VNC RFB. Use:

grip make run_bbc

and in another shell:

grip make run_vnc_rfb

This will create a VNC server on port 1080, which a regular VNC client can connect to.

The build is put in atcf_hardware_bbc_grip/build.

About

Grip repository for build of ATCF BBC microcomputer implementation in CDL