<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rafael Cury Rayes</title>
    <description>The latest articles on DEV Community by Rafael Cury Rayes (@rafael_curyrayes_c653204).</description>
    <link>https://dev.to/rafael_curyrayes_c653204</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3732042%2Ff909f0cf-7b0f-4073-8851-756c92c5fab8.png</url>
      <title>DEV Community: Rafael Cury Rayes</title>
      <link>https://dev.to/rafael_curyrayes_c653204</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rafael_curyrayes_c653204"/>
    <language>en</language>
    <item>
      <title>I Built a Hardware Description Language with JUST logic gates (and Here’s Why)</title>
      <dc:creator>Rafael Cury Rayes</dc:creator>
      <pubDate>Mon, 26 Jan 2026 00:38:27 +0000</pubDate>
      <link>https://dev.to/rafael_curyrayes_c653204/i-built-a-hardware-description-language-with-just-logic-gates-and-heres-why-4fjb</link>
      <guid>https://dev.to/rafael_curyrayes_c653204/i-built-a-hardware-description-language-with-just-logic-gates-and-heres-why-4fjb</guid>
      <description>&lt;p&gt;Most hardware description languages try to make hardware design easier by adding abstraction: arithmetic operators, inferred widths, behavioral blocks, and synthesis-friendly constructs.&lt;/p&gt;

&lt;p&gt;SHDL takes the opposite approach.&lt;/p&gt;

&lt;p&gt;I built SHDL (Simple Hardware Description Language) as an experiment in radical minimalism: what happens if you describe hardware using nothing but logic gates, wires, and explicit connections?&lt;/p&gt;

&lt;p&gt;There are no adders, no “+”, no implicit registers. If you want a full adder, you build it from XOR, AND, and OR gates. If you want a CPU, you compose it from those adders, registers, multiplexers, and control logic—manually.&lt;/p&gt;

&lt;p&gt;Why do this?&lt;/p&gt;

&lt;p&gt;Because abstraction hides understanding.&lt;/p&gt;

&lt;p&gt;Modern HDLs are incredibly powerful, but they also make it easy to forget what hardware is. SHDL is designed to force the designer to confront the physical reality of digital logic: signals, propagation, composition, and structure.&lt;/p&gt;

&lt;p&gt;What SHDL is (and isn’t)&lt;/p&gt;

&lt;p&gt;SHDL is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;an educational and experimental HDL&lt;/li&gt;
&lt;li&gt;a way to learn digital logic from first principles&lt;/li&gt;
&lt;li&gt;a playground for language and tooling design&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SHDL is not:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a replacement for Verilog or VHDL&lt;/li&gt;
&lt;li&gt;optimized for synthesis or production hardware&lt;/li&gt;
&lt;li&gt;focused on convenience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To make experimentation practical, I built PySHDL, a Python interface that lets you simulate SHDL circuits programmatically. You can load a circuit, set inputs, step the clock, and inspect outputs directly from Python, which makes it easy to write tests or interactive experiments.&lt;/p&gt;

&lt;p&gt;Internally, SHDL compiles circuits to C for execution, but the language itself stays deliberately small and explicit.&lt;/p&gt;

&lt;p&gt;What I’m looking for&lt;/p&gt;

&lt;p&gt;This project is still evolving, and I’m very interested in feedback from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;people who teach or learn digital logic&lt;/li&gt;
&lt;li&gt;HDL and programming language designers&lt;/li&gt;
&lt;li&gt;anyone curious about what hardware looks like without abstraction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re interested, the project is open source:&lt;br&gt;
&lt;a href="https://github.com/rafa-rrayes/SHDL" rel="noopener noreferrer"&gt;https://github.com/rafa-rrayes/SHDL&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’d love to hear what you think—especially what feels enlightening versus frustrating. Both reactions are valuable.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>c</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
