-
November 9, 2024
C++17 - Aggregate Initialization extension
-
November 9, 2024
C++17 - Structure binding
-
August 15, 2024
Docker Installation
-
June 7, 2024
Cocotb deepdive - 2024 - C++ to python Bootstrap
-
May 31, 2024
Relearning React in 2024
-
May 29, 2024
Python - package of the week - fastapi
-
May 26, 2024
Python - pip cheatsheet
-
May 25, 2024
Qemu riscv emulation - spike machine
-
May 24, 2024
UVM Internals - uvm_root
-
May 23, 2024
Python - package of the week - Pydantic
-
May 23, 2024
Python - type hints typing
-
May 23, 2024
websocket - Hello World
-
April 7, 2024
Graphics stack - Linux Kernel
-
April 5, 2024
Python - package of the week - pluggy
-
April 5, 2024
Python Entry points
-
October 20, 2023
Latex - The minimal presentation latex beamer
-
October 15, 2023
UVM Internals - Auto configuration
-
September 23, 2023
UVM Internals - set_config_int and set_config_string
-
April 9, 2023
Linux Kernel crypto Utilities
-
April 9, 2023
PKCS 1: RSA Cryptography Specifications
-
April 9, 2023
X509 with openssl
-
April 1, 2023
Qemu - Data object exchange DOE
-
April 1, 2023
Qemu - PCIe SRIOV and virtual function
-
March 31, 2023
Qemu riscv emulation - virt machine
-
March 19, 2023
Misc useful commands
-
March 19, 2023
PCIE IDE Linux upcoming support
-
March 19, 2023
Qemu PCIe Emulation
-
March 11, 2023
Crypto - big Picture
-
March 11, 2023
Crypto - DH key exchange
-
March 10, 2023
Cocotb Deepdive - Force and release
-
March 5, 2023
Yosys Python bindings pyosys - Hello world and deepdive
-
March 3, 2023
IPXACT parser To Tree -- One way to avoid XML
-
March 2, 2023
Parsing UPF - Embedding TCL interpreter with python
-
February 27, 2023
Portable Stimulus Standard - Part 1
-
February 25, 2023
Liberty - Hello World
-
February 25, 2023
Weekend project - Python Hardware Description Language - PHDL
-
February 24, 2023
Generating sequence diagram using planuml
-
February 23, 2023
Haiku
-
February 21, 2023
The one books everyone should read
-
February 19, 2023
Security Protocol and Data Model(SPDM) primer
-
February 18, 2023
AES-GCM Galois-Counter Mode
-
February 17, 2023
Deepdive - DOE CXL Linux driver
-
February 17, 2023
PCIe IDE - Integrity and Data Encryption
-
February 17, 2023
PCIe physical layer 8b/10b encoder
-
February 17, 2023
Root of trust primer
-
February 16, 2023
New computer! Who dis?
-
February 15, 2023
PCIe Galois LSFR scrambler - one way to do it!
-
February 12, 2023
AES Rijndael S-box explained
-
February 11, 2023
SVA req/ack assertions
-
February 11, 2023
UVM cheatsheet - Sequencer to driver connection
-
February 11, 2023
UVM Internals - deepdive into uvm_reg_predictor
-
February 10, 2023
UVM Internals - Deepdive into uvm_reg_bit_bash_seq
-
February 5, 2023
Purpose lost in search of limelight, They said!
-
February 4, 2023
UVM cheatsheet - Misc snippets
-
February 4, 2023
UVM cheatsheet - TLM
-
February 4, 2023
UVM Internals - What happens when you call set_auto_predict
-
January 28, 2023
Graphics stack - OpenGL libmesa
-
January 26, 2023
UVM Internals - uvm_pool
-
January 25, 2023
Irish tax calculation using Python Jupyter notebook
-
January 25, 2023
UVM Internals - uvm_barrier
-
January 22, 2023
How to read network tunnel packets in verilog using VPI
-
January 20, 2023
WireGuard and Linux kernel
-
December 28, 2022
Python package highlight: Easy progress bar - tqdm
-
December 28, 2022
Python package of the week: colorama
-
December 26, 2022
Cocotb - writing toggle coverage collctor in 20 lines
-
December 23, 2022
SAWD - the fun version
-
December 22, 2022
TP-Link TL-WN722N adapter - Linux driver - Part1
-
December 10, 2022
DWARF primer for fun and fun
-
December 9, 2022
DVcon random thoughts - Multiple discovery!
-
November 16, 2022
Python: bisect
-
November 13, 2022
force-riscv hello world
-
November 13, 2022
Levenshtein similarity matrix and Affinity Propagation clustering
-
November 11, 2022
Forget Schrodinger's cat, Let me tell you about Schrodinger's visa
-
November 11, 2022
PyQt5 hello world
-
November 11, 2022
Python: Higher order functions - reduce
-
November 10, 2022
Using aircrack to get wifi password
-
November 6, 2022
Latex - The minimal paper abstract
-
November 6, 2022
Python packages of the week: Jinja2 and pystache
-
November 3, 2022
Cocotb Internals - xunit Reporter
-
November 1, 2022
Cocotb Internals - wavedrom dumper
-
October 30, 2022
The gamification of unfinished side projects
-
October 29, 2022
Cocotb Internals - python runner
-
October 23, 2022
verilator - Hello World and Beyond
-
October 16, 2022
Longest common sequence
-
October 12, 2022
Cocotb Deepdive - Edge Trigger and cocotb trampoline
-
October 12, 2022
python asyncio - user-defined await-able object
-
October 9, 2022
Cocotb Deepdive - start vs start_soon and scheduler implementation
-
October 9, 2022
elliptical curve crypto key exchange
-
October 7, 2022
Portable Stimulus Standard for fun and profit
-
October 7, 2022
That time I found a typo in Portable Stimulus Standard
-
October 7, 2022
The short(pun intended) story of ELF and to parse them
-
October 5, 2022
PCIE TLP Header python serializer
-
October 1, 2022
AIG - And Inverter graph
-
October 1, 2022
The diffie hellman Key Exchange
-
October 1, 2022
Wavedrom to SVA generator
-
September 24, 2022
The slowest RSA implementation
-
September 24, 2022
UVM Internals - objections
-
September 23, 2022
python asyncio - not-so-deep dive into asyncio and cpython
-
September 17, 2022
10 years - Now what?
-
September 12, 2022
Cocotb Deepdive - Makefiles
-
September 12, 2022
Recruiting - My 2cents
-
September 7, 2022
Cocotb Deepdive - Clock and Timer Trigger
-
September 7, 2022
Solving Magic Square using Systemverilog Constraints
-
September 5, 2022
Commentary on Jerry Maguire mission statement
-
September 3, 2022
Linux tap interface - Hello World
-
September 3, 2022
Solving No-three-in-line puzzle using SV constraints
-
September 3, 2022
systemd service - hello world
-
September 3, 2022
Wireshark protocol dissector
-
August 27, 2022
iwlwifi driver crash - The problem and workaround
-
August 27, 2022
PCIe SRIOV linux initialization
-
August 25, 2022
iwlwifi - Not The Hitchhiker's guide to intel wireless driver
-
August 23, 2022
A 5 minute tour of my PCI wireless controller sysfs
-
August 21, 2022
Python package of the week: vcdvcd
-
August 12, 2022
Python classmethod vs static method
-
August 12, 2022
Python Ellipsis
-
August 8, 2022
POSIX C client and server examples
-
July 31, 2022
OpenGL Hello world
-
June 23, 2022
Latex - Adding bib ref files
-
June 23, 2022
Latex - The minimal Resume
-
June 19, 2022
RGB to YCbCr and DCT/IDCT effects
-
June 18, 2022
Arithmetic Coding
-
June 17, 2022
Discrete Fourier Transform - DFT
-
June 15, 2022
Discrete Cosine Transform - DCT
-
June 14, 2022
Huffman Coding
-
June 12, 2022
Solving N-Queen using Systemverilog Constraints
-
June 11, 2022
Ethernet MDIO Primer
-
June 10, 2022
Systemc Hello world
-
June 9, 2022
Solving Sudoku using Systemverilog Constraints
-
June 6, 2022
hash based message authentication HMAC
-
May 30, 2022
RISCV riscv python model deepdive
-
May 29, 2022
Network layers dissection using scapy
-
May 25, 2022
Levenshtein Distance
-
May 23, 2022
Simple recursive solution to Maze path finding
-
May 21, 2022
Waveforms and WaveJSON - wavedrom and wavedrompy
-
May 19, 2022
Linux tun device - Hello World
-
May 15, 2022
Book review - Open Verification Methodology Cookbook
-
May 7, 2022
My assumptions (pun intended) about SymbiYosys - part1
-
April 30, 2022
UVM Internals - set_drain_time
-
April 25, 2022
Systemverilog functional cheat-sheet
-
April 24, 2022
UVM Internals - UVM_TIMEOUT
-
April 21, 2022
Systemverilog constrainted randomization cheat-sheet
-
March 10, 2022
UVM Internals - UVM 2020-2.0 Early release diff Part1 - m_uvm_core_state
-
March 6, 2022
Python package of the week: tempfile
-
March 6, 2022
UVM Internals - Sequence to Sequencer connection
-
March 1, 2022
Ireland Rental Price Analysis
-
February 26, 2022
Python package of the week: argparse
-
February 13, 2022
Python package of the week: Lark
-
February 11, 2022
UVM Internals - How do p_sequencer and m_sequencer work?
-
February 5, 2022
UVM Internals - Transaction Recording Infrastructure
-
January 29, 2022
UVM Internals - Register model callbacks
-
January 22, 2022
Python bits - PEP0380 Delegating to a Subgenerator - yield from
-
January 20, 2022
VIM for fun and profit
-
January 16, 2022
Cocotb Internals - Cocotb Startup VPI bootstrap to Python
-
January 14, 2022
riscv picorv32 hello demystified
-
January 9, 2022
RISCV Memory Consistency Model Basics
-
January 7, 2022
RISCV Privileged Specification and Linux Kernel Deep-ish Dive
-
January 5, 2022
Reviving old project - IPXACT to UVM RAL Generator - ipxactral
-
January 3, 2022
How much riscv verilog I can write in 5 hours
-
January 2, 2022
Blog setup
-
January 1, 2022
Why I blog
-
December 31, 2021
Langton Ant game
-
December 29, 2021
RISCV Simple Assembler - Part1
-
December 28, 2021
RISCV Assembly rv64
-
December 25, 2021
libusb Hello-World
-
November 5, 2021
Cocotb Deepdive - Test discovery
-
November 5, 2021
UVM Internals - TLM analysis port
-
October 30, 2021
Python Descriptor Protocol
-
October 24, 2021
Python class registration decorator
-
October 24, 2021
Python Pandas cheat sheet
-
September 19, 2021
Python sequence slicing
-
September 19, 2021
Python sequence unpacking
-
September 15, 2021
Python Template String
-
May 5, 2021
Python Install without root
-
May 1, 2021
Python Pep 503
-
May 1, 2021
Python Wheels
-
May 1, 2021
Python Context Manager
-
May 1, 2021
Python Dist utils
-
April 22, 2021
Python int/hex and bytes
-
April 19, 2021
Python Decorators
-
April 18, 2021
Python Threading
-
April 18, 2021
Python Subprocess
-
April 18, 2021
Python filter/map
-
April 18, 2021
Python zip()
-
April 18, 2021
Python dict.items and enumerate
-
April 17, 2021
Python Generator vs Iterator
-
January 12, 2021
UVM Internals - TLM port to imp Connection
-
January 5, 2021
sshd with fail2ban
-
January 3, 2021
UVM Internals - transaction id
-
January 3, 2021
UVM Internals - uvm_create and uvm_send
-
December 27, 2020
rustlang - Hello world
-
December 16, 2020
Not the hitchhiker's guide to UPF
-
December 14, 2020
Graphviz - Hello world
-
December 14, 2020
TCL And C interface
-
December 11, 2020
C++ - Scoped enum
-
December 11, 2020
C++ - std::array
-
December 11, 2020
Stock Market Definitions
-
December 5, 2020
Systemverilog Assertions(SVA) - part1 - 5-minute tour
-
December 4, 2020
Abridged guide to Systemverilog Functional coverage
-
November 28, 2020
C++ -is_copy_constructible and is_copy_assignable templates
-
November 27, 2020
C++ - smart pointer - unique_ptr
-
November 27, 2020
C++ - std::pair
-
November 27, 2020
C++ - std::tie and std::ignore
-
November 27, 2020
C++ - std::tuple
-
November 21, 2020
C++ - explicit
-
November 20, 2020
C++ - const method
-
November 20, 2020
C++ - default and delete
-
November 20, 2020
C++ - final keyword
-
November 20, 2020
C++ - noexpect
-
November 20, 2020
C++ - override
-
November 8, 2020
Setup openvpn on VPS
-
November 8, 2020
Encrypt Hard drive with cryptsetup
-
November 7, 2020
UVM Internals - Structural Components
-
September 6, 2020
Device Tree hello world
-
September 4, 2020
UVM Report Server
-
September 1, 2020
UVM Report Catcher
-
August 31, 2020
UVM Sequencer grab()
-
August 31, 2020
uvm_config_db spellchecker
-
August 29, 2020
WE API reverse engineering
-
August 29, 2020
Wake on LAN
-
August 29, 2020
UVM user defined phase
-
August 28, 2020
UVM Hearbeat
-
August 21, 2020
Setting up VNC
-
August 16, 2020
UVM Basics - Reporting
-
August 14, 2020
Mysql cheat sheet
-
August 2, 2020
SSH jump server on Raspberry pi
-
July 23, 2020
Yosys Nextpnr Flow
-
July 23, 2020
APB Tutorial
-
July 15, 2020
Nginx Configuration
-
July 11, 2020
Stm32f4 Discovery - Part1 - ARM Cortex M4 Initialization
-
July 10, 2020
Golang Part1
-
July 10, 2020
Golang Part2
-
July 3, 2020
Bitbake Tutorial
-
June 25, 2020
Starting With Wordpress
-
June 12, 2020
Breadth-first and Depth-first Graph Searches
-
June 12, 2020
Prim's Minimum Spanning Tree
-
June 10, 2020
Dijkstra Algorithm
-
May 29, 2020
Merkle Tree
-
May 28, 2020
Xilinx Vivado - Part1 The Flow
-
May 26, 2020
Percolation Union find
-
May 24, 2020
Sudoku SAT Solution
-
May 23, 2020
Conway Game of Life
-
May 15, 2020
MD5 python implementation
-
May 8, 2020
UVM Internals - Configuration database
-
May 8, 2020
UVM Internals - Reporting
-
May 1, 2020
UVM Internals - Factory
-
April 24, 2020
UVM Internals - run_test
-
March 20, 2020
C++ - member initializer lists
-
March 20, 2020
C++ - Type alias
-
March 20, 2020
C++ -initializer_list
-
February 9, 2020
Building OSS FPGA Toolchain
-
January 30, 2020
Setup Git without server
-
October 24, 2019
Solve Vscode extension download errors
-
September 12, 2019
Flask Internals Part1
-
September 2, 2019
VPS Configuration
-
August 2, 2019
Book review - The Pragmatic Programmer
-
June 2, 2019
vscode Tips and Tricks
-
June 2, 2019
Web scraping with python
-
May 11, 2019
Boot linux in Qemu
-
May 11, 2019
Console boot options in linux