Skip to content

Instantly share code, notes, and snippets.

Avatar
🎯
Googler

Edmond Cote edcote

🎯
Googler
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.

@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 / uvm.md
Last active Sep 14, 2018
UVM Cookbook
View uvm.md

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 Sep 7, 2018
Coverage Cookbook
View coverage_cookbook.md

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;
View virtualbox.md

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 Jul 31, 2018
Sun Rock Processor
View rock.md

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.

You can’t perform that action at this time.