Skip to content

Instantly share code, notes, and snippets.

🎯
Googler

Edmond Cote edcote

🎯
Googler
Block or report user

Report or block edcote

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View firrtl.md

FIRRTL

Summary

Link to FIRRTL specification here

All FIRRTL circuits consist of a list of modules. Each module as a name, list of ports, and statements.

Types are used to specify the structure of data. Here are examples:

@edcote
edcote / haskell.md
Last active Jul 9, 2019
Haskell Notes
View haskell.md

Haskell Notes

Installation

# install Haskell compiler
sudo apt install -y ghc
# manual instally to /usr/local/bin
curl -sSL https://get.haskellstack.org/ | sh
@edcote
edcote / oreilly_hands_on_ml.md
Last active Dec 18, 2018
Hands-On Machine Learning with Scikit & Tensor Flow Book Notes
View oreilly_hands_on_ml.md

Link to book: https://www.amazon.com/Hands-Machine-Learning-Scikit-Learn-TensorFlow/dp/1491962291

Chapter 1

ML is the field of study that gives computers the ability to learn without being explicitly programmed.

A spam filter based on ML techniques automatically learns which words and phrases are god predictors of spam by blocking unusually frequent pattern of words.

A second example where ML shines is for problems that are either too complex or have no known algorithm; speech recognition, for example.

View firewall.md

Firewall setup

Ubuntu

Official wiki has excellent documentation.

Example commands:

sudo ufw allow ssh/tcp
@edcote
edcote / llvm.md
Last active Nov 9, 2018
LLVM development notes
View llvm.md
@edcote
edcote / atom.md
Last active Nov 1, 2018
Atom editor
View atom.md
View gerrit.md
@edcote
edcote / riscvsw.md
Last active Oct 4, 2018
RISC-V System Software
View riscvsw.md

RISC-V System Software

Ignore the instructions to build GCC/Newlib toolchain. Consult this Linux/RISC-V installation manual instead.

Setup environment variables

module load riscv-tools/local

# old
export RISCV_SW=$CAD_ROOT/riscv-sw
View riscv_debug_spec.md

Chapter 2

Each hart in the platform is controlled by exactly one DM? But, usually all harts in a single core are controlled by the same DM.

Abstract commands provide access to GPRs. Addt. registers are accessible through abstract commands or by writing to the optional program buffer.

The program buffer allows the debugger to execute arbitrary instructions on a hart. A bus access block allows memory access without using a RISC-V hart to perform the access.

Chapter 3

@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"

You can’t perform that action at this time.