ChanServ changed the topic of #nmigen to: nMigen hardware description language · code at https://github.com/nmigen · logs at https://freenode.irclog.whitequark.org/nmigen · IRC meetings each 1st & 3rd Monday at 1800 UTC · next meeting July 6th
<Falteckz> What bridge is d1b2 crossing?
<miek> to the 1bitsquared discord
<esden> I wish I could add some meta information to the bridge account. I could not find any way to do that. :/
<esden> for reference it is this discord here: https://1bitsquared.com/pages/chat
<Falteckz> Can you not put a URL as the real name? I don't remember IRC RFC permitted characters for realname
<d1b2> <edbordin> https://en.wikipedia.org/wiki/Wikipedia:IRC/Tutorial mentions putting a URL in realname as a possibility
<whitequark> mithro: hm the tabs are kind of ugly
<whitequark> is there a stylesheet you're using or something?
<Falteckz> Looks like the real name can be anything ASCII including colons and spaces, so that seems to be two votes yes for URL in the whois
Degi has quit [Ping timeout: 240 seconds]
Degi has joined #nmigen
<d1b2> <Falteckz> Neat, I'm a bot.
<agg> is it piping everything from 1bitsquared discord general room into nmigen or is there an nmigen-specific room on that discord server?
<d1b2> <edbordin> there's an nmigen room
<Falteckz> .There is an nmigen room on the server
<Falteckz> and the irc bridge creates a "Bot" instance for each IRC user which is the hottest part
<d1b2> <Stary> well, webhooks are allowed to specify a username for every message they send - so bridgebots end up using it as a workaround for lack of proper impersonation
<d1b2> <Stary> it sucks a bit but works ok most of the time
<Falteckz> That's a very neat feature.
d1b2 has quit [Remote host closed the connection]
d1b2 has joined #nmigen
<agg> a bit surprised freenode's ok with it not impersonating each discord user but i guess it's ok for small bots in single rooms
<agg> there's various problems around that with the matrix to freenode bridges
<whitequark> i'd prefer if it impersonated each discord user tbh
<Falteckz> Connection limit per IP address?
<agg> it makes for wicked netsplits when the bridge disconnects
<agg> but this way means you can't tell from irc who's reading messages, can't tab complete nicks, etc, which is a shame
<esden> humm, the real name seems to be cutting off the remainder of the url I added there
<esden> at least looking at it here from IRCCloud
<Stary> i see * [d1b2] (~d1b2@cdr.esden.net): 1BitSquared Discord Bridge https://1bitsquared.com
<Falteckz> I also see the same.
<esden> Yeah it should be: "1BitSquared Discord Bridge https://1bitsquared.com/pages/chat"
<Falteckz> Huh - if you put an email address in your whois you get a Gravitar on IRCCloud - neat
d1b2 has quit [Remote host closed the connection]
d1b2 has joined #nmigen
<esden> ahh character limit
<Falteckz> You know that's funny! I was going to say character limit but I couldn't prove it and was looking through RFC
<Falteckz> It seemed so convienent
<esden> the RFC says 512 characters should be ok :/
<Falteckz> Oh - IRCCloud then?
<esden> or rather my quick google
<Falteckz> Huh - I see the entire URL there
<esden> I swapped it around
<Falteckz> Gotcha
<Stary> "1bitsquared dis"
<Falteckz> Just drop 1bitsquared and replace it with "Discord"
<Falteckz> The URL tells me everything else
<Falteckz> or maybe s/Discord/Bridge
d1b2 has quit [Remote host closed the connection]
d1b2 has joined #nmigen
<mithro> whitequark: We use this theme -> https://github.com/SymbiFlow/sphinx_materialdesign_theme
<Falteckz> Nice!
<esden> that should be better :D
<Stary> lol thats one way to do it
<Falteckz> I was just thinking "I wish superscript could be used in URLs"
<Falteckz> I'm pleased you already have a short URL registered
<esden> It is handy when I want to squeeze the url on a PCB ;)
<Falteckz> Brilliant
<esden> I wish I could get 1b2.com :P
<Falteckz> 1b2.chat?
<Falteckz> 1b2.io
<whitequark> pls no .io
<Falteckz> But it's tReNDy
<Stary> arent io domains hideously expensive
<whitequark> that's not the issue i have with it
<Falteckz> The cost of seeming relevant, Stary
<Falteckz> I've always used `.net` anyway
<agg> io's not super expensive, is super colonial
<Falteckz> Oh my
<Falteckz> I didn't realize `io` is regional
<Stary> yeah thats the other issue with it
<whitequark> it's one of the more blatant legacies of colonial crimes
<whitequark> well, not even legacies, it's ongoing
<whitequark> pretty awful situation no matter how you look at it
<Falteckz> Yeah - not the only TLD to have this strife
jaseg has quit [Ping timeout: 272 seconds]
<Falteckz> Plenty TLDs seem "fun" in English and so some companies open shells in a region to then use that domain
<Falteckz> That that's less of a problem I think.
jaseg has joined #nmigen
<Falteckz> I really take page faults for granted. When you're in an environment that just bricks on an invalid memory read instead of exploding, it's a struggle.
proteus-guy has quit [Ping timeout: 260 seconds]
proteus-guy has joined #nmigen
PyroPeter_ has joined #nmigen
electronic_eel has quit [Ping timeout: 246 seconds]
electronic_eel has joined #nmigen
PyroPeter has quit [Ping timeout: 240 seconds]
PyroPeter_ is now known as PyroPeter
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±4] https://git.io/JJJ0L
<_whitenotifier-f> [nmigen/nmigen] whitequark c202661 - docs: rewrite install instructions to be easier to understand.
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+2/-0/±15] https://git.io/JJJ0Y
<_whitenotifier-f> [nmigen/nmigen] whitequark 28cc0de - Deploying to gh-pages from @ c20266164d76c6cf74c9337732555463b39721ba 🚀
<whitequark> please take a look at https://nmigen.info/nmigen/latest/install.html and tell me if it's easy to follow
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/JJJ08
<_whitenotifier-f> [nmigen/nmigen] whitequark b0dbbb6 - CI: build docs on all pushes, update only on master.
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±11] https://git.io/JJJ0E
<_whitenotifier-f> [nmigen/nmigen] whitequark f21eeef - Deploying to gh-pages from @ b0dbbb6b2a9518a2c83287c25881697e3afa256d 🚀
<Falteckz> Ooooh, tabs
<Falteckz> GTKWave precompiled binaries for Windows are provided it seems, I checked that earlier
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/JJJ07
<_whitenotifier-f> [nmigen/nmigen] whitequark 9f731d1 - docs: explain how to install GTKWave on Windows.
<Falteckz> Is it possible to have one [Windows] [macOS] [Linux] tab?
<whitequark> so there are two extensions for tabs
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±14] https://git.io/JJJ0d
<_whitenotifier-f> [nmigen/nmigen] whitequark 2a7808c - Deploying to gh-pages from @ 9f731d185db45fbcda17a6524fc25c6deb2e4ef7 🚀
<whitequark> one is sphinx-tabs, which mithro recommended. it is ugly as sin
<whitequark> the other is sphinxcontrib-contentui, which i am using. it has broken tab synchronization
<Falteckz> I see. I don't suppose a <h1> can exist inside a tab body?
<whitequark> reST does not allow that
<whitequark> I use rubrics in the Linux tab to work around it somewhat...
<Falteckz> I noticed that "Debian" looked to be an h2 or some other smaller heading
<whitequark> h3
<whitequark> well, it uses the same CSS as h3
<whitequark> but it's not an h3 because reST can't do that :/
<Falteckz> Yes - I see that it's a paragraph with CSS
<_whitenotifier-f> [nmigen] whitequark opened issue #416: Fix tab synchronization in installation guide - https://git.io/JJJEJ
<Falteckz> I see the conflict with table of contents and multiple headings/tabs
<whitequark> yeah
<Falteckz> Part of me wishes for this layout instead
<whitequark> most of nMigen isn't platform-specific, but it would be appropriate to have those buttons under "Installation" for example
<whitequark> yep
<Falteckz> Tabs aside, instructions good.
<whitequark> should detect it from user agent too
<Falteckz> That would be nice.
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/JJJEg
<_whitenotifier-f> [nmigen/nmigen] whitequark 20baea4 - docs: reword slightly.
<Falteckz> Will try the Windows installation instructions on Thursday when I've some free time.
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±14] https://git.io/JJJEV
<_whitenotifier-f> [nmigen/nmigen] whitequark c5fbdf1 - Deploying to gh-pages from @ 20baea401b309795261ec7bbed726acd2564c232 🚀
<Falteckz> Even though the docs are still very under development, it would be good to get a link on #master/README
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 2 commits to master [+0/-0/±2] https://git.io/JJJED
<_whitenotifier-f> [nmigen/nmigen] whitequark 7d25bd5 - README: update to refer to documentation where applicable.
<whitequark> Falteckz: done
<_whitenotifier-f> [nmigen/nmigen] whitequark 78c027f - docs/install: reduce repetition.
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±13] https://git.io/JJJES
<_whitenotifier-f> [nmigen/nmigen] whitequark 62b659e - Deploying to gh-pages from @ 78c027fb36b9f42f330a0bc6f81ed422aa66b4ce 🚀
<Falteckz> You are a good person and people say nice things about you
<Falteckz> Is it recommended to `pip3 install --user`? My system requires it but the docs do not mention it.
<whitequark> oooh good catch, that's an editing error
<whitequark> hm I wonder how that works in a virtualenv
<Falteckz> I'll try it
<whitequark> yeah that completely fucks everything up if you run it in a venv
<whitequark> it installs dependencies in the virtualenv but the actual package to ~/.local
<Falteckz> Yeah just noticed that too, pip3 list gave me nothing unless run without --user
<d1b2> <edbordin> oh wow... I never thought to see what happens in that situation
<whitequark> depressing
<Falteckz> Is that the title for your new Python Package Management book?
<whitequark> yea...
<whitequark> what the hell do i do now, duplicate all the instructions one more time? that's nuts
<whitequark> anyone knows what --user even does on windows or macos?
<whitequark> i'm pretty sure on macos it's effectively useless
<d1b2> <edbordin> on windows I think it installs to the user's appdata folder
<whitequark> do people even use system python installs on windows?
<d1b2> <edbordin> oh right, I forgot, yeah they changed it at some point so the whole install goes to the user's appdata folder
<d1b2> <edbordin> in which case your assessment of it being useless sounds about right
<Falteckz> `npm` got package management correct...
* Falteckz ducks
<d1b2> <edbordin> I mean, pipenv is more or less a chaotic approximation of npm
<Falteckz> There have been a lot of issues opened about `--user` in .venv, in fact it's even worse as some people have `user=true` in their global pip config. So all venvs are broken.
<whitequark> pretty much damn anything works better than the python status quo
<Falteckz> Anyway, all the issues seem closed by stale[bot] now
<d1b2> <edbordin> my main issue with pipenv is the CLI is almost as poorly designed as git
<whitequark> i keep looking at pipenv and poetry but neither seems to be ready to introduce new users to
<d1b2> <edbordin> it has that whole vibe where one command does wildly different things depending on what flags you give it
<d1b2> <edbordin> poetry is something I meant to try but never did
<Falteckz> I for one would welcome anything that isn't pip. Will put ear to the ground and cross fingers
<whitequark> i think pip is actually one of the few reasonable parts
<Falteckz> Well if we don't blame pip then where does the fault lie? pip is just an enabler for a poorly defined policy?
<whitequark> as long as your pip isn't ancient and as long as you don't expect it to maintain a globally consistent set of packages with non-conflicting dependencies it works well
<whitequark> is there 'the fault'?
<whitequark> it seems pretty clearly a wicked problem
<d1b2> <edbordin> I don't mind pip, but requirements.txt is a very limiting way of specifying project dependencies
<whitequark> yeah
<d1b2> <edbordin> well, at least if you opt to generate it from pip freeze it is
<Falteckz> Apparently `--user` inside a `venv` should hard fail in later versions of pip/venv/python/something
<Falteckz> Fix was meant to roll out Jan 2020
<d1b2> <edbordin> cool, it should start appearing in distros in 2030
<Falteckz> No joke, I'm still on Python2 for 90% of the projects I work on
<Falteckz> Ubuntu doesn't seem to ship with anything higher than 3.6.7 either
<whitequark> nmigen does still work on 3.6
<Falteckz> Alright - seems if pip is up to date, omitting `--user` will not hard fail
<Falteckz> So perhaps I was mistaken earlier
<Falteckz> _Defaulting to user installation because normal site-packages is not writeable_
<Falteckz> Seems fine as of pip 20 and Python 3.6.7
<Falteckz> What's the procedure for installing nmigen-boards, I assume clone and setup.py ?
<whitequark> yeah basically that
<tpw_rules> Falteckz: ubuntu 20.04 ships with 3.8
<Falteckz> I bet people were mad about that 😆
<Falteckz> whitequark `WARNING: nmigen 0.2 does not provide the extra 'builtin-yosys'`
<whitequark> yes, the docs are for an unreleased version
<Falteckz> Gotcha, no worries. Was just testing docs
<Falteckz> So the builtin wasmtime based yosys is installed, now I must provide it via YOSYS variable?
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/JJJzT
<_whitenotifier-f> [nmigen/nmigen] whitequark adbc947 - docs/install: use `pip install --user` on *nix.
<whitequark> nope, it's picked up automatically
<Falteckz> Not in the examples it isn't
<whitequark> hm
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±14] https://git.io/JJJzL
<_whitenotifier-f> [nmigen/nmigen] whitequark 8fdd09f - Deploying to gh-pages from @ adbc9472741ebe00530a0fff14d0911d764801e4 🚀
<whitequark> are you sure? can you show me steps to reproduce/
<Falteckz> Sure can.
<Falteckz> Whew that was a hassle, I was so happy it reproduced lol.
<whitequark> Falteckz: ohhhh I see
<whitequark> so there are two yosyses
<whitequark> the nmigen-yosys that got installed is a very cut down version that can only convert nmigen code to verilog (and a few more things in the future)
<whitequark> the yosys that you can use to synthesize stuff is a part of the FPGA family toolchain which i do not document yet
<Falteckz> Alright. No worries. I would usually have the entire toolchain installed anyway but thought I'd try this new bundled yosys wasm stuff
<whitequark> you can!
<whitequark> https://yowasp.org/
<whitequark> install that and then specify it as YOSYS, NEXTPNR_ICE40, ICEPACK
<Falteckz> Smooth! Alright will try that 👍😁
<Falteckz> Curiously is there any reason this can't run in the browser?
<d1b2> <edbordin> I don't know if you can use WASI in the browser to handle file IO etc
<whitequark> you can emulate WASI in JS
<whitequark> but currently this is blocked on 64-bit integer support I think
<whitequark> i'm not sure how wapm.io works around it?
<d1b2> <edbordin> oh JS, what a language
<whitequark> i gotta get emoji to work in my terminal emulator
<whitequark> it's a remarkably good tutorial, even things that are completely undocumented are used in the best possible way overall
<whitequark> very impressive
FFY00 has quit [Ping timeout: 244 seconds]
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+1/-0/±0] https://git.io/JJJgN
<_whitenotifier-f> [nmigen/nmigen] whitequark 59aabc6 - Add PEP 518 `pyproject.toml`.
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+1/-0/±1] https://git.io/JJJgx
<_whitenotifier-f> [nmigen/nmigen] whitequark 7fca037 - Add PEP 518 `pyproject.toml`.
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±11] https://git.io/JJJgj
<_whitenotifier-f> [nmigen/nmigen] whitequark ec8b998 - Deploying to gh-pages from @ 59aabc6e39c06caadc5b2e3696ec277282edf975 🚀
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±9] https://git.io/JJJ2e
<_whitenotifier-f> [nmigen/nmigen] whitequark d9d85ae - Deploying to gh-pages from @ 7fca037f9c14974f499195171bb84c38ebddc1e1 🚀
<_whitenotifier-f> [nmigen] whitequark commented on pull request #349: setup.py: add "wheel" to setup_requires - https://git.io/JJJ2v
<_whitenotifier-f> [nmigen] whitequark commented on pull request #358: use declarative setuptools config - https://git.io/JJJ2T
<_whitenotifier-f> [nmigen] whitequark closed pull request #358: use declarative setuptools config - https://git.io/JfvBX
<Falteckz> Getting emoji support working on my terminal probably took 3 days, honestly. But now my Ubuntu xterm is as pretty as my buddy's MacBook
<Falteckz> I also know which other developers do not have emoji support because they are getting "weird boxes when I run your build script" 🤷
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/JJJ2y
<_whitenotifier-f> [nmigen/nmigen] whitequark f50303c - docs/install: explain how to install non-editable snapshot from git.
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±14] https://git.io/JJJ2H
<_whitenotifier-f> [nmigen/nmigen] whitequark 2344666 - Deploying to gh-pages from @ f50303ca7c46bca66f454b4de613f25148ea6cc0 🚀
<smkz> y-yes
<whitequark> ok great
<whitequark> i sunk probably a dozen hours into that page alone
<whitequark> it better be good after that
<whitequark> you should see the source, it is hideous
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/JJJaC
<_whitenotifier-f> [nmigen/nmigen] whitequark 43da4e3 - docs/install: quote special chars to avoid issues with extended glob.
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/JJJaB
<_whitenotifier-f> [nmigen/nmigen] whitequark f5670a9 - docs/install: fix dead link.
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±13] https://git.io/JJJaR
<_whitenotifier-f> [nmigen/nmigen] whitequark 93dcc25 - Deploying to gh-pages from @ 43da4e3f0a356c356c7f2ddcf8ad7963b9daf5a1 🚀
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±13] https://git.io/JJJaE
<_whitenotifier-f> [nmigen/nmigen] whitequark ebb1686 - Deploying to gh-pages from @ f5670a9b719a2c240949df853b5425ceea8244d0 🚀
<zignig> whitequark: thanks for all the nmigen,
<zignig> as mcuch as you can this is cool stuff, :)
* zignig continues to make USB descriptors
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±2] https://git.io/JJJV8
<_whitenotifier-f> [nmigen/nmigen] whitequark 126f0be - Gracefully handle missing dependencies.
hitomi2503 has joined #nmigen
<_whitenotifier-f> [nmigen] whitequark commented on issue #244: Reliable installation on Windows - https://git.io/JJJV0
<_whitenotifier-f> [nmigen] whitequark closed issue #244: Reliable installation on Windows - https://git.io/JJJVE
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±11] https://git.io/JJJVu
<_whitenotifier-f> [nmigen/nmigen] whitequark c154911 - Deploying to gh-pages from @ 126f0be731ab008657ca1c4fc05ce7cc6e355169 🚀
nengel has joined #nmigen
chipmuenk has joined #nmigen
<d1b2> <286Tech> @whitequark: They also wrote this: https://vivonomicon.com/2020/06/13/lets-write-a-minimal-risc-v-cpu-in-nmigen/
<d1b2> <286Tech> Pretty cool stuff, I must say!
Falteckz has quit [Quit: Connection closed for inactivity]
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 2 commits to master [+1/-1/±3] https://git.io/JJJK8
<_whitenotifier-f> [nmigen/nmigen] whitequark 76c7e70 - docs: add a crude approximation of intersphinx toctrees.
<_whitenotifier-f> [nmigen/nmigen] whitequark 416b253 - Revert "Add PEP 518 `pyproject.toml`."
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+3/-0/±14] https://git.io/JJJK0
<_whitenotifier-f> [nmigen/nmigen] whitequark 5c4af97 - Deploying to gh-pages from @ 416b2531aed20ce7e661f2a211c2fb76311fe83b 🚀
Asu has joined #nmigen
<vup> whitequark: one thing I find confusing is being able to deselect the tabs completely, is this on purpose?
<whitequark> vup: i'm just using an existing package...
<whitequark> i guess i'm going to have to fork it at some point
<vup> right, I thought it maybe could already have an option to disallow that and was too lazy to look it up, sorry
<_whitenotifier-f> [yosys] whitequark commented on issue #1: Non-zero error code causes nmigen to fail - https://git.io/JJJ6U
<_whitenotifier-f> [YoWASP/yosys] whitequark pushed 4 commits to release [+1/-0/±6] https://git.io/JJJ6q
<_whitenotifier-f> [YoWASP/yosys] whitequark 0adb382 - Factor out packaging script.
<_whitenotifier-f> [YoWASP/yosys] whitequark 9359e3a - Make builds reproducible.
<_whitenotifier-f> [YoWASP/yosys] whitequark aae50ce - Export a public function to invoke Yosys without a subprocess.
<_whitenotifier-f> [YoWASP/yosys] whitequark 04d03be - Don't require explicitly specified argv[0].
<_whitenotifier-f> [yosys] whitequark commented on issue #1: Non-zero error code causes nmigen to fail - https://git.io/JJJ6P
<_whitenotifier-f> [yosys] whitequark commented on issue #1: Non-zero error code causes nmigen to fail - https://git.io/JJJiI
<_whitenotifier-f> [yosys] whitequark edited issue #1: Crash on Windows with STATUS_BAD_STACK - https://git.io/JJJit
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±2] https://git.io/JJJis
<_whitenotifier-f> [nmigen/nmigen] whitequark 6c0530c - docs: clarify naming.
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±15] https://git.io/JJJil
<_whitenotifier-f> [nmigen/nmigen] whitequark 6c85775 - Deploying to gh-pages from @ 6c0530cf4e0c5688ec5b6e408aa1e04abe0f1815 🚀
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/JJJia
<_whitenotifier-f> [nmigen/nmigen] whitequark 7fa4b34 - docs/install: use pip/pip3 more consistently.
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±15] https://git.io/JJJio
<_whitenotifier-f> [nmigen/nmigen] whitequark d11e4ce - Deploying to gh-pages from @ 7fa4b348a954d2a94925f733fc5f3825cfa33b84 🚀
Asu has quit [Remote host closed the connection]
Asu has joined #nmigen
Asu has quit [Remote host closed the connection]
Asu has joined #nmigen
_whitelogger has joined #nmigen
Asu has quit [Read error: Connection reset by peer]
Asu has joined #nmigen
<d1b2> <Akk> Just released https://github.com/alanvgreen/icebreaker-nmigen-life It's life on an iCE40 at 1280x720, 60fps. All written in nmigen!
<d1b2> <Akk> It's about 4k lines of python, including about 2k lines of test cases: nmigen's simulator was super helpful
<d1b2> <edbordin> Awesome! I bet @esden would like this
Asu has quit [Remote host closed the connection]
Asu has joined #nmigen
<_whitenotifier-f> [nmigen] jeanthom opened issue #417: Can't emulate fully combinatorial design - https://git.io/JJJyZ
FFY00 has joined #nmigen
trabucayre has joined #nmigen
<_whitenotifier-f> [nmigen] jeanthom commented on issue #418: Simulation of Verilog output doesn't match nMigen simulation - https://git.io/JJJ7r
FFY00 has quit [Read error: Connection reset by peer]
FFY00 has joined #nmigen
FFY00 has quit [Remote host closed the connection]
FFY00 has joined #nmigen
FFY00 has quit [Remote host closed the connection]
FFY00 has joined #nmigen
chipmuenk has quit [Quit: chipmuenk]
chipmuenk has joined #nmigen
<_whitenotifier-f> [nmigen-boards] jfng opened pull request #71: Add ECPIX-5 support. - https://git.io/JJJhU
hitomi2503 has quit [Quit: Nettalk6 - www.ntalk.de]
<_whitenotifier-f> [nmigen-soc] Fatsie opened pull request #21: [WIP]wishbone.Connector class - https://git.io/JJJhA
<_whitenotifier-f> [nmigen-soc] codecov[bot] commented on pull request #21: [WIP]wishbone.Connector class - https://git.io/JJJjf
<_whitenotifier-f> [nmigen-soc] codecov[bot] edited a comment on pull request #21: [WIP]wishbone.Connector class - https://git.io/JJJjf
<_whitenotifier-f> [nmigen-soc] Fatsie commented on issue #18: Wishbone access from initiator bus with data_width smaller than the one of the subordinate bus. - https://git.io/JJJjT
<_whitenotifier-f> [nmigen-soc] Fatsie commented on pull request #21: [WIP]wishbone.Connector class - https://git.io/JJJjO
<FL4SHK> seems I can't get `cover` to work with my `past_rst` signal
<FL4SHK> `Cover(loc.formal.past_rst)` won't work when `with m.If(rst): m.d.sync += loc.formal.past_rst.eq(0b1)`
<mithro> whitequark: Yay for contributors! -> https://github.com/SymbiFlow/sphinxcontrib-verilog-diagrams/pull/49
FFY00 has quit [Remote host closed the connection]
FFY00 has joined #nmigen
craigo has joined #nmigen
craigo has quit [Quit: Leaving]
craigo has joined #nmigen
chipmuenk has quit [Quit: chipmuenk]
craigo has quit [Client Quit]
craigo has joined #nmigen
electronic_eel has quit [*.net *.split]
electronic_eel has joined #nmigen
Degi has quit [Ping timeout: 246 seconds]
Degi has joined #nmigen
jordigw has quit [*.net *.split]
alexhw has quit [*.net *.split]
FL4SHK has quit [*.net *.split]
XgF has quit [*.net *.split]
XgF has joined #nmigen
jordigw has joined #nmigen
FL4SHK has joined #nmigen
alexhw has joined #nmigen
<awygle> whitequark, daveshah: is the weirdness around reprogramming the bitstream flash for ECP5 handled in nmigen or in nextpnr?
<awygle> that is, making it accessible from user logic requires setting some kind of flag
<awygle> (sorry for vagueness, i know how to do it in diamond but not in the oss tools)
<daveshah> Actually nextpnr doesn't support that flag at the moment
<daveshah> But it is inverse, you need to set the flag to get flash over JTAG while running
<daveshah> the default is for the flash to be available to the fabric
<daveshah> When it is supported, I would follow the same approach as Diamond - a SYSCONFIG line in the LPF - so the nMigen side could be shared
<awygle> oh
<awygle> hm. on further thought that doesn't make sense as the problem i'm having, which is that i can only program the device once and then i need to power cycle it to program it again.
<awygle> but i'm only programming it over JTAG using the nmigen openocd flow
<daveshah> Interesting
<daveshah> I think someone (ktemkin ?) reported that they needed a REFRESH command added to the svf file
<daveshah> for a similar reason
<awygle> hm, i can try that if i can figure out how to do it in the platform file
<awygle> which i probably can
<daveshah> It would need the SVF file to be modified, I can't remember any more details tbh
<daveshah> out of curiosity, how to subsequent attempts to program fail?
<awygle> svf processing file: "/tmp/nmigen_euzdu_6r_top.svf"
<awygle> Error: READ = 0x0001e00
<awygle> Error: tdo check error at line 14904
<awygle> Error: WANT = 0x0000100
<awygle> Error: MASK = 0x0002100
<awygle> literally the last line it looks like
<FL4SHK> Okay so I think I'm either (1) going to make a stereotypical CPU in nMigen next or (2) work on an SDRAM controller in nMigen
<FL4SHK> For my VGA driver, it's completely generic what type of VGA signal to generate
<_whitenotifier-f> [nmigen] whitequark commented on issue #417: Can't emulate fully combinatorial design - https://git.io/JJUUI
<daveshah> awygle: using Sprite's decode_status_reg tool from the hadbadge, that gives
<daveshah> Config: SRAM
<daveshah> ISC enable
<daveshah> Busy
<daveshah> BSE error:No error
<daveshah> Write enable
<daveshah> Read enable
<daveshah> so seems like it doesn't quite finish programming properly, but also doesn't actually report an error
<awygle> cooool
<awygle> i wonder if that means that it's actually programming, just not reporting quickly enough?
<daveshah> possibly
<daveshah> could try increasing some of the runtest delays or similar
<_whitenotifier-f> [nmigen] whitequark commented on issue #418: Simulation of Verilog output doesn't match nMigen simulation - https://git.io/JJUUZ
<awygle> it actually seems like that mask should allow passing?
<awygle> oh no nvm
<awygle> i did e wrong in my head
<ktemkin> I do the REFRESH every time; and I think that was because somewhere Lattice said you needed to either do that or strobe PROGRAMN to multiple consecutive configs over jtag
<awygle> ktemkin: how did you add the refresh to the svf?
<ktemkin> but I think I wrote it from their recommended process, it worked, and then I didn't test without the REFRESH
<ktemkin> awygle: I'm not using the SVF
<awygle> ah ok
<ktemkin> or something akin to it
<awygle> that is unfortunate for me, but good to know regardless
<ktemkin> what board are you using?
<awygle> a custom one
<ktemkin> what's doing your JTAG?
<awygle> Lattice programming pod
<awygle> it's an FT2232H i think
<ktemkin> you can probably just create a second SVF with the refresh in it, and then run that first
<awygle> yeah that's what i'm thinking too
<whitequark> maybe we should add it to ecppack?
<ktemkin> I think when I asked about that a while ago, daveshah had a reason it wasn't there
<_whitenotifier-f> [nmigen] jeanthom commented on issue #418: Simulation of Verilog output doesn't match nMigen simulation - https://git.io/JJUTv
<ktemkin> which might have just been "none of us have ever validated that it's useful/necessary"
<awygle> oh is ecppack what's making the svf? that makes sense
<daveshah> I think the reason it's not there is because I copied from the Lattice SVF generator with default settings and that didn't include it
<daveshah> But I have a suspicion that their JTAG does send a REFRESH command at the start
<daveshah> Weirdly, I've never needed it on any of the boards in my possession
<daveshah> Is this a particularly old or new silicon revision?
<awygle> it's a 12f? i have no idea what the silicon revision is
<daveshah> What is the marking?
<daveshah> In particular the third line
<awygle> A9421R24
<ktemkin> awygle: btw, do you have any SPI-flash related options in your platform, like SPI frequency or quad-SPI-mode, or anything like that?
<awygle> i have a spi flash resource
<_whitenotifier-f> [nmigen] whitequark commented on issue #418: Simulation of Verilog output doesn't match nMigen simulation - https://git.io/JJUTB
<awygle> which is directed at the bitstream flash
<awygle> but nothing else
<ktemkin> er, sorry, I mean specifically ones related to bitstream generated; which would be in `ecppack_opts`
<ktemkin> *bitstream generation
<awygle> i'm not overriding ecppack_opts
<ktemkin> mm, okay
<awygle> the separate refresh svf is not helping
<ktemkin> just wanted to make sure you weren't running into the odd behavior Greg Davill and I have seen sometimes
<awygle> also, a second board appears to be reconfiguring just fine. which is... troubling.
<daveshah> That sounds like a late 2019 part but still mask set A
<daveshah> Like all the ones I have tried
<daveshah> Maybe a very small percentage just need the refresh
<ktemkin> I don't entirely see why it's necessary
<awygle> an SVF for refresh would just shift 79 in to the IR, and Run-Test for a while, right?
<ktemkin> it goes into initialization mode, and if given test cycles, clears the SRAM
<ktemkin> but the instructions in the generated bitstream should splork over all of that SRAM anyway, so
<daveshah> Yep
<daveshah> One possibility is that the running bitstream causes enough SSO noise or whatever that JTAG is made unreliable at the start
<daveshah> but I don't think you would get an error code like that
<awygle> how many run-test cycles should i give it?
<awygle> it seems to still be reporting Busy
<awygle> (in the refresh case that is)
<daveshah> Oh, there is nothing on your board that could be affecting the DONE pin btw?
<awygle> i hate SVF, my kingdom for a loop...
<awygle> uh lemme check
<daveshah> Lattice have a loop extension :)
<awygle> the done pin is hooked up to an unpopulated LED
<daveshah> It is possible that it reports busy until done actually goes high
<daveshah> does it have a pullup?
<awygle> no
<daveshah> there should be an internal one, but I'd be curious if adding one changed things
<daveshah> if it's easy to do
<awygle> i can certainly drop a scope on there at least
<awygle> although i guess if the internal pullup is weak enough that might overpower it
<daveshah> A scope doesn't help that much either, as you can't tell between done being set low internally, because config didn't finish; and done being pulled low externally or just not going high
<awygle> mhm
<awygle> i can put a pullup in place
<awygle> by just shorting the led pad
<awygle> do i need to do that for INITN as well?
<ktemkin> before you go too much further
<ktemkin> what's your JTAG frequency?
<awygle> i have turned it down a fair bit
<awygle> it initially was 25 MHz and i brought it down to 5
<trabucayre> why not using DONE bit in status register( 0x3C) ?
<daveshah> That is not set
<daveshah> I can tell from the status register read awygle posted earlier
<_whitenotifier-f> [nmigen-boards] whitequark commented on pull request #71: Add ECPIX-5 support. - https://git.io/JJUTb
<trabucayre> Sorry I've missed this message
<ktemkin> I don't think DONE Is related
<ktemkin> that's the last set of instructions in the SVF, right? the final GET_STATUS that's failing?
<awygle> yes
<daveshah> Yeah
<ktemkin> that status shows that ISC_ENABLE is still on; which means the ISC_DISABLE didn't take
<daveshah> mm
<awygle> i'm starting to wonder if the SVF generated assumes a particular frequency
<daveshah> I have tested them at 1MHz
samlittlewood has quit [Ping timeout: 258 seconds]
<daveshah> and 25MHz
<ktemkin> awygle: just as a check, want to pull that frequency down way low and see if anything changes?
<awygle> sure
<awygle> how low, 100kHz?
<daveshah> I would try 1MHz next
<ktemkin> if you have the patience, sure
<daveshah> because I know that has worked with prjtrellis svf files
<awygle> arright 1 MHz running
<awygle> do i also need to be telling ecppack the frequency btw? i noticed it has a --freq option
<ktemkin> nope
<daveshah> That is for SPI clock frequency
<awygle> mk, just making sure
<ktemkin> that sets the frequency the FPGA uses to read configuration from the SPI flash
<awygle> that's what i figured
<awygle> programmed once (i had power cycled) and then failed the second time
<awygle> at 1 MHz
<ktemkin> is PROGRAMN accessible on your board?
<awygle> it's not brought out
<awygle> but it is connected to an fpga pin
<ktemkin> I'd be interested in seeing what happens if you short it to ground for a bit between programs
<_whitenotifier-f> [nmigen] whitequark commented on issue #412: LICENSE.txt and copyright - https://git.io/JJUkG
<daveshah> Does PROGRAMN have a pullup?
<daveshah> the pins float down by default
<awygle> yes
<awygle> The PROGRAMN pin is low level sensitive,
<awygle> and has an internal weak pull-up
<ktemkin> awygle: is your nMigen code currently requesting the PROGRAMN pin?
<awygle> no
<daveshah> the fpga pin it is connected to will float down but that will be overriden by a decent pullup
<awygle> nor the pin it's tied to
<ktemkin> er, I meant the pin it's tied to
<daveshah> the built in pull down should be weak
<ktemkin> what bank is the pin that's connected to PROGRAMN on?
<awygle> 8
<awygle> the config bank
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/JJUk0
<_whitenotifier-f> [nmigen/nmigen] whitequark 75a4665 - Update README.
craigo has left #nmigen ["Leaving"]
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±12] https://git.io/JJUkE
<_whitenotifier-f> [nmigen/nmigen] whitequark 90f26da - Deploying to gh-pages from @ 75a466537ee821dd5e082c69100142d6c7a6274b 🚀
<awygle> i could grab that pin and drive it high maybe? it does kinda seem like this might be what happens if PROGRAMN is held low?
<daveshah> How strong is the pullup on that pin?
<daveshah> yeah
<awygle> it's jsut the builtin pullup
<daveshah> oh, that's pretty dubious
<awygle> there's no external one
<daveshah> weak pullup fighting weak pulldown
<ktemkin> daveshah: don't Bank 8 / configuration bank pins wind up pulled up instead of down?
<ktemkin> when unconfigured?
<daveshah> I don't think so
<daveshah> the all 0s pattern appears to be pull down like any other bank
<daveshah> that's only at runtime though, I don't know how they behave during configuration
<awygle> mk i grabbed the pin and drove it high, let's see what we get
<ktemkin> oh, it's the other way around that I'm thinking of
<awygle> hmmm that does seem to be better
<ktemkin> Bank 8's flipped in terms of pull resistor when the platform's *unconfigured*
<daveshah> yep, at least some of them
<daveshah> based on table 4 in the sysconfig guide
<awygle> the pin it's on is CSN/SN
<awygle> so it should be pulled up
<awygle> but doing so in usermode seems to have fixed the problem
<daveshah> yeah, I suspect the pulled up to pulled down transition when entering user mode was the problem
<_whitenotifier-f> [nmigen-soc] whitequark commented on pull request #21: [WIP]wishbone.Connector class - https://git.io/JJUkS
<ktemkin> I'd suspect that after the first configuration, PROGRAMN is held at a voltage close to its threshold
<ktemkin> and after that, flopping the nearby JTAG lines around could easily cause it to register as little strobes of PROGRAMN
<awygle> thank you both for your help
<ktemkin> np
<ktemkin> that was a fun little mystery
<awygle> and here i was just thinking "i hate this kind of crap" lol
<ktemkin> it's a lot more fun when it's someone else's mystery
<awygle> definitely
<ktemkin> I remember trying to get configuration working for LUNA on the plane ride to 36c3; and that was a lot less fun
<FL4SHK> you must be talking about a pre-corona plane ride
<ktemkin> last December, yes
<whitequark> interestingly plane rides are some of the safer means of transport right now due to the excellent filtration they have anyway
<FL4SHK> right
<whitequark> you'd *think* they wouldn't be, but they are
<FL4SHK> that's neat
<FL4SHK> at the very least, better than a bus
<FL4SHK> or a train
<FL4SHK> (not that I ever use those)
<sorear> I wonder how the lower air pressure at cruise affects aerosol transport
<ktemkin> I have less to worry about, since I already have had the COVID
<whitequark> oh
<awygle> i have a negative COVID test after several weeks of what sure _felt_ like the COVID, which makes me wonder if i waited too long to get tested (due to lack of availability) and an antibody test might be positive
<FL4SHK> I haven't had the disease
<FL4SHK> nor any disease recently...
<ktemkin> it felt roughly like a porcupine was living in my lungs, and I have some fun lung damage leftovers
<FL4SHK> oh my
<awygle> oof :(
<awygle> sorry to hear that
<ktemkin> eh
* whitequark vows to not go outside again for at least one more year
* awygle remembers he needs groceries
<daveshah> And we've got swine flu to look forward to too, by the sounds of things
<ktemkin> I'm honestly just happy to have not died; given I'm immuno-wonk due to chronic disease anyway
<whitequark> yeah...
<awygle> i like "immuno-wonk" as a description
<hell__> ouch
<daveshah> Back on the programn issue I remember someone reporting a similar issue with the hadbadge once
<daveshah> That usually doesn't use jtag but they were; and it also connects programn to an io
<daveshah> I don't know if it has a pull-up though
<FL4SHK> I've got two CPUs to implement in nMigen
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/JJUte
<_whitenotifier-f> [nmigen/nmigen] whitequark 102565f - Update README.
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±12] https://git.io/JJUtJ
<_whitenotifier-f> [nmigen/nmigen] whitequark fb14f57 - Deploying to gh-pages from @ 102565f6de3ae0f6918b7ed902d29b471388ba9a 🚀
<_whitenotifier-f> [nmigen] whitequark commented on issue #418: Simulation of Verilog output doesn't match nMigen simulation - https://git.io/JJUqt
<_whitenotifier-f> [nmigen] whitequark commented on issue #417: Can't emulate fully combinatorial design - https://git.io/JJUqs
<_whitenotifier-f> [nmigen] whitequark closed issue #417: Can't emulate fully combinatorial design - https://git.io/JJJyZ
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/JJUqQ
<_whitenotifier-f> [nmigen/nmigen] whitequark d5d3bc4 - setup: link to the right documentation version from pip metadata.
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±12] https://git.io/JJUq7
<_whitenotifier-f> [nmigen/nmigen] whitequark 4347d63 - Deploying to gh-pages from @ d5d3bc4b1aba8dc0204268561c342b41c42c6617 🚀
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 2 commits to master [+0/-0/±2] https://git.io/JJUmT
<_whitenotifier-f> [nmigen/nmigen] whitequark ba1b4c2 - setup: gracefully recover from missing setuptools_scm.
<_whitenotifier-f> [nmigen/nmigen] whitequark 14845af - setup: add wheel as setup dependency.
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±12] https://git.io/JJUmt
<_whitenotifier-f> [nmigen/nmigen] whitequark 09fbc8a - Deploying to gh-pages from @ 14845af235eb815e8529796833d6a394c54205ab 🚀
<whitequark> setup.py is such a rube goldberg machine...
<whitequark> i *think* i managed to align all the stars just right
<_whitenotifier-f> [nmigen] alanvgreen commented on issue #412: LICENSE.txt and copyright - https://git.io/JJUm7
Asu has quit [Remote host closed the connection]
cr1901_modern has quit [Quit: Leaving.]
<_whitenotifier-f> [nmigen] whitequark commented on issue #412: LICENSE.txt and copyright - https://git.io/JJUYJ
cr1901_modern has joined #nmigen
samlittlewood has joined #nmigen
<_whitenotifier-f> [nmigen] alanvgreen commented on issue #412: LICENSE.txt and copyright - https://git.io/JJUYA
<_whitenotifier-f> [nmigen] whitequark commented on issue #412: LICENSE.txt and copyright - https://github.com/nmigen/nmigen/issues/412#issuecomment-652666670
<_whitenotifier-f> [nmigen] mithro commented on issue #412: LICENSE.txt and copyright - https://git.io/JJUOg
<_whitenotifier-f> [nmigen] whitequark commented on issue #412: LICENSE.txt and copyright - https://git.io/JJUOr
Falteckz has joined #nmigen
<Falteckz> Aw I thought I still had IRCCloud trial, and here I am, DC'd.
<Falteckz> whitequark: The install page is looking great.
<whitequark> sweet
<Falteckz> 286Tech: Lots of good stuff on that blog. Wish I knew who they were
<cr1901_modern> Has an env var been implemented yet to swap between the wasm and native yosys yet?
<whitequark> YOSYS=yowasp-yosys
<whitequark> been there for a long tmie
<cr1901_modern> Is nmigen-yosys "boneless-yowasp-yosys"?
<whitequark> yes
<Falteckz> 286Tech: Incredible
<d1b2> <286Tech> nMigen makes it so much easier to get stuff done, so it's all thanks to @whitequark and all other contributors 🙂
<whitequark> \o/
<Falteckz> !! I really can't wait to start implementing my first CPU with nMigen. I got started with Verilog but after burning a few hours on describing the logic it became an up hill struggle. Just looking at nMigen examples I can already imagine what I need to write. So I'm quite excited to get that opportunity.
<d1b2> <286Tech> The problem is that I'm way too busy with getting my PhD (which involves ASICs and VHDL), and I simply don't have enough time to spend on languages/tools that make it more difficult than necessary to build stuff with.
<d1b2> <286Tech> Of course I could write this all in VHDL/Verilog, but I wouldn't because it would take too much time.
<d1b2> <286Tech> I seriously spent more time on dumping the raw image over to the FPGA board, because minicom interprets files as text and not as binary.
<d1b2> <286Tech> 😂
<whitequark> i, too, do not have enough time for verilog
<d1b2> <286Tech> A simple cat marisa.data > /dev/ttyUSB1 solved the problem.
<d1b2> <286Tech> I had to use VHDL for my ASIC stuff, because I need to instantiate specific cells. Yes you can do it with nMigen as well, but that was before I started using it.
<smkz> nmigen is so good
<d1b2> <286Tech> Wish I had started using it before.
<smkz> so much less painful and frustrating that verilog
<d1b2> <286Tech> yup
<d1b2> <286Tech> Every time I'm still amazed at all the cool tools we have at our disposal. Many cool languages (nMigen, SpinalHDL, Clash, etc.) and non-bloated synthesis and PnR tools.
<d1b2> <286Tech> That's why I appreciate all the hard work that all the people in this community put into it. ❤️
<Falteckz> The part I'm most thankful of is a stdlib to be honest. Thank goodness I don't have to think about CDC. Not to mention something like wishbone or just adding a pipeline becomes easily composable. On top of that, something like nMigen can add build time assertions such as clock domain crossing or, if needed, assertions about signed-ness
<whitequark> well, you do kinda have to think about CDC
<whitequark> but you have something to build on
<whitequark> and it's much harder to accidentally make a mistake
<d1b2> <Darius> standard libraries define idioms which also help make code understandable/shareable between projects IMO
<whitequark> yep
<awygle> and Someday (TM) we'll track CDCs and it'll be even harder to make a mistake
<whitequark> yep
<Falteckz> They are somewhat tracked alright, right? Multiple Clock Domains cannot share Syncronous logic.
<awygle> you can't write to something in multiple domains, but you can read from it from multiple domains, even without putting a synchronizer in between