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 / firrtl.md
Created July 14, 2019 17:36
FIRRTL Notes

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 July 9, 2019 04:04
Haskell Notes

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 December 18, 2018 01:36
Hands-On Machine Learning with Scikit & Tensor Flow Book Notes

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.

@edcote
edcote / llvm.md
Last active November 9, 2018 16:36
LLVM development notes
@edcote
edcote / atom.md
Last active November 1, 2018 20:43
Atom editor
@edcote
edcote / gerrit.md
Created October 24, 2018 01:20
Gerrit
@edcote
edcote / uvm.md
Last active September 14, 2018 17:06
UVM Cookbook

UVM Basics

UVM employs a layered, object-oriented approach to testbench development.

uvm_sequence_item is a uvm_object that contains data fields to implement protocols and communicate with with DUT. uvm_driver is responsible for converted the sequence item(s) into "pin wiggles". The sequence_item(s) are provided by one uvm_sequence objects that define stimulus at the transaction level and execute on the agent's uvm_sequencer component. The sequencer is responsible for executing the sequences, arbitrating between them, and routing sequence items between the driver and the sequence.

UVM agents have a configuration object that allows the test writer to control how the testbench is assembled and executed.

Components

@edcote
edcote / coverage_cookbook.md
Last active September 7, 2018 21:45
Coverage Cookbook

Theory

What doesn't get measured might not get done.

  • Covergroup should be wrapped in a class:
class my_cg_mon extends uvm_subscriber #(my_txn);

 covergroup my_cg;
@edcote
edcote / virtualbox.md
Last active August 10, 2018 16:20
VirtualBox

Notes

  • Start Ubuntu at command line

Edit /etc/defaults/grub.

#GRUB_CMDLINE_LINUX_DEFAULT="splash quiet"
GRUB_CMDLINE_LINUX="3"

sudo update-grub

@edcote
edcote / rock.md
Created July 31, 2018 20:39
Sun Rock Processor

I used to work on Rock. Getting around to re-read some papers on it.

SST: A Novel Architecture Implemented in Sun's ROCK Processor

SST hardware dynamically extracts two threads of execution from a single sequential program. SST uses an "efficient" checkpointing mechanism to eliminate the need for renaming logic, reorder buffer, memory disambiguation, issue windows, etc.

SST uses a traditional multithreaded pipeline with an additional mechanism to checkpoint the register file.

SST implements two hardware thread (ahead and behind). Ahead thread speculatively executes under a cache miss and speculatively retires instructions out of order. A behind thread executes instructions dependent on the cache miss.