<_whitenotifier-6>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] a1ed675 - Deploying to main from @ amaranth-lang/amaranth@7dd93bea57b563241f9d72695ddc29275503e3dd 🚀
<galibert[m]>
Do you really need to care about it?
<whitequark[cis]>
amaranth provides lib.io.FFBuffer, which needs an Altera implementation
<whitequark[cis]>
which is incredibly difficult to do correctly, because the Altera support for IO FFs is astonishingly poorly designed
<whitequark[cis]>
which is my (well, our, my & Wanda's) problem, because Amaranth compensates for toolchain incompetence
<galibert[m]>
Does it have to be one primitive at the verilog level?
<whitequark[cis]>
obviously not
<whitequark[cis]>
the mechanism is just not possible to use to precisely pack registers in the way every other goddamn platform that was not built by competent people can
<galibert[m]>
Quartus eagerly pack in the io buffer though
<whitequark[cis]>
it fucking don't
<whitequark[cis]>
and even if it did (as it does if you specify useioff), that just causes more problems
<whitequark[cis]>
because every normal platform has the "pack this into IOB" flag be conveyed via the type of primitive (e.g. ECP5), or via an attribute/parameter on the primitive (e.g. Xilinx)
<whitequark[cis]>
Quartus, for some batshit reason, puts it on the Verilog port
<galibert[m]>
Really? I’ve seen it do it all the time, I guess my test examples were easier
<whitequark[cis]>
note: I am not looking for advice, I understand useioff better than you do
<galibert[m]>
I don’t pretend to understand Quartus:-)
<whitequark[cis]>
Altera is the one and only platform that consistently has a habit of wasting an order of magnitude more time than any other platform when doing anything with it
<galibert[m]>
Including synth time
<galibert[m]>
It’s fucking slow
<whitequark[cis]>
that's the least of quartus' crimes
mindw0rk has quit [Ping timeout: 260 seconds]
mindw0rk has joined #amaranth-lang
<_whitenotifier-6>
[amaranth] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-1284-7dd93bea57b563241f9d72695ddc29275503e3dd - https://github.com/amaranth-lang/amaranth
<tpw_rules>
what is not perfect with the io buffers?
<tpw_rules>
oh, it's in the comments
<whitequark[cis]>
yes
<tpw_rules>
why not make a bunch of one bit ports?
<tpw_rules>
interface ugliness?
<whitequark[cis]>
that's... not how anything works?
FFY00 has joined #amaranth-lang
<Wanda[cis]>
because the interface of *Buffer is that it's already given an IOValue, which can be a slice of a port
<whitequark[cis]>
honestly if you use altera you probably just deserve to suffer
<whitequark[cis]>
altera hates you for being their customer, and i hate you for making me think about altera
<tpw_rules>
i'm saying why is p_number_of_channels > 1. can you just make n 1 bit primitives
<_whitenotifier-5>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 73abc90 - Deploying to main from @ amaranth-lang/amaranth@1b9290188b42ccb2473ed64584273a5d67c97394 🚀
<whitequark[cis]>
the IO buffer does not decide on the verilog name
<whitequark[cis]>
if your actual question is "why don't you add even more hacks to work around Quartus being a piece of shit": because I'd rather just git rm amaranth/vendor/_altera.py instead
<whitequark[cis]>
like to the general platform layer
<polysci_00232[m]>
yea running the container with interactive seems a little sketchy. Do I understand your comment correctly that this might misbehave is amaranth is run from another shell script?
<whitequark[cis]>
potentially; I don't remember exactly what was the issue but I remember there being potentially issues
<whitequark[cis]>
the PR that added execute_local_docker might have more insight
<polysci_00232[m]>
ill check it out, I ended up with this after trying a couple different ways to send the exit signal through to the docker process. My other thought is to catch the keyboard exit in amaranth and run another subprocess call to run docker stop or kill
<whitequark[cis]>
that's not too bad of an idea if you can reasonably extract the name of the container (i.e. not by parsing the output of the subprocess call or something sketchy like that)
<_whitenotifier-5>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 4be73cc - Deploying to main from @ amaranth-lang/amaranth@0597ac08ffd0741b7eeb3ed59d0dc94a88bb1dce 🚀
<_whitenotifier-5>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 65cb71d - Deploying to main from @ amaranth-lang/amaranth@d28d15761d0757ca7aaecc0c2b3b752c0afee0a2 🚀
<_whitenotifier-5>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 7657b31 - Deploying to main from @ amaranth-lang/amaranth@cd083aac140e17d6643c1135bb0576fc06436309 🚀
<polysci_00232[m]>
Ah I hadnt considered the case there are two builds with the same digest, i could just throw a timestamp on the name or give up on using the digest and just generate a UUID
<ldcd[m]>
zyp: Don't feel like you need to provide assistance or support for my fixed point shenanigans, I'm just trying to keep track of the rough edges I encounter as I work through an FFT design
<polysci_00232[m]>
docker stop also seems to print the stopped containers name also. I imagine that any unnecessary additional printing is undesirable?
<whitequark[cis]>
yeah as long as it succeeds just pipe it into devnull
<zyp[m]1>
<ldcd[m]> "zyp: Don't feel like you need to..." <- you're providing lots of valuable feedback, I'll go over all of it next time I work on it
<ldcd[m]>
Alright, in that case I will keep breaking things in new and creative ways
<zyp[m]1>
a proper implemetation should of course come with a full set of tests that'd root out any signedness issues
<whitequark[cis]>
polysci_00232: `self.digest(8)` would break if there are two builds of the same bitstream going on independently
<whitequark[cis]>
which is certainly not impossible
<whitequark[cis]>
maybe you're using two unrelated docker images, like with two toolchain versions
<ayakasakura[m]>
I've been turning the real-time chaos captured on my phone and computer into songs to spread the word. I'm keeping this up, turning each real moment into music. This is the face of national censorship in Japan, but I'm not backing down. Let's make this go viral!
ayakasakura[m] has left #amaranth-lang [#amaranth-lang]
<_whitenotifier-5>
[amaranth] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-1296-cd083aac140e17d6643c1135bb0576fc06436309 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-5>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] fcc3722 - Deploying to main from @ amaranth-lang/amaranth@514ff0bcbc200446719fa51053b9bb82a1113fbe 🚀
<_whitenotifier-6>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 025cc4d - Deploying to main from @ amaranth-lang/amaranth@16e80a7dcfee69f2e8637a8d6fa9486d08129d2a 🚀
<_whitenotifier-5>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] fd818cf - Deploying to main from @ amaranth-lang/amaranth@545aee773389161b7e073145175056a089b23fbc 🚀