HNHacker News
TopNewBestAskShowJobs

celegans25

66 karma · joined May 28, 2020

submissionscomments
celegans25··on Zero ASIC releases Wildebeest, the highest performance FPGA synthesis tool
Often but not always. For most newer FPGAs, routing is the main source of delay on the critical path, not logic. So if the synthesis tool lowers the logic depth, but does so in a way that increases the distance the signal must travel on the chip, it likely won't help FMax.

This can be caused by increased logic usage, if the synthesis tool must create significantly more LUTs to reduce the critical path. This may make it harder to place the logic on the critical path close together, increasing the routing delay.

Additionally, if the synthesis tool replaces something with a dedicated routing path (most FPGAs have dedicated routing for carries, some may have dedicated routing for local connections in a CLB or between CLBs). These dedicated routing connections usually have a lower delay than the general purpose routing network, potentially increasing delay

The figures they have listed look promising though, they're lower or comparable to the commercial tools in terms of resource usage, with lower or comparable logic depths. They do however not have support for things like carry chains, which may potentially make some things like adders slower than the other tools.

celegans25··on Show HN: I made a C program to create a vanity SHA-1 hash for a text file
Look at the hashes of the commits
celegans25··on Homemade polarimetric synthetic aperture radar drone
Henrik has a blog post about a SAR radar he made from a couple years ago that goes into a bit more detail about how it works https://hforsten.com/synthetic-aperture-radar-imaging.html
celegans25··on FTC bans hidden junk fees in hotel, event ticket prices
With price increases over the last couple of years from inflation, retailers have shown they are more than capable of doing so already. So yes
celegans25··on Ask HN: How to go about reverse engineering and deformulating a beverage at home
That is unlikely to work. Centrifugal separation works when the fluid you're trying to separate is a suspension of either solids or multiple fluids that do not mix (such as oil or another fat and water). Blood is a suspension of several types of several things (red and white blood cells, platelets, minor amounts of other stuff) in plasma, so you can separate each of those components out with a centrifuge. Soda, unless it contains something like fruit pulp or dairy, is generally not a suspension and therefore will not be separated by a centrifuge
celegans25··on The business of wallets
The article only briefly mentions crypto and is instead about products like Paypal, Cashapp, Venmo, and the like.
celegans25··on Intel Meteor Lake's NPU
Clones of the 8051 are pretty popular in that scenario, I know for sure at least one mouse manufacturer uses them and probably a ton more
celegans25··on I accidentally Blender VSE
> and replacing them with just straight up floating point calculation Not only that, the diff replaces 100-150 lines of code with 3. That's the kind of pull request I can only dream of making
celegans25··on Std: Clamp generates less efficient assembly than std:min(max,std:max(min,v))
On gcc 13, the difference in assembly between the min(max()) version and std::clamp is eliminated when I add the -ffast-math flag. I suspect that the two implementations handle one of the arguments being NaN a bit differently.

https://gcc.godbolt.org/z/fGaP6roe9

I see the same behavior on clang 17 as well

https://gcc.godbolt.org/z/6jvnoxWhb

celegans25··on ARMv8 AArch64/ARM64 Full Beginner's Assembly Tutorial
x86 was designed/developed back when a lot of programs were written in assembly, so writing assembly for it isn't terrible especially if you focus on the simpler instructions. Things like accessing global variables or manipulating the stack tend to be easier on x86 than on a load/store architecture because of all the addressing modes available.

I personally would nominate POWER/PowerPC for Not The Ideal Assembly Language To Learn. Lots of confusing mnemonics, like two addressing modes, and registers identified by number instead of by name. It was not designed to be written by humans

celegans25··on How can I implement a simple asynchronous DRAM controller? (2018)
The DRAM chips themselves are asynchronous (there's no clock signal connected to the RAM chip), however they expect a sequence of operations with specific timings in order to work. The PET's solution was to create a small synchronous circuit to generate the control signals with the correct timings for the DRAM. This however wasn't the only way it could be done, as the other answer states how the PC/XT did it with delay lines.
celegans25··on Snoop unto them as they snoop unto you
Thanks for the link, that was extremely interesting to read
celegans25··on Plant-Based Egg Has Soft Fluffy Texture Producers Say Was Previously Impossible
Well for one, not everyone is able to eat eggs or dairy. For these people (such as myself), there's not an alternative besides a plant based substitute. To me it's pretty exciting to see new developments here. People in this category probably aren't a large portion of their market though.
celegans25··on Koch method to learn Morse
Generally yes. Sending morse is much easier than receiving it. Once you are comfortable receiving morse at 25wpm for example, the amount of practice needed to send at that speed is pretty minimal.
celegans25··on 86Box: Why Not Pentium III?
Logic Gate != Transistor and FPGA LUT != Logic Gate

FPGA LUTs are quite sophisticated, the LUTs in both Xilinx and Intel's latest offerings are able to implement an arbitrary boolean logic function with up to 6 inputs and 1 output. The FPGA also comes packed with other specialized hardware such as on chip memory and multipliers so you do not need to burn logic to use those things. You very likely could fit a Pentium III on a moderately large FPGA.

The real challenge would be matching the clock speed of the original processor. Even 400MHz of the first pentium IIIs on the market might be difficult, getting near 1GHz is likely impossible.

celegans25··on What Every C Programmer Should Know About Undefined Behavior
I am not sure if this generalizes to non-64 bit platforms, but in my experience using size_t gives you unsigned integer indexing without requiring overflow checks (as it's normally a 64 bit quantity).