Skip to content

Instantly share code, notes, and snippets.

View edcote's full-sized avatar
🎯
Googler

Edmond Cote edcote

🎯
Googler
View GitHub Profile
@edcote
edcote / riscv-user.md
Created May 26, 2018 22:30
RISC-V User-Level ISA

Base

  • ISA separated into small base ISA and support for extensions
  • JAL stores the address of the instruction following the jump (pc+4) into register rd. Calling convention is x1 as return address and x5 as alternate link register. Return address stack can be manipulated by JAL/JALR.
  • Aligned loads and stores are guaranteed to execute atomically, misaligned loads and stores are not
  • Each hart observes its own memory operations as if they are executed in sequential program order. RISC-V observes a relaxed memory model between harts. Explicit FENCE instructions are required to guarantee ordering between memory operations from different harts.
  • FENCE is used to order I/O and memory accesses as viewed by other RISC-V harts, external devices, and co-processors. No other hart or external device can observe any operation in the successor set following a FENCE operation before any operation in the predecessor set before the FENCE.

Atomic "A"

@edcote
edcote / boomv2.md
Last active October 3, 2018 03:23
BOOM v2: An Open-Source OoO RISC-V Core

Notes

Link to tech report

Alpha 21264 has 15 FO4 delays. (FO4 delay is the delay of inverter, driven by an inverter 4x smaller than itself, and driving an interter 4x bigger than itself). BOOMv2 is 35 FO4.

BOOMv1 follows the 6-stage pipeline structure of MIPS R10K - fetch, decode/rename, issue/register-read, excute, memory, and writeback.

Frontend fetches instructions for execution in the backend.

@edcote
edcote / coverage_cookbook.md
Created May 26, 2018 21:36
Verification Academy Cover Cookbook Notes

Notes

"What doesn't get measured might not get done". Coverage helps to answer the "are we done" question.

Two concepts fundamental to understand coverage.

  • Controllability: ability to influence FSMs, structure, or LOC in the design
  • Observability: ability to obseve the effects of a FSMs, structure, or LOC in the design

Kinds of coverage:

@edcote
edcote / openocd.md
Last active May 8, 2018 16:25
OpenOCD
@edcote
edcote / wordpress.md
Last active May 6, 2018 00:35
Wordpress

Running WordPress in a container

This exercise was beyond successful.

docker run -e MYSQL_ROOT_PASSWORD=<password> -e MYSQL_DATABASE=wordpress --name wordpressdb -v "$PWD/database":/var/lib/mysql -d mariadb:latest
docker run -e WORDPRESS_DB_PASSWORD= --name wordpress --link wordpressdb:mysql -p 80:80 -v "$PWD/html":/var/www/html -d wordpress
@edcote
edcote / icc.md
Last active May 4, 2018 17:38
IC Compiler

Notes

  • Color by hirarchy

    • Placement > Color by Hierarchy, then hit Reload
  • Area report by hierarchy: report_area -hierarchy

@edcote
edcote / go.md
Created April 30, 2018 02:45
Go
  • Download and untar latest version of go at www.golang.org
  • Set GOPATH and GOROOT environment variables. GOROOT points to go binary install. GOPATH points to your workspace (e.g. $HOME/go).

Notes from https://github.com/alco/gostart:

  • Go is only compatible with code that resides in a workspace.
  • Go does not allow you to depend on specific versions of external packages.
  • There are no local packages, only fully qualified imports.
  • All files in a single directory belong to one package
@edcote
edcote / ft232h.md
Last active December 23, 2019 15:05
Adafruit FT232H Breakout Notes

I purchased Adafruit FT232H Breakout - General Purpose USB to GPIO+SPI+I2C from Amazon

Preliminaries

  • First, check if device is detected
$ lsusb
Bus 003 Device 018: ID 0403:6014 Future Technology Devices International, Ltd FT232H Single HS USB-UART/FIFO IC
@edcote
edcote / research.md
Last active April 20, 2018 22:44
Research Papers and Articles

A. Caulfield et al., "A Cloud-Scala Acceleration Architecture"

New cloud architecture that uses FPGA to accelerate network plane functions (encryption) and applications (search ranking).

Network flows can be transformed at line rate using FPGAs.

FPGA are placed between NIC and CPU in each node of network. Three scenarios: local compute acceleration (through PCIe), network acceleration, and global application acceleration.

M. Abadi et al., "TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems"

@edcote
edcote / wordpress.md
Created April 10, 2018 01:42
WordPress

Getting Started

Assuming Ubuntu 17.10:

# install packages
sudo apt upgrade
sudo apt update
# mysql-server will ask for root password, set it
sudo apt install mysql-server

sudo apt install apache2