Skip to content

Instantly share code, notes, and snippets.

Avatar
🎯
Googler

Edmond Cote edcote

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

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 Oct 3, 2018
BOOM v2: An Open-Source OoO RISC-V Core
View boomv2.md

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
Verification Academy Cover Cookbook Notes
View coverage_cookbook.md

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:

View openocd.md
View wordpress.md

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=<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
IC Compiler
View icc.md

Notes

  • Color by hirarchy

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

View go.md
  • 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 Dec 23, 2019
Adafruit FT232H Breakout Notes
View ft232h.md

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 Apr 20, 2018
Research Papers and Articles
View research.md

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"

View wordpress.md

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
You can’t perform that action at this time.