mei,
@mei@donotsta.re avatar

I really like the concept of FPGAs but when I want to actually get into them I remember that all the vendor bullshit and toolchain bullshit and HDL language design bullshit and I'm just way too tired to actually get through that and get into that ecosystem properly

mei,
@mei@donotsta.re avatar

I guess that it doesn't exactly spark joy, but it does spark FOMO

mei,
@mei@donotsta.re avatar

let me know when the gay catgirl crusade is done and FPGA toolchains are actually nice to work with

whitequark,
@whitequark@mastodon.social avatar
whitequark,
@whitequark@mastodon.social avatar

@mei i am disabled and exhausted and i build a language for disabled and exhausted catgirls

its pretty alright

whitequark,
@whitequark@mastodon.social avatar

@mei also like the entire toolchain is now a python package and you can manage & version it with the existing package manager on any OS instead of like, having to install native dependencies or whatever

this is what https://glasgow-embedded.org is using to do turnkey bitstream generation

mei,
@mei@donotsta.re avatar

@whitequark that does sound relevant. I'm definitely exhausted and sometimes people tell me I'm disabled but I mostly brush it off and pretend I'm fine and normal

what's the trade-off? can I use it to develop bitstreams for all/most FPGAs? (maybe with some compatibility step like transpiling through Verilog?) can I interact with hard IP?

whitequark,
@whitequark@mastodon.social avatar

@mei

> what's the trade-off?

amaranth brings python arithmetic semantics to FPGAs, and is itself written in python. so it assumes you're ok with python. note: it's not an "HLS" thing and it's not a "Python to FPGA compiler". it's just a way to construct netlists that's actually fit for purpose. it's very slightly lower level than verilog

> an I use it to develop bitstreams for all/most FPGAs?

virtually any

> can I interact with hard IP?

with virtually any yes

mei,
@mei@donotsta.re avatar

@whitequark okay, this sounds very promising! one day I’ll give it a proper try…

amaranth brings python arithmetic semantics to FPGAs

hm, what do you mean? the biggest part of what comes to mind when i hear “python arithmetic semantics” is “everything’s a bigint”, which… surely not? i mean, you probably could do it with something like abstract interpretation but that doesn’t sound like the level of abstraction? the example on the playground actually does specify that count is 4 bits (which is good! but it means that I don’t understand what you mean here)

whitequark,
@whitequark@mastodon.social avatar

@mei every intermediate result (eg count + 1) has enough width to not lose precision

https://amaranth-lang.org/docs/amaranth/latest/guide.html#operators explains the basic concepts

https://amaranth-lang.org/docs/amaranth/latest/reference.html#values has the exact width extension logic

whitequark,
@whitequark@mastodon.social avatar

@mei .eq() truncates so actually using something with the result throws away unwanted high bits

none of the operators truncate so you can treat their result as basically a bigint

mei,
@mei@donotsta.re avatar

@whitequark oh! yeah, that’s lovely

whitequark,
@whitequark@mastodon.social avatar

@mei o:3

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • slotface
  • kavyap
  • thenastyranch
  • everett
  • tacticalgear
  • rosin
  • Durango
  • DreamBathrooms
  • mdbf
  • magazineikmin
  • InstantRegret
  • Youngstown
  • khanakhh
  • ethstaker
  • JUstTest
  • ngwrru68w68
  • cisconetworking
  • modclub
  • tester
  • osvaldo12
  • cubers
  • GTA5RPClips
  • normalnudes
  • Leos
  • provamag3
  • anitta
  • megavids
  • lostlight
  • All magazines