41554 blogs · [ { "id": "01a0d8ba-c58d-7146-a954-4aee8919eb1d", "title": "Fuchsia Internals, Vol. II: The Build System and Toolchains", "url": "https://www.hdlfactory.com/post/2026/09/25/fuchsia-internals-vol-2-build-system-and-toolchains/", "published_at": "2026-09-25T00:00:00+00:00" }, { "id": "01a0d8ba-c58d-7146-a954-4aee892a4bb8", "title": "grlib: Gaisler's GRLIB and the NOEL-V Core as a Bazel Module", "url": "https://www.hdlfactory.com/post/2026/09/24/grlib-noelv-ip-in-bazel/", "published_at": "2026-09-24T00:00:00+00:00" }, { "id": "01a0d8ba-c58d-7146-a954-4aee8991b49f", "title": "An icosahedron on HDMI, drawn by a TxHDL core", "url": "https://www.hdlfactory.com/post/2026/09/20/an-icosahedron-on-hdmi-drawn-by-a-txhdl-core/", "published_at": "2026-09-20T00:00:00+00:00" }, { "id": "01a0b8e5-0f43-71aa-8a72-1e70a288d5f9", "title": "Automated Tests on Simulation Output, with SQLite", "url": "https://www.hdlfactory.com/post/2026/09/12/sqlite-simulation-tests/", "published_at": "2026-09-12T00:00:00+00:00" }, { "id": "01a0b8e5-0f43-71aa-8a72-1e70a2b82dab", "title": "TxHDL: a hardware description language that is a Rust library", "url": "https://www.hdlfactory.com/post/2026/09/12/txhdl-a-hardware-description-language-that-is-a-rust-library/", "published_at": "2026-09-12T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c1a6bb7e", "title": "wdbcvt: reading Vivado's undocumented .wdb waveform files", "url": "https://www.hdlfactory.com/post/2026/09/04/wdbcvt-reading-vivado-wdb/", "published_at": "2026-09-04T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c2393896", "title": "rules_vivado: FPGA Synthesis and Place-and-Route in Bazel", "url": "https://www.hdlfactory.com/post/2026/09/03/rules-vivado-fpga-synthesis-in-bazel/", "published_at": "2026-09-03T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c23d0cb9", "title": "My homelab is fully ephemeral", "url": "https://www.hdlfactory.com/post/2026/08/30/fully-ephemeral-homelab/", "published_at": "2026-08-30T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c2d1202d", "title": "Fuchsia Internals, Vol. I: The Graphics and Display Pipeline", "url": "https://www.hdlfactory.com/post/2026/08/25/fuchsia-internals-vol-1-graphics-and-display/", "published_at": "2026-08-25T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c3657d25", "title": "Bazel all the way down: how I build programmable hardware", "url": "https://www.hdlfactory.com/post/2026/08/17/bazel-all-the-way-down-how-i-build-programmable-hardware/", "published_at": "2026-08-17T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c36d816b", "title": "Fuchsia Tutorial --- Fuchsia Internals: A New Report Series for Hardware Engineers", "url": "https://www.hdlfactory.com/post/2026/07/25/fuchsia-internals-a-new-report-series/", "published_at": "2026-07-25T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c3bf5b06", "title": "The FPGA Hardware Interview: A Topic Guide with Questions and Exercises", "url": "https://www.hdlfactory.com/post/2026/07/23/fpga-hardware-interview-guide/", "published_at": "2026-07-23T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c430b98c", "title": "Booting Fuchsia's Zircon on a homebrew RISC-V SoC, on an Artix-7 FPGA", "url": "https://www.hdlfactory.com/post/2026/07/19/cocoapuffs-booting-fuchsias-zircon-kernel-on-a-risc-v-core-in-artix-7-fpga/", "published_at": "2026-07-19T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c4f2c5d8", "title": "Announcing bazel_local_nix 0.1.0", "url": "https://www.hdlfactory.com/post/2026/05/28/announcing-bazel_local_nix-0.1.0/", "published_at": "2026-05-28T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c57fa62e", "title": "Respin: upspin revival", "url": "https://www.hdlfactory.com/post/2026/04/19/respin-upspin-revival/", "published_at": "2026-04-19T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c669e613", "title": "Synod: Paxos agent", "url": "https://www.hdlfactory.com/post/2026/04/18/synod-paxos-agent/", "published_at": "2026-04-18T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c7380573", "title": "mkill: a memory watchcat", "url": "https://www.hdlfactory.com/post/2026/04/11/mkill-a-memory-watchcat/", "published_at": "2026-04-11T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c77dc235", "title": "Inventory of programmable hardware tooling", "url": "https://www.hdlfactory.com/post/2026/02/01/inventory-of-programmable-hardware-tooling/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c7c71407", "title": "fshlib: shell library", "url": "https://www.hdlfactory.com/post/2026/01/03/fshlib-shell-library/", "published_at": "2026-01-03T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c89fe1da", "title": "note to self: do not remove `.bazelversion`", "url": "https://www.hdlfactory.com/post/2025/12/20/note-to-self-do-not-remove-.bazelversion/", "published_at": "2025-12-20T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c8b6a4b4", "title": "rules_shar: bazel rules for creating self-extracting archives (shars)", "url": "https://www.hdlfactory.com/post/2025/11/22/rules_shar-bazel-rules-for-creating-self-extracting-archives-shars/", "published_at": "2025-11-22T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c93f00aa", "title": "Hermetic, Ephemeral, Reproducible Builds: Take Three (3)", "url": "https://www.hdlfactory.com/post/2025/10/29/hermetic-ephemeral-reproducible-builds-take-three-3/", "published_at": "2025-10-29T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42c97b4c2c", "title": "Hermetic, Ephemeral, Reproducible Builds: Take Three (2)", "url": "https://www.hdlfactory.com/post/2025/10/15/hermetic-ephemeral-reproducible-builds-take-three-2/", "published_at": "2025-10-15T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42ca6251bf", "title": "Bazel knowledge sources", "url": "https://www.hdlfactory.com/post/2025/10/07/bazel-knowledge-sources/", "published_at": "2025-10-07T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42ca8e0d6e", "title": "Hermetic, Ephemeral, Reproducible Builds: Take Three (1)", "url": "https://www.hdlfactory.com/post/2025/10/06/hermetic-ephemeral-reproducible-builds-take-three-1/", "published_at": "2025-10-06T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42cb4a1354", "title": "Getting ready for the brave new Bazel Modules world", "url": "https://www.hdlfactory.com/post/2025/09/29/getting-ready-for-the-brave-new-bazel-modules-world/", "published_at": "2025-09-29T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42cbc1a1c7", "title": "lit2md: a literate program converter from code to Markdown", "url": "https://www.hdlfactory.com/post/2025/09/21/lit2md-a-literate-program-converter-from-code-to-markdown/", "published_at": "2025-09-21T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42cc423ab3", "title": "Writing XDC Clock Constraints for Vivado", "url": "https://www.hdlfactory.com/post/2025/09/01/writing-xdc-clock-constraints-for-vivado/", "published_at": "2025-09-01T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42cc80f286", "title": "Decentralized Downloads for Bazel: Introducing `bazel_rules_bt`", "url": "https://www.hdlfactory.com/post/2025/08/01/decentralized-downloads-for-bazel-introducing-bazel_rules_bt/", "published_at": "2025-08-01T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42cce899cf", "title": "Mastering Resolved Signals in VHDL: A Comprehensive Guide for Digital Design", "url": "https://www.hdlfactory.com/post/2025/07/14/mastering-resolved-signals-in-vhdl-a-comprehensive-guide-for-digital-design/", "published_at": "2025-07-14T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42cde751f0", "title": "How to shoot yourself in the foot with inout signals", "url": "https://www.hdlfactory.com/post/2025/07/07/how-to-shoot-yourself-in-the-foot-with-inout-signals/", "published_at": "2025-07-07T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42ced1dbe9", "title": "VHDL IEEE Libraries and Numeric Type Conversion: A Definitive Reference", "url": "https://www.hdlfactory.com/post/2025/06/29/vhdl-ieee-libraries-and-numeric-type-conversion-a-definitive-reference/", "published_at": "2025-06-29T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42cf0a6167", "title": "Packaging AMD Xilinx Vivado ML Standard edition 2025.1 in a Docker container", "url": "https://www.hdlfactory.com/post/2025/06/19/packaging-amd-xilinx-vivado-ml-standard-edition-2025.1-in-a-docker-container/", "published_at": "2025-06-19T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42cfa78fe5", "title": "`rules_nixpkgs` use", "url": "https://www.hdlfactory.com/post/2025/04/11/rules_nixpkgs-use/", "published_at": "2025-04-11T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d08d3699", "title": "Bazel rules for \"build-in-docker\" (or \"bid\")", "url": "https://www.hdlfactory.com/post/2025/02/11/bazel-rules-for-build-in-docker-or-bid/", "published_at": "2025-02-11T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d16f1fd8", "title": "Typeset your own ebooks easily with `bazel-ebook`", "url": "https://www.hdlfactory.com/post/2025/02/04/typeset-your-own-ebooks-easily-with-bazel-ebook/", "published_at": "2025-02-04T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d201d84e", "title": "Using `glbl.v` module in a Verilog simulation in Vivado", "url": "https://www.hdlfactory.com/post/2024/11/16/using-glbl.v-module-in-a-verilog-simulation-in-vivado/", "published_at": "2024-11-16T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d226e9f2", "title": "go-vcd-parser: a tested VCD parser and toolkit in Go", "url": "https://www.hdlfactory.com/post/2024/10/26/go-vcd-parser-a-tested-vcd-parser-and-toolkit-in-go/", "published_at": "2024-10-26T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d2be4ce4", "title": "GNOME tips and tricks", "url": "https://www.hdlfactory.com/post/2024/10/22/gnome-tips-and-tricks/", "published_at": "2024-10-22T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d30d5d32", "title": "How to use $readmemh correctly", "url": "https://www.hdlfactory.com/post/2024/10/07/how-to-use-readmemh-correctly/", "published_at": "2024-10-07T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d3345312", "title": "From zero to RISC-V in hardware, in 6 minutes", "url": "https://www.hdlfactory.com/post/2024/10/05/from-zero-to-risc-v-in-hardware-in-6-minutes/", "published_at": "2024-10-05T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d41a8ff7", "title": "nix requires `ranlib`", "url": "https://www.hdlfactory.com/post/2024/09/14/nix-requires-ranlib/", "published_at": "2024-09-14T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d41c8d22", "title": "`bazel` rules for GHDL", "url": "https://www.hdlfactory.com/post/2024/09/03/bazel-rules-for-ghdl/", "published_at": "2024-09-03T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d4a31a5d", "title": "`bazel` rules for a riscv64 bare metal rust compiler", "url": "https://www.hdlfactory.com/post/2024/08/31/bazel-rules-for-a-riscv64-bare-metal-rust-compiler/", "published_at": "2024-08-31T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d59c50b0", "title": "`bazel` installation via the `bazelisk` method", "url": "https://www.hdlfactory.com/post/2024/08/24/bazel-installation-via-the-bazelisk-method/", "published_at": "2024-08-24T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d6803e31", "title": "`bazel` rules for a riscv64 bare metal GCC compiler", "url": "https://www.hdlfactory.com/post/2024/08/17/bazel-rules-for-a-riscv64-bare-metal-gcc-compiler/", "published_at": "2024-08-17T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d72c0654", "title": "`lazygit` tips and tricks", "url": "https://www.hdlfactory.com/post/2024/08/12/lazygit-tips-and-tricks/", "published_at": "2024-08-12T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d7d4ecea", "title": "Remote programming of an AMD (fka Xilinx) Artix-7 device", "url": "https://www.hdlfactory.com/post/2024/07/08/remote-programming-of-an-amd-fka-xilinx-artix-7-device/", "published_at": "2024-07-08T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d886b436", "title": "PSA: Google Nest Router can serve as an Access Point", "url": "https://www.hdlfactory.com/post/2024/05/25/psa-google-nest-router-can-serve-as-an-access-point/", "published_at": "2024-05-25T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d8bd0a9e", "title": "Hermetic, ephemeral, reproducible builds ('her')", "url": "https://www.hdlfactory.com/post/2024/05/01/hermetic-ephemeral-reproducible-builds-her/", "published_at": "2024-05-01T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d9ab85b9", "title": "Why do I bother with `bazel`?", "url": "https://www.hdlfactory.com/post/2024/04/27/why-do-i-bother-with-bazel/", "published_at": "2024-04-27T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42d9af4398", "title": "Nix+Bazel = ❤️", "url": "https://www.hdlfactory.com/post/2024/04/20/nix-bazel-%EF%B8%8F/", "published_at": "2024-04-20T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42daa8f143", "title": "`docker` tips and tricks", "url": "https://www.hdlfactory.com/post/2024/02/15/docker-tips-and-tricks/", "published_at": "2024-02-15T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42db13f38c", "title": "bazel does not like FIFOs", "url": "https://www.hdlfactory.com/post/2024/02/05/bazel-does-not-like-fifos/", "published_at": "2024-02-05T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42db19acac", "title": "Unix domain sockets in go", "url": "https://www.hdlfactory.com/post/2024/01/06/unix-domain-sockets-in-go/", "published_at": "2024-01-06T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42db923a0b", "title": "Running docker containers in Synology NAS", "url": "https://www.hdlfactory.com/post/2024/01/01/running-docker-containers-in-synology-nas/", "published_at": "2024-01-01T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42dc03110c", "title": "TIM-011 video playlist", "url": "https://www.hdlfactory.com/post/2023/12/25/tim-011-video-playlist/", "published_at": "2023-12-25T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42dcc00555", "title": "TIM-011 gets a unit test library", "url": "https://www.hdlfactory.com/post/2023/12/24/tim-011-gets-a-unit-test-library/", "published_at": "2023-12-24T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42ddbf37a8", "title": "bazoekt: easy code indexing and search for your Bazel projects", "url": "https://www.hdlfactory.com/post/2023/12/17/bazoekt-easy-code-indexing-and-search-for-your-bazel-projects/", "published_at": "2023-12-17T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42ddf04eda", "title": "bazel: excavating an unknown file from a `foreign_cc` rule", "url": "https://www.hdlfactory.com/post/2023/12/14/bazel-excavating-an-unknown-file-from-a-foreign_cc-rule/", "published_at": "2023-12-14T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42ddf7f106", "title": "TIM-011 gets a C runtime library", "url": "https://www.hdlfactory.com/post/2023/12/13/tim-011-gets-a-c-runtime-library/", "published_at": "2023-12-13T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42deaec843", "title": "TIM-011 computer - how we did things back then", "url": "https://www.hdlfactory.com/post/2023/12/03/tim-011-computer-how-we-did-things-back-then/", "published_at": "2023-12-03T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42df1ecdd2", "title": "Packaging AMD Xilinx Vivado ML Standard edition in a Docker container", "url": "https://www.hdlfactory.com/post/2023/11/20/packaging-amd-xilinx-vivado-ml-standard-edition-in-a-docker-container/", "published_at": "2023-11-20T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42dff6755c", "title": "Neovim tips and tricks", "url": "https://www.hdlfactory.com/post/2023/09/18/neovim-tips-and-tricks/", "published_at": "2023-09-18T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42e0eb0a7d", "title": "`git` tips and tricks", "url": "https://www.hdlfactory.com/post/2023/08/05/git-tips-and-tricks/", "published_at": "2023-08-05T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42e170e8bb", "title": "`bazel` tips and tricks", "url": "https://www.hdlfactory.com/post/2023/07/30/bazel-tips-and-tricks/", "published_at": "2023-07-30T00:00:00+00:00" }, { "id": "01a08781-ff20-73b6-bae4-3b42e1758127", "title": "Build a `python` web app in `bazel`", "url": "https://www.hdlfactory.com/post/2023/07/25/build-a-python-web-app-in-bazel/", "published_at": "2023-07-25T00:00:00+00:00" }, { "id": "01a08781-ff21-708a-85e6-c0fd78d7e88a", "title": "Tesla ownership experiences so far", "url": "https://www.hdlfactory.com/post/2023/06/30/tesla-ownership-experiences-so-far/", "published_at": "2023-06-30T00:00:00+00:00" }, { "id": "01a08781-ff21-708a-85e6-c0fd796730b4", "title": "Including arbitrary files into `cc_library` rule in `bazel`", "url": "https://www.hdlfactory.com/post/2023/06/23/including-arbitrary-files-into-cc_library-rule-in-bazel/", "published_at": "2023-06-23T00:00:00+00:00" }, { "id": "01a08781-ff21-708a-85e6-c0fd7982c46f", "title": "How to use the `make` rule from `rules_foreign_cc` repository for `bazel`", "url": "https://www.hdlfactory.com/post/2023/06/13/how-to-use-the-make-rule-from-rules_foreign_cc-repository-for-bazel/", "published_at": "2023-06-13T00:00:00+00:00" } ] posts Claim your blog
Back to hdlfactory.com
Blog · corpus.blog/blogs/hdlfactory.com/posts

hdlfactory.com

hdlfactory.com

2026

2025

2024

2023