<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: ZirconiumX</title><link>https://news.ycombinator.com/user?id=ZirconiumX</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 17 Jul 2026 02:15:55 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=ZirconiumX" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by ZirconiumX in "FreeBSD 16 Retires the Last of Its GPL Code from Its Base System"]]></title><description><![CDATA[
<p>> [The FreeBSD license] is a lax, permissive non-copyleft free software license<p><a href="https://www.gnu.org/licenses/license-list.html#FreeBSD" rel="nofollow">https://www.gnu.org/licenses/license-list.html#FreeBSD</a></p>
]]></description><pubDate>Wed, 15 Jul 2026 20:47:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=48926838</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=48926838</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48926838</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Bcachefs creator insists his custom LLM is female and 'fully conscious'"]]></title><description><![CDATA[
<p>> Being female or male is a fact about the biological world.<p>I was responding to this line, which I feel marginalises intersex people and could have been more inclusively worded.<p>I apologise if my comment somehow seemed to defend LLMs having a biological sex, despite me having said nothing to that effect.</p>
]]></description><pubDate>Thu, 26 Feb 2026 00:54:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=47160350</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=47160350</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47160350</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Bcachefs creator insists his custom LLM is female and 'fully conscious'"]]></title><description><![CDATA[
<p>You appear to have forgotten the existence of differences in sexual development (DSD).<p>The chart in [1] is a good visualisation of that, if you wish to learn more.<p>[1]: <a href="https://www.scientificamerican.com/article/beyond-xx-and-xy-the-extraordinary-complexity-of-sex-determination/" rel="nofollow">https://www.scientificamerican.com/article/beyond-xx-and-xy-...</a></p>
]]></description><pubDate>Wed, 25 Feb 2026 19:00:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47156122</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=47156122</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47156122</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Verilog to Routing"]]></title><description><![CDATA[
<p>Sorry, I really don't see where the issue is.<p>Nothing forces you to use C++ scripting here; Yosys has a shell that you can enter commands in, and it takes via `-s` a file of commands; a script.<p>That the default scripts are written in C++ to not need dependencies does not mean you also need to write your scripts in C++.</p>
]]></description><pubDate>Fri, 29 Sep 2023 00:22:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=37697783</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=37697783</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37697783</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Verilog to Routing"]]></title><description><![CDATA[
<p>...is your bugbear here that these particular scripts are written in C++ instead of Python?<p>Yes, those flows use ScriptPass, because for the most part they are scripts. If they were written in Tcl, then Yosys would need to depend on a Tcl interpreter, and equivalently a Python interpreter for Python. By just using C++ for these scripts which usually only developers need to modify, Yosys does not need to depend on either.<p>But anyway, if I was going to mess about with the flow that much, I'd start by running `help synth_xilinx`, which outputs a list of all the commands that it calls (more or less; it can't model control flow like a proper language can), and then that can be edited into what I need it to do.</p>
]]></description><pubDate>Wed, 27 Sep 2023 01:18:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=37668454</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=37668454</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37668454</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Verilog to Routing"]]></title><description><![CDATA[
<p>Reading your answers, I've noticed that there appear to be some major misconceptions about Yosys and how it works: certainly, ABC is a core part of a standard synthesis flow, but Yosys is based around a series of passes that modify a common intermediate representation. That should mean if anything it is very <i>easy</i> to use only part of Yosys.<p>Obviously it'd be off-topic to try to discuss your particular needs and use-cases of Yosys here, so feel free to email me at lofty@yosyshq.com.</p>
]]></description><pubDate>Wed, 27 Sep 2023 00:48:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=37668172</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=37668172</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37668172</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Verilog to Routing"]]></title><description><![CDATA[
<p>If you have any questions about nextpnr, feel free to email me at lofty@yosyshq.com.</p>
]]></description><pubDate>Wed, 27 Sep 2023 00:41:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=37668100</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=37668100</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37668100</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Verilog to Routing"]]></title><description><![CDATA[
<p>Well, at least part of this comes down to the fact that we did not choose a scripting language today, but at least a decade ago where Tcl was dominant in EDA and Python would not have been taken seriously.</p>
]]></description><pubDate>Wed, 27 Sep 2023 00:36:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=37668065</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=37668065</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37668065</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Verilog to Routing"]]></title><description><![CDATA[
<p>> > full disclosure: I work for YosysHQ<p>> let me take this opportunity to ask a question about something that makes absolutely zero sense to me: why did yosys insist on sticking with tcl over some more modern/well-known/familiar scripting language? yes everyone has their favorite tcl scripts for vivado or intel or whatever but none of them are transferrable to yosys irrespective of that fact that yosys supports tcl.<p>First: PYosys exists as Python bindings for Yosys, so you can in fact use a more modern scripting language for this.<p>Second: even if the Tcl scripts are not transferrable, a lot of our users do still have Tcl experience, and that transfers if nothing else.<p>But personally? For a lot of tasks you don't need a scripting language. If you want to turn a set of Verilog files into a JSON to pass to nextpnr-ecp5, that's `yosys -p "synth_ecp5 -abc9 -top top -json design.json" *.v` and there is neither Tcl nor Python involved here.<p>> further more, why is yosys itself basically scripting of ABC and nextpnr and etc using cpp instead of again using just some reasonable scripting language to connect the pieces?<p>Yosys is not simply some scripting around ABC: you need to parse input files, store this in an intermediate representation (RTLIL), elaborate and monomorphise the input structure, perform optimisation and logic minimisation on it; you need to map large structures like memories, hard multipliers and carry chains (ABC can't do that), legalise flop types and only then can you pass the logic to ABC. Once you get that logic from ABC, you need to turn it into cells that tooling recognises.<p>That the "script passes" we have that most front-end users use are so simple is because the complex logic is packed into neat passes to call.<p>> > multi-electrostatic placer<p>> um why? dreamplace exists? <a href="https://github.com/limbo018/DREAMPlace">https://github.com/limbo018/DREAMPlace</a><p>We're aware of DREAMPlace, however: DREAMPlace itself is for ASIC applications, so you'd want to use DREAMPlaceFPGA instead, which is...limited to a simplified Xilinx architecture or whatever partial FPGA Interchange Format support they have. We consider speed a feature, and having to deserialise the target device and netlist into FPGA Interchange Format in the hopes that DREAMPlaceFPGA can understand it is...not fast.<p>So instead we're working on our own multi-electrostatic placer which can more tightly integrate with nextpnr than something using DREAMPlace[FPGA] could.</p>
]]></description><pubDate>Wed, 27 Sep 2023 00:24:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=37667943</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=37667943</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37667943</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Verilog to Routing"]]></title><description><![CDATA[
<p>I should point out that even the F4PGA page [admits](<a href="https://f4pga.readthedocs.io/en/latest/how.html" rel="nofollow noreferrer">https://f4pga.readthedocs.io/en/latest/how.html</a>) that ECP5 and iCE40 support is done through nextpnr, rather than VPR.<p>(actually nextpnr has slowly-maturing support for Lattice MachXO{2,3}, Intel Cyclone V and Gowin parts too)</p>
]]></description><pubDate>Tue, 26 Sep 2023 20:09:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=37665179</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=37665179</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37665179</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Verilog to Routing"]]></title><description><![CDATA[
<p>full disclosure: I work for YosysHQ, who have an alternative open-source place-and-route program - [nextpnr](<a href="https://github.com/YosysHQ/nextpnr/">https://github.com/YosysHQ/nextpnr/</a>) - and YosysHQ presently has [a grant](<a href="https://activities.esa.int/4000141380" rel="nofollow noreferrer">https://activities.esa.int/4000141380</a>) from ESA on improving nextpnr.<p>to be blunt: nextpnr is what happens when you look at VPR as prior art and base every design decision around doing the opposite of VPR.<p>VPR is flexible, true: you can define an architecture description inside an XML file, but I view the VPR XML format to be poorly considered.<p>- commonly in an FPGA you will have "legality constraints" - for example, a block of LUTs cannot simultaneously be in carry-chain mode and act as LUT RAM. to produce a legal solution, all these constraints must be satisfied. to nextpnr this is [two basic](<a href="https://github.com/YosysHQ/nextpnr/blob/master/docs/archapi.md#bool-isvalidbelforcelltypeidstring-cell_type-belid-bel-const">https://github.com/YosysHQ/nextpnr/blob/master/docs/archapi....</a>) [API calls](<a href="https://github.com/YosysHQ/nextpnr/blob/master/docs/archapi.md#bool-isbellocationvalidbelid-bel-bool-explain_invalid--false-const">https://github.com/YosysHQ/nextpnr/blob/master/docs/archapi....</a>). to vpr, you must [walk the architecture](<a href="https://github.com/verilog-to-routing/vtr-verilog-to-routing/blob/37d59288324e5373898ad76c77a114ae0b1e91f1/vpr/src/place/place_util.cpp#L397-L441">https://github.com/verilog-to-routing/vtr-verilog-to-routing...</a>) to discover and cache legal placement positions.
- VPR often requires significantly more detail about an FPGA than is easy to provide; for example, [how switchboxes are laid out](<a href="https://docs.verilogtorouting.org/en/latest/arch/reference/#tag-%3Cswitch_blocktype=" rel="nofollow noreferrer">https://docs.verilogtorouting.org/en/latest/arch/reference/#...</a>), or [routing metal resistance/capacitance](<a href="https://docs.verilogtorouting.org/en/latest/arch/reference/#tag-%3Csegmentaxis=" rel="nofollow noreferrer">https://docs.verilogtorouting.org/en/latest/arch/reference/#...</a>). to nextpnr, routing is just nodes and edges on a graph.<p>Further, VPR's algorithms tend not to be designed with performance in mind; simulated annealing as a placement method does not scale well past the tens of thousands of LUTs, which is why nextpnr moved from full simulated annealing to [heterogenous analytic placement](<a href="https://ieeexplore.ieee.org/document/6339278" rel="nofollow noreferrer">https://ieeexplore.ieee.org/document/6339278</a>), and recently we have been working on a [multi-electrostatic placer](<a href="https://dl.acm.org/doi/abs/10.1145/3489517.3530568);" rel="nofollow noreferrer">https://dl.acm.org/doi/abs/10.1145/3489517.3530568);</a> both significantly more scalable methods based on using mathematical optimisation methods to place things nearby.</p>
]]></description><pubDate>Tue, 26 Sep 2023 20:06:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=37665128</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=37665128</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37665128</guid></item><item><title><![CDATA[New comment by ZirconiumX in "ARM: Pragmatism, Not Purity"]]></title><description><![CDATA[
<p>DIre SIlicon DeXtrously Concatenates 8 and 9 (for SysV). Jubilee[1] came up with that and it's a useful mnemonic.<p>[1]: <a href="https://twitter.com/workingjubilee" rel="nofollow">https://twitter.com/workingjubilee</a></p>
]]></description><pubDate>Tue, 15 Nov 2022 23:22:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=33616628</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=33616628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33616628</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Glasgow: Scots Army Knife for Electronics"]]></title><description><![CDATA[
<p>I asked whitequark about the name; it's named Glasgow because it's where the headquarters of FTDI are based, and the initial prototypes were intended to be an open-source serial adapter gateware before feature creep set in.</p>
]]></description><pubDate>Mon, 10 Aug 2020 14:56:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=24109919</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=24109919</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24109919</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Lattice FPGA adds 'no reversing' clause for SDK built on reversed bitstreams"]]></title><description><![CDATA[
<p>Distributing GCC does.</p>
]]></description><pubDate>Thu, 04 Jun 2020 20:18:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=23421256</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=23421256</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23421256</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Lattice FPGA adds 'no reversing' clause for SDK built on reversed bitstreams"]]></title><description><![CDATA[
<p>GOWIN's design is very similar to the ECP5 in architecture, but the bitstream formats are notably different.</p>
]]></description><pubDate>Thu, 04 Jun 2020 20:18:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=23421246</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=23421246</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23421246</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Qnice – An Elegant 16 Bit Processor"]]></title><description><![CDATA[
<p>Could you please point [6] at <a href="https://github.com/nmigen/nmigen" rel="nofollow">https://github.com/nmigen/nmigen</a> which is the new upstream after a hard fork?<p>Additionally, I'd like to clarify that nMigen generates Verilog indirectly; it actually generates RTLIL, which is the intermediate representation of Yosys, and then Yosys turns it into Verilog after some cleanup passes.<p>I'll happily admit to being biased, but nMigen is so much easier for me to work in than Verilog ever was.</p>
]]></description><pubDate>Fri, 13 Mar 2020 10:01:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=22566016</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=22566016</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22566016</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Dreamcast Emulator Redream 1.5.0 Progress Report"]]></title><description><![CDATA[
<p>There are three killers here: self-modifying code, synchronisation, and parallelism, all of which are major headaches for a JIT.<p>The PS3 does not have self-modifying PPC code (SCEI forbade it), which means the PPE blob can be compiled ahead-of-time (RPCS3 converts it into LLVM). The SPE data can self-modify, however, but (to my knowledge) does not require extensive synchronisation, therefore each SPE core can be put on a thread.<p>The PS2 code has fairly extensive use of self-modifying code; Naughty Dog in particular will frequently load parts of the executable in and out of memory on both the PS2 main processor (the EE) and the PS1 processor (the IOP), and rely on the synchronisation between these two separate processors to be fairly tight. Trying to make the EE and IOP separate threads running simultaneously breaks this synchronisation, so the EE and IOP have to run on the same thread.<p>Additionally, the PS2 has two vector units; VU0 is associated with the EE (it can be used as a floating-point SIMD unit in the EE instruction stream) and VU1 is associated with the GS [the PS2's GPU, the Graphics Synthesizer] Interface (GIF) (it can directly output primitives to the GS). This means that VU0 needs to run on the same thread that the EE runs on (because there is instruction stream interlocking), and VU1 needs relatively tight synchronisation to the GS (it <i>is</i> feasible to put it on its own thread, but games can be quite picky with timings)</p>
]]></description><pubDate>Mon, 17 Feb 2020 09:49:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=22346584</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=22346584</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22346584</guid></item><item><title><![CDATA[New comment by ZirconiumX in "Arduino MKR Vidor 4000 – Arduino, Cyclone 10 FPGA, MiniPCI Express, MicroHDMI"]]></title><description><![CDATA[
<p>> There are no plucky garage shops or "wise crowds" making FPGA tools that are even in the same galaxy as ISE or Vivado.<p>Symbiotic EDA comes to mind. However, I would argue they don't need to be <i>great</i>, just <i>good</i>.<p>I don't have a copy of Vivado to hand (I have an Altera dev board instead), but I can take PicoSoC with Yosys/nextpnr and have a bitstream in about a minute. If I try the same task in Quartus, that takes about five minutes. Producing a (relatively) inefficient bitstream actually speeds up the compile/run cycle in that scenario.<p>If the design meets timing, which is often decided by external factors, any extra time spend trying to make the design "better" is wasted time.</p>
]]></description><pubDate>Wed, 25 Sep 2019 05:14:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=21067815</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=21067815</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21067815</guid></item><item><title><![CDATA[New comment by ZirconiumX in "OpenBSD/loongson is still alive"]]></title><description><![CDATA[
<p>But modding a PS2 only requires a memory card with FreeMcBoot on it (it's literally plug and play), and at that point you might as well use an updated version of Linux like frno7's.</p>
]]></description><pubDate>Mon, 09 Sep 2019 05:43:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=20915488</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=20915488</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20915488</guid></item><item><title><![CDATA[New comment by ZirconiumX in "OpenBSD/loongson is still alive"]]></title><description><![CDATA[
<p>With the PlayStation 2 you <i>can</i> run Linux on MIPS[1], though it's a highly nonstandard MIPS; you'll need to get a memory card with FreeMcBoot. Plus, even if you plan to do embedded development, the PS2 is much more documented than the PS1.<p>As for a "more traditional computing" experience, you can always look for an SGI.<p>RISC-V borrows heavily from MIPS, so the two have a pretty similar development experience.<p>[1]: <a href="https://github.com/frno7/linux" rel="nofollow">https://github.com/frno7/linux</a> or else source the official PS2 Linux Kit.</p>
]]></description><pubDate>Mon, 09 Sep 2019 05:41:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=20915480</link><dc:creator>ZirconiumX</dc:creator><comments>https://news.ycombinator.com/item?id=20915480</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20915480</guid></item></channel></rss>