<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>ErrBits — Deep dives for systems engineers</title>
    <link>https://errbits.com</link>
    <description>Technical deep dives on SystemC, C/C++, ARM architecture, and embedded systems.</description>
    <language>en-us</language>
    <atom:link href="https://errbits.com/feed.xml" rel="self" type="application/rss+xml"/>
    <image>
      <url>https://errbits.com/assets/images/favicon.svg</url>
      <title>ErrBits</title>
      <link>https://errbits.com</link>
    </image>
  <item>
    <title>sc_port and sc_export in SystemC — Required and Provided Interfaces</title>
    <link>https://errbits.com/articles/sc-port-and-sc-export-in-systemc.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/sc-port-and-sc-export-in-systemc.html</guid>
    <description>sc_port requires a service from outside; sc_export provides one. Master both, understand hierarchical binding, elaboration binding rules, and how the same channel can be accessed through different interface views.</description>
    <pubDate>Mon, 05 May 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>What Is System-Level Modeling? — And Why SystemC Is Built for It</title>
    <link>https://errbits.com/articles/what-is-system-level-modeling.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/what-is-system-level-modeling.html</guid>
    <description>System-level modeling means describing hardware behavior at a high abstraction — no clock cycles, no wires, just functionality. Here's what that means in practice and why SystemC is designed for it.</description>
    <pubDate>Wed, 30 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>sc_prim_channel in SystemC — Building Custom Channels</title>
    <link>https://errbits.com/articles/sc-prim-channel-in-systemc.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/sc-prim-channel-in-systemc.html</guid>
    <description>sc_prim_channel gives you request_update() and update() to participate in SystemC's evaluate-update protocol. Learn how to build a correct, deadlock-free custom channel from scratch — including a typed priority buffer.</description>
    <pubDate>Mon, 28 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>sc_interface in SystemC — The Interface Method Call Pattern</title>
    <link>https://errbits.com/articles/sc-interface-in-systemc.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/sc-interface-in-systemc.html</guid>
    <description>sc_interface is the abstract root of every SystemC channel. Learn the IMC pattern, define custom interfaces, understand register_port and default_event, and see why TLM 2.0 is built on this foundation.</description>
    <pubDate>Sun, 20 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>SystemC Scheduler Internals — How the Simulation Engine Runs Your Processes</title>
    <link>https://errbits.com/articles/systemc-scheduler-internals.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/systemc-scheduler-internals.html</guid>
    <description>A ground-up look at how the SystemC scheduler works: process states, the runnable queue, cooperative multitasking, initialization phase, execution order guarantees, SC_THREAD vs SC_METHOD in the scheduler, delta-triggered vs time-triggered wakeups, and starvation.</description>
    <pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>sc_mutex and sc_semaphore in SystemC — Shared Resource Synchronization</title>
    <link>https://errbits.com/articles/sc-mutex-and-sc-semaphore-in-systemc.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/sc-mutex-and-sc-semaphore-in-systemc.html</guid>
    <description>How SC_THREADs coordinate access to shared resources in SystemC. Covers sc_mutex (lock/unlock/trylock), sc_semaphore (wait/post/trywait), a complete shared-bus example, comparison table, and deadlock pitfalls.</description>
    <pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>Port Binding in SystemC — sc_in, sc_out, sc_inout and Hierarchical Binding</title>
    <link>https://errbits.com/articles/port-binding-in-systemc.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/port-binding-in-systemc.html</guid>
    <description>How SystemC ports connect modules to channels. Covers sc_in, sc_out, sc_inout declaration, direct binding in sc_main, hierarchical port forwarding, the four binding rules, port events, and common binding errors.</description>
    <pubDate>Tue, 15 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>sc_fifo in SystemC — Buffered Communication Between Processes</title>
    <link>https://errbits.com/articles/sc-fifo-in-systemc.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/sc-fifo-in-systemc.html</guid>
    <description>sc_fifo is SystemC's built-in blocking FIFO channel. Master write(), read(), nb_write(), nb_read(), depth, events, and the sc_fifo_in/sc_fifo_out port interface with a complete producer-consumer example.</description>
    <pubDate>Tue, 15 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>sc_clock in SystemC — Period, Duty Cycle, and Clock-Driven Design</title>
    <link>https://errbits.com/articles/sc-clock-in-systemc.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/sc-clock-in-systemc.html</guid>
    <description>Complete guide to sc_clock: period, duty cycle, start time, posedge/negedge events, connecting clocks to ports, multiple clocks, and clock gating patterns.</description>
    <pubDate>Sun, 12 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>sc_main Deep Dive — SystemC Simulation Entry Point</title>
    <link>https://errbits.com/articles/sc-main-in-systemc.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/sc-main-in-systemc.html</guid>
    <description>Deep dive into sc_main: elaboration, sc_start(), sc_stop(), time control, VCD tracing, error handling with sc_report_handler, and post-simulation analysis.</description>
    <pubDate>Sun, 12 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>Installing SystemC on Windows, Linux, and macOS</title>
    <link>https://errbits.com/articles/installing-systemc-on-windows-linux-mac.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/installing-systemc-on-windows-linux-mac.html</guid>
    <description>Step-by-step guide to installing SystemC 2.3.3 on Windows, Linux, and macOS — from downloading the source to building, linking, and running your first simulation.</description>
    <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>SC_MODULE in SystemC — Ports, Processes, and Hierarchy Explained</title>
    <link>https://errbits.com/articles/sc-module-in-systemc.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/sc-module-in-systemc.html</guid>
    <description>Complete guide to SC_MODULE: macro expansion, SC_CTOR vs SC_HAS_PROCESS, sc_in/sc_out ports, SC_METHOD vs SC_THREAD, sensitivity lists, module hierarchy.</description>
    <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>sc_signal and the Evaluate-Update Mechanism</title>
    <link>https://errbits.com/articles/sc-signal-and-evaluate-update.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/sc-signal-and-evaluate-update.html</guid>
    <description>sc_signal is not a variable — it's a channel with deferred writes. Master the evaluate-update mechanism, the read lag, value_changed_event, posedge/negedge, and the single-writer rule.</description>
    <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>Simulation Phases in SystemC — From sc_main() to Cleanup</title>
    <link>https://errbits.com/articles/simulation-phases-in-systemc.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/simulation-phases-in-systemc.html</guid>
    <description>Every SystemC simulation phase: elaboration, initialization, the evaluate-update execution loop, and end-of-simulation cleanup — plus the four lifecycle callbacks.</description>
    <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>SystemC Data Types — sc_uint, sc_logic, sc_fixed Explained</title>
    <link>https://errbits.com/articles/systemc-data-types.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/systemc-data-types.html</guid>
    <description>Complete guide to SystemC data types: sc_int, sc_uint, sc_bv, sc_logic, sc_lv, sc_bigint, and sc_fixed — with bit operations, range/slice syntax, and performance ranking.</description>
    <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>Delta Cycles in SystemC — What Happens Inside One Timestep</title>
    <link>https://errbits.com/articles/delta-cycles-in-systemc.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/delta-cycles-in-systemc.html</guid>
    <description>Delta cycles are the invisible heartbeat of every SystemC simulation. Understand how the evaluate-update loop works, why signals don't update immediately, and what SC_ZERO_TIME actually does.</description>
    <pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>Events and Sensitivity in SystemC — How Processes Know When to Run</title>
    <link>https://errbits.com/articles/events-and-sensitivity-in-systemc.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/events-and-sensitivity-in-systemc.html</guid>
    <description>sc_event, static sensitivity, and dynamic sensitivity explained. How SystemC processes decide when to wake up — and why missing an event can deadlock your simulation.</description>
    <pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>SC_THREAD vs SC_METHOD — The Real Difference</title>
    <link>https://errbits.com/articles/sc-thread-vs-sc-method.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/sc-thread-vs-sc-method.html</guid>
    <description>SC_THREAD and SC_METHOD model fundamentally different simulation behaviors. Here's what actually sets them apart, with code.</description>
    <pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>Evolution of Channels in SystemC</title>
    <link>https://errbits.com/articles/evolution-of-channels-in-systemc.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/evolution-of-channels-in-systemc.html</guid>
    <description>From sc_signal wires to TLM sockets — how SystemC channels evolved across abstraction levels, and why the channel-interface-port triad is the backbone of all SystemC communication.</description>
    <pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate>
    <category>SystemC</category>
  </item>
  <item>
    <title>Introduction to ARM Architecture and Its Impact</title>
    <link>https://errbits.com/articles/introduction-to-arm-architecture-and-its-impact.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/introduction-to-arm-architecture-and-its-impact.html</guid>
    <description>ARM architecture overview: RISC design principles, Cortex-A, Cortex-R, and Cortex-M profiles — plus how ARM's instruction set evolved from ARMv7 to ARMv8 (AArch64).</description>
    <pubDate>Sun, 13 Oct 2024 00:00:00 +0000</pubDate>
    <category>ARM</category>
  </item>
  <item>
    <title>Minimum Number of Virtual Pointer (vptr) Loads in C++ — vtable Explained</title>
    <link>https://errbits.com/articles/vptr_vtble.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/vptr_vtble.html</guid>
    <description>Under ideal compiler optimizations, devirtualization can reduce vptr loads to zero. Covers vtable layout, vptr load counting, final keyword, CRTP, and PGO.</description>
    <pubDate>Mon, 20 May 2024 00:00:00 +0000</pubDate>
    <category>C++</category>
  </item>
  <item>
    <title>How to Create a Thread and Execute It on Specific CPU Core</title>
    <link>https://errbits.com/articles/how-to-create-a-thread-and-execute-it-on-specific-cpu-core.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/how-to-create-a-thread-and-execute-it-on-specific-cpu-core.html</guid>
    <description>Create POSIX threads in C/C++, set scheduling policies, configure thread priority, and pin execution to a specific CPU core using pthread and CPU affinity APIs.</description>
    <pubDate>Sun, 27 Feb 2022 00:00:00 +0000</pubDate>
    <category>Systems</category>
  </item>
  <item>
    <title>Real-Time Logging for Embedded Systems and IoT</title>
    <link>https://errbits.com/articles/real-time-logging-for-embedded-systems-and-iot.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/real-time-logging-for-embedded-systems-and-iot.html</guid>
    <description>Remote embedded logging in Linux-based IoT systems: syslog levels, facility codes, sending logs over UDP/MQTT to a remote server, and C code examples for datalogging pipelines.</description>
    <pubDate>Sat, 05 Feb 2022 00:00:00 +0000</pubDate>
    <category>Embedded</category>
  </item>
  <item>
    <title>Structure vs Union in C — Memory Layout, Size, and Use Cases</title>
    <link>https://errbits.com/articles/difference-between-structure-and-union.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/difference-between-structure-and-union.html</guid>
    <description>struct vs union in C: a union shares one memory block for all members; a struct gives each member its own. Memory layout, sizeof comparison, and when to choose each.</description>
    <pubDate>Sun, 16 Jan 2022 00:00:00 +0000</pubDate>
    <category>C</category>
  </item>
  <item>
    <title>Constant Pointer vs Pointer to Constant in C — All Four const Combinations</title>
    <link>https://errbits.com/articles/constant-pointer.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/constant-pointer.html</guid>
    <description>const pointer vs pointer to const in C: int *const p fixes the address; const int *p fixes the value. See all four combinations, syntax rules, and embedded use cases.</description>
    <pubDate>Sun, 02 Jan 2022 00:00:00 +0000</pubDate>
    <category>C</category>
  </item>
  <item>
    <title>volatile in C — Compiler Optimisation, ISR Safety, and Hardware Registers</title>
    <link>https://errbits.com/articles/volatile-in-c-and-compiler-optimization.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/volatile-in-c-and-compiler-optimization.html</guid>
    <description>What volatile does in C, how it prevents compiler optimization of variables accessed by hardware or multiple threads, with ARM assembly examples.</description>
    <pubDate>Tue, 28 Dec 2021 00:00:00 +0000</pubDate>
    <category>C</category>
  </item>
  <item>
    <title>Storage Classes in C</title>
    <link>https://errbits.com/articles/storage-classes-in-c.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/storage-classes-in-c.html</guid>
    <description>Complete guide to all four C storage classes: auto, register, static, and extern. Scope, lifetime, memory layout, and embedded-systems use cases.</description>
    <pubDate>Thu, 16 Dec 2021 00:00:00 +0000</pubDate>
    <category>C</category>
  </item>
  <item>
    <title>Double Pointer in C</title>
    <link>https://errbits.com/articles/double-pointer-in-c.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/double-pointer-in-c.html</guid>
    <description>Master double pointers (int **) in C: memory layout, modifying a pointer from inside a function, dynamic 2D arrays, linked list manipulation, and common pitfalls.</description>
    <pubDate>Thu, 09 Dec 2021 00:00:00 +0000</pubDate>
    <category>C</category>
  </item>
  <item>
    <title>Pointer in C/C++</title>
    <link>https://errbits.com/articles/pointer-in-c-c.html</link>
    <guid isPermaLink="true">https://errbits.com/articles/pointer-in-c-c.html</guid>
    <description>Complete guide to pointers: declaration, arithmetic, void/null/dangling pointers, function pointers, const combinations, pointer vs reference — with code examples.</description>
    <pubDate>Sat, 04 Dec 2021 00:00:00 +0000</pubDate>
    <category>C</category>
  </item>
  </channel>
</rss>