• 1 Post
  • 53 Comments
Joined 1 year ago
cake
Cake day: July 3rd, 2023

help-circle





  • I have no idea why, but convention. And not a thing where nerds like me gather to dork out about something, but a scientific standard. Whenever I’m explaining something, and someone asks why it operates that way, I’m always like, “it’s that way by… uh… y’know, it’s always been that way.” No clue why I always blank on that word specifically.








  • I think it falls into the same pitfalls as most super niche communities, like a lot of subreddits did.

    For example, the shaving subreddit (/r/wicked_edge I think?). Its mission statement was to introduce people to cleaner, safer, and more efficient shaving methods. And for the most part, with all of its resources and wikis, it successfully did it. But if you choose to stay after you’ve made your informed purchases, the posts were mostly braggarts showing off their latest hundreds-of-dollars handles, supreme razor blades, brushes made from actual gold, that sort of thing. My point is, the average person (by my guess, like 90% of people going to the site) gets the information they need and then never participate in the community again. But those who stay are those who really want to stay– people who are most likely to brag and boast. So over time, it falls more and more into plain old dick measuring contests.

    This obviously isn’t true of all communities, but I think it’s a common pitfall for a lot of them. I can imagine privacy is very similar: take all the steps you can to learn to protect your privacy, and then… you’re good, for the most part.





  • HOLY FUCK I AM SO FUCKING HARD

    …small concern though: I currently use the rail planner a lot, usually to map out how I want my outposts to look at long distances. If the rail planner, particularly shift + click, is actively looking for rails to snap to, I hope it won’t greedily try to snap to rails I don’t want it to. I’m sure the devs already have this considered, but I just want to make sure that if I have multi-layer train crossings, and I’m trying to plan them out before I actually build them, that I’m able to path out rails behind an elevated rail without the rail planner assuming I want the rail to connect to the elevated rail. I hope that won’t be an annoying issue.


  • Man, no kidding. We’ve got SoCs, we’ve got processors running on the FPGA fabric, we’ve got communications to Ethernet, PCIe, any AXI you like really. They can talk to RAM, storage, other processors, output graphics, kiss me on the forehead, and tuck me in at night. (I think.)

    A coworker was telling me about the big shots in New York trading companies that are starting to implement FPGA architectures into their high-frequency trading algorithms, as the blazing high speed and great parallelization helps them squeeze out a couple extra microseconds in their algorithms. I think that’s a good sign of people wising up to this potential here.

    I don’t know of any ML training on FPGAs, but I have no doubt that it can be / it is being done.

    Edit: I just remembered the other day, I was shown a module that could take in a grey scale image, do edge dection, and output the edges as a new image file. Which isn’t that hard, it’s convolution on a sliding window, but what baffled me is that it was done in fewer cycles than could be compiled through C code, and the pipeline wasn’t even that deep. It’s crazy!



  • The “print hello world” equivalent of FPGAs is to make an LED blink. That teaches you how to use an FPGA’s clock, divide it down to a frequency the human eye can actually see, and route it out to a pin (the LED on your board). Then you can experiment with your catalog of digital circuit building blocks using buttons, switches, LEDs, and 7-segment displays. You can make your own custom logic of ANDs and ORs to display different logic.

    Some super beginner projects I found fun back in college:

    • Create a counter, and increment the counter every time you press a button. That’s the easy part. Then display the value on a 4-digit 7-segment display. It’s harder than it sounds, because you have to learn about time multiplexing! (At any one instance in time, only one digit is on, and the other three are off. Human persistence of vision makes us believe all 4 digits are being shown at once, but in reality, the system cycles through each digit, flashing one on for a few milliseconds, then turning it off and moving to the next one. Implementing this takes effort!)

    • Learning Finite State Machines and then implementing your own is fun. I made a “vending machine” state machine once, where different buttons corresponded to inserting different coins, and then once a certain amount of money was put in, you could select which beverage you wanted, the machine would “vend” (an LED would flash), and then change is administered. Another fun and classic FSM is the pattern detector, where you input a series of 1s and 0s, and the machine will blink an LED if it detects a certain pattern in the sequence, say, 11010. This one is a lot harder than it sounds, because it requires a lot of thinking of the different edge cases! If I input 111, for example, the system shouldn’t be like, “well he inputted 111 but I was expecting 110…, so I’m gonna start over”, because I could input “111111010” and the pattern is there, just at the end. This one teaches you how to draw state diagrams and Mealy/Moore machines!

    • Then you can get into using peripherals, like RGB LEDs, gyroscopes, graphics on a screen, ethernet connections, etc. You just need to learn the protocols and follow the correct logic in your own logic. It’s a lot of copy and pasting at first, but if you put in the effort to understand what you’re copying, you’ll pick up on it fast.

    Really, the world’s your oyster, all you need is a development kit and a program that will synthesize/place&route your Verilog or VHDL.

    And if you’d like to start at the very, very beginning, HDLBits is an amazing resource to learn Verilog: https://hdlbits.01xz.net/wiki/Main_Page

    Let me know if I can ever be of any assistance :)