<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>SoCMake Blog</title>
        <link>https://hep-soc.github.io/SoCMake/pr-preview/pr-226/blog</link>
        <description>SoCMake Blog</description>
        <lastBuildDate>Mon, 15 Jun 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Welcome to the SoCMake Blog]]></title>
            <link>https://hep-soc.github.io/SoCMake/pr-preview/pr-226/blog/welcome</link>
            <guid>https://hep-soc.github.io/SoCMake/pr-preview/pr-226/blog/welcome</guid>
            <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Welcome to the official SoCMake blog! This is where we will post release notes, feature highlights, tutorials, and news from the project.]]></description>
            <content:encoded><![CDATA[<p>Welcome to the official SoCMake blog! This is where we will post release notes, feature highlights, tutorials, and news from the project.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-is-socmake">What is SoCMake?<a href="https://hep-soc.github.io/SoCMake/pr-preview/pr-226/blog/welcome#what-is-socmake" class="hash-link" aria-label="Direct link to What is SoCMake?" title="Direct link to What is SoCMake?" translate="no">​</a></h2>
<p><strong>SoCMake</strong> is a hardware build system built on top of CMake. It extends the mature CMake ecosystem to cover the specific needs of hardware and SoC design — RTL simulation, code generation, FPGA implementation, and synthesis — without reinventing the wheel.</p>
<p>The core idea is simple: instead of learning yet another domain-specific build tool, designers can use the same CMake workflow used in many software projects, and SoCMake handles the rest.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="key-features">Key Features<a href="https://hep-soc.github.io/SoCMake/pr-preview/pr-226/blog/welcome#key-features" class="hash-link" aria-label="Direct link to Key Features" title="Direct link to Key Features" translate="no">​</a></h2>
<ul>
<li class=""><strong>First-class C/C++ support</strong> — ideal for SystemC testbenches and mixed HW/SW projects</li>
<li class=""><strong>Cross-compilation</strong> — compile target CPU application code for ARM, RISC-V and other architectures alongside your RTL</li>
<li class=""><strong>Extensive simulation support</strong> — Verilator, Icarus Verilog, GHDL, Xcelium, VCS, Questasim, Vivado Simulator, and cocotb</li>
<li class=""><strong>RTL toolchain integration</strong> — linting (Verible, vhdl_linter), conversion (sv2v), synthesis (Yosys, Vivado), and register description (PeakRDL, desyrdl)</li>
<li class=""><strong>IP block package management</strong> — package IPs as self-contained repositories and manage dependencies via <a href="https://github.com/cpm-cmake/CPM.cmake" target="_blank" rel="noopener noreferrer" class="">CPM.cmake</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="supported-languages-and-tools">Supported Languages and Tools<a href="https://hep-soc.github.io/SoCMake/pr-preview/pr-226/blog/welcome#supported-languages-and-tools" class="hash-link" aria-label="Direct link to Supported Languages and Tools" title="Direct link to Supported Languages and Tools" translate="no">​</a></h2>
<table><thead><tr><th>Category</th><th>Tools</th></tr></thead><tbody><tr><td><strong>Languages</strong></td><td>C, C++, SystemC, ASM, Verilog, SystemVerilog, VHDL, SystemRDL, IP-XACT</td></tr><tr><td><strong>Simulation</strong></td><td>Verilator, Icarus Verilog, GHDL, Xcelium, VCS, Questasim, Vivado Sim, cocotb</td></tr><tr><td><strong>Linting</strong></td><td>Verible, vhdl_linter</td></tr><tr><td><strong>Conversion</strong></td><td>sv2v</td></tr><tr><td><strong>Synthesis</strong></td><td>Yosys, Vivado</td></tr><tr><td><strong>Register tools</strong></td><td>PeakRDL (regblock, halcpp, html, socgen), desyrdl</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="getting-started">Getting Started<a href="https://hep-soc.github.io/SoCMake/pr-preview/pr-226/blog/welcome#getting-started" class="hash-link" aria-label="Direct link to Getting Started" title="Direct link to Getting Started" translate="no">​</a></h2>
<p>SoCMake has minimal dependencies — only CMake ≥ 3.27 and <code>make</code> or <code>ninja</code>. The quickest way to try it is via the one-time bootstrap:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:#282c34;--prism-color:#ffffff"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="background-color:#282c34;color:#ffffff"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#ffffff"><span class="token function" style="color:#79b6f2">curl</span><span class="token plain"> </span><span class="token parameter variable" style="color:#d7deea">-fsSL</span><span class="token plain"> https://raw.githubusercontent.com/HEP-SoC/SoCMake/develop/bootstrap/bootstrap.sh </span><span class="token operator" style="color:#d7deea">|</span><span class="token plain"> </span><span class="token function" style="color:#79b6f2">sh</span><br></div></code></pre></div></div>
<p>Then create a <code>CMakeLists.txt</code>:</p>
<div class="language-cmake codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:#282c34;--prism-color:#ffffff"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-cmake codeBlock_bY9V thin-scrollbar" style="background-color:#282c34;color:#ffffff"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#ffffff"><span class="token keyword" style="color:#c5a5c5">cmake_minimum_required</span><span class="token punctuation" style="color:#8dc891">(</span><span class="token property" style="color:#5a9bcf">VERSION</span><span class="token plain"> </span><span class="token number" style="color:#5a9bcf">3.27</span><span class="token punctuation" style="color:#8dc891">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#ffffff"><span class="token plain"></span><span class="token keyword" style="color:#c5a5c5">project</span><span class="token punctuation" style="color:#8dc891">(</span><span class="token plain">my_soc NONE</span><span class="token punctuation" style="color:#8dc891">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#ffffff"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#ffffff"><span class="token plain"></span><span class="token keyword" style="color:#c5a5c5">find_package</span><span class="token punctuation" style="color:#8dc891">(</span><span class="token plain">socmake REQUIRED</span><span class="token punctuation" style="color:#8dc891">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#ffffff"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#ffffff"><span class="token plain"></span><span class="token function" style="color:#79b6f2">add_ip</span><span class="token punctuation" style="color:#8dc891">(</span><span class="token plain">my_ip</span><span class="token punctuation" style="color:#8dc891">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#ffffff"><span class="token plain"></span><span class="token function" style="color:#79b6f2">ip_sources</span><span class="token punctuation" style="color:#8dc891">(</span><span class="token plain">my_ip SYSTEMVERILOG src/my_module.sv</span><span class="token punctuation" style="color:#8dc891">)</span><br></div></code></pre></div></div>
<p>See the <a class="" href="https://hep-soc.github.io/SoCMake/pr-preview/pr-226/docs/getting_started">Getting Started</a> guide and the <a class="" href="https://hep-soc.github.io/SoCMake/pr-preview/pr-226/docs/category/examples">Examples</a> for full walkthroughs.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="about-this-blog">About This Blog<a href="https://hep-soc.github.io/SoCMake/pr-preview/pr-226/blog/welcome#about-this-blog" class="hash-link" aria-label="Direct link to About This Blog" title="Direct link to About This Blog" translate="no">​</a></h2>
<p>We will use this space to announce new releases, explain design decisions, and share tips for getting the most out of SoCMake. Stay tuned!</p>]]></content:encoded>
            <category>socmake</category>
            <category>announcement</category>
        </item>
    </channel>
</rss>