00:12
cedric has joined #m-labs
00:12
cedric has quit [Changing host]
00:12
cedric has joined #m-labs
00:12
mauz555 has quit [Remote host closed the connection]
00:16
cedric has quit [Client Quit]
00:17
cedric has joined #m-labs
00:17
cedric has quit [Changing host]
00:17
cedric has joined #m-labs
00:19
cedric has quit [Client Quit]
00:20
cedric has joined #m-labs
00:20
cedric has quit [Changing host]
00:20
cedric has joined #m-labs
00:21
cedric has quit [Client Quit]
00:22
cedric has joined #m-labs
00:22
cedric has joined #m-labs
00:22
cedric has quit [Changing host]
02:31
rohitksingh has joined #m-labs
03:35
rohitksingh has quit [Ping timeout: 245 seconds]
03:47
rohitksingh has joined #m-labs
03:53
harryho has joined #m-labs
03:54
<
harryho >
whitequark: Thanks!
04:13
mauz555 has joined #m-labs
04:18
mauz555 has quit [Ping timeout: 245 seconds]
04:21
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
04:27
_whitelogger has joined #m-labs
04:45
_whitelogger has joined #m-labs
05:34
rohitksingh has quit [Ping timeout: 245 seconds]
05:53
rohitksingh has joined #m-labs
06:27
proteusguy has joined #m-labs
06:36
rohitksingh has quit [Ping timeout: 245 seconds]
07:00
mauz555 has joined #m-labs
07:05
mauz555 has quit [Ping timeout: 276 seconds]
07:06
futarisIRCcloud has joined #m-labs
07:42
cr1901_modern has quit [Read error: Connection reset by peer]
08:10
cr1901_modern has joined #m-labs
09:20
<
mtrbot-ml >
[mattermost] <sb10q> @hartytp how is thermostat testing coming along?
09:36
harryho has quit [Remote host closed the connection]
09:37
mauz555 has joined #m-labs
10:29
mauz555 has quit [Read error: Connection reset by peer]
10:30
mauz555 has joined #m-labs
10:32
mauz555 has quit [Remote host closed the connection]
10:32
mauz555 has joined #m-labs
10:35
proteusguy has quit [Ping timeout: 276 seconds]
11:10
proteusguy has joined #m-labs
11:10
mauz555 has quit [Remote host closed the connection]
11:10
mauz555 has joined #m-labs
11:13
mauz555 has quit [Read error: Connection reset by peer]
11:13
mauz555 has joined #m-labs
11:17
mauz555 has quit [Remote host closed the connection]
11:25
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
11:40
<
mtrbot-ml >
[mattermost] <charlesbaynham> Hi all, what's the recommended way to quit an Experiment in progress? At the moment I'm raising a SystemExit, but is there a better way?
11:41
<
mtrbot-ml >
[mattermost] <sb10q> return
11:54
<
mtrbot-ml >
[mattermost] <charlesbaynham> Makes sense, thanks
12:29
mauz555 has joined #m-labs
12:36
mauz555 has quit [Ping timeout: 276 seconds]
12:42
mauz555 has joined #m-labs
12:44
<
kernlbob_ >
Are nMigen clock domain names global?
12:46
<
whitequark >
when a new clock domain is added, it's propagated to the rest of the design, yes
12:47
<
kernlbob_ >
whitequark: That makes it easy, thanks.
13:23
<
kernlbob_ >
I keep thinking I'm almost to the point where I can stop asking nMigen questions and go write some code.
13:24
<
kernlbob_ >
I have a PLL. It creates a clock domain. Do I have to use `m.d.name_of_domain` throughout the design because of that?
13:24
<
kernlbob_ >
Is there a way to use library modules?
13:25
<
whitequark >
yes, use something like `m.submodules += DomainRenamer("pll_domain")(UART(...))`
13:26
<
whitequark >
or if most of your design is clocked by the PLL, you can make that your sync domain
13:26
<
kernlbob_ >
Do I make it the sync domain simply by naming it 'sync'?
13:27
<
whitequark >
there's nothing special about sync
13:27
<
whitequark >
other than it being the default in a number of places
13:28
<
kernlbob_ >
I was reading through the module creation code in nmigen/hdl/dsl.py, and it looks like "sync" is not created until it is used?
13:29
<
whitequark >
I'm not sure what you're asking
13:30
<
kernlbob_ >
If the design does not override "sync", when is sync domain created?
13:30
<
whitequark >
build.plat.create_missing_domain
13:32
<
kernlbob_ >
Yeah, that's what I suspected. Thanks.
13:51
<
_whitenotifier >
[m-labs/nmigen] whitequark 8f659b6 - lib.cdc: adjust MultiReg for new CDC primitive conventions.
13:51
<
_whitenotifier >
[m-labs/nmigen] whitequark 9893e3c - lib.cdc: adjust ResetSynchronizer for new CDC primitive conventions.
13:51
<
_whitenotifier >
[m-labs/nmigen] whitequark 73244f2 - lib.io: style. NFC.
13:55
<
_whitenotifier >
[m-labs/nmigen] whitequark 2d2ab6e - lib.cdc: make domain properties private.
14:10
<
mtrbot-ml >
[mattermost] <astro> aw, again, could somebody at the lab please reset the ionpak-thermostat? the debugger isn't working again. @sb10q @harryho @whitequark
14:10
<
mtrbot-ml >
[mattermost] <astro> luckily I was able to test my latest progress before it froze
14:12
<
whitequark >
sb: you should connect the device we have for resetting stuff to thermostat
14:21
<
_whitenotifier >
[nmigen] whitequark commented on issue #147: Reduce-op (reduce-or, reduce-and, reduce-xor) -
https://git.io/Jempf
14:21
rohitksingh has joined #m-labs
14:26
<
mtrbot-ml >
[mattermost] <astro> that's a great idea
14:26
zng has joined #m-labs
14:34
<
_whitenotifier >
[m-labs/nmigen] whitequark 2c34b1f - README: update Yosys version requirement.
14:57
rohitksingh has quit [Ping timeout: 265 seconds]
15:08
rohitksingh has joined #m-labs
15:12
<
_whitenotifier >
[nmigen] jordens commented on issue #147: Expose primitive AND, OR, NAND, NOR, XOR, XNOR operations under descriptive names -
https://git.io/Jemh3
15:14
<
_whitenotifier >
[nmigen] emilazy commented on issue #147: Expose primitive AND, OR, NAND, NOR, XOR, XNOR operations under descriptive names -
https://git.io/Jemhs
15:15
cr1901_modern1 has joined #m-labs
15:19
cr1901_modern has quit [Ping timeout: 240 seconds]
15:22
<
_whitenotifier >
[nmigen] whitequark commented on issue #147: Expose primitive AND, OR, NAND, NOR, XOR, XNOR operations under descriptive names -
https://git.io/JemhR
15:29
rohitksingh has quit [Ping timeout: 240 seconds]
15:32
cr1901_modern1 has quit [Quit: Leaving.]
15:32
cr1901_modern has joined #m-labs
15:43
<
_whitenotifier >
[nmigen] jordens commented on issue #147: Expose primitive AND, OR, NAND, NOR, XOR, XNOR operations under descriptive names -
https://git.io/Jemh7
15:45
<
_whitenotifier >
[nmigen] jordens commented on issue #147: Expose primitive AND, OR, NAND, NOR, XOR, XNOR operations under descriptive names -
https://git.io/JemhF
15:47
proteusguy has quit [Ping timeout: 246 seconds]
15:51
rohitksingh has joined #m-labs
15:51
<
_whitenotifier >
[nmigen] whitequark commented on issue #147: Expose primitive AND, OR, NAND, NOR, XOR, XNOR operations under descriptive names -
https://git.io/JemjL
15:55
<
_whitenotifier >
[nmigen] mithro commented on issue #147: Expose primitive AND, OR, NAND, NOR, XOR, XNOR operations under descriptive names -
https://git.io/JemjG
15:55
mauz555 has quit [Remote host closed the connection]
15:56
mauz555 has joined #m-labs
15:57
rohitksingh has quit [Ping timeout: 246 seconds]
15:58
<
_whitenotifier >
[nmigen] emilazy commented on issue #147: Expose primitive AND, OR, NAND, NOR, XOR, XNOR operations under descriptive names -
https://git.io/Jemjc
15:58
<
_whitenotifier >
[nmigen] whitequark commented on issue #147: Expose primitive AND, OR, NAND, NOR, XOR, XNOR operations under descriptive names -
https://git.io/JemjC
16:01
mauz555 has quit [Ping timeout: 276 seconds]
16:01
<
_whitenotifier >
[nmigen] jordens commented on issue #147: Expose primitive AND, OR, NAND, NOR, XOR, XNOR operations under descriptive names -
https://git.io/Jemju
16:04
<
_whitenotifier >
[nmigen] whitequark commented on issue #147: Expose primitive AND, OR, NAND, NOR, XOR, XNOR operations under descriptive names -
https://git.io/Jemjo
16:18
cedric has joined #m-labs
16:18
cedric has quit [Changing host]
16:18
cedric has joined #m-labs
16:18
rohitksingh has joined #m-labs
16:20
<
mtrbot-ml >
[mattermost] <sb10q> except it's not that simple (as usual): the jtag cable might need a power cycle as well as or instead of thermostat, the thermostat is on PoE right now, and if I use one 12V adapters that I have they contain big capacitors that retain power longer than the delay in the power-cycler
16:20
<
mtrbot-ml >
[mattermost] <sb10q> @hartytp ping re. tests
16:21
<
mtrbot-ml >
[mattermost] <sb10q> @astro what do we need an allocator for?
16:21
<
mtrbot-ml >
[mattermost] <hartytp> working on it
16:22
<
whitequark >
sb: btw where is my blackmagic probe
16:22
<
whitequark >
are you using it there?
16:22
<
mtrbot-ml >
[mattermost] <sb10q> no, and I have never seen it
16:22
<
mtrbot-ml >
[mattermost] <sb10q> afaik you never brought it
16:22
<
mtrbot-ml >
[mattermost] <hartytp> (have been slow since getting the final wrinkles out of booster pushed it off the top of my priority list)
16:23
<
mtrbot-ml >
[mattermost] <sb10q> well those tests are blocking hardware v2 production and also the current device is wasting time due to jtag bugs
16:23
<
whitequark >
sb: i gave it to you before
16:23
<
whitequark >
i don't have it, haven't had for a year...
16:23
<
mtrbot-ml >
[mattermost] <hartytp> I know, working on it
16:23
<
whitequark >
if you lost it that's very annoying because it's expensive
16:24
<
mtrbot-ml >
[mattermost] <sb10q> I have never had it
16:24
<
whitequark >
I've left it at the lab the previous spring so you could debug your stuff AFAIK
16:26
sb0 has joined #m-labs
16:30
proteusguy has joined #m-labs
17:00
rohitksingh has quit [Ping timeout: 240 seconds]
17:28
<
mtrbot-ml >
[mattermost] <hartytp> @astro re PID, should be gain before integrate, no?
17:29
<
whitequark >
sb0: actually, once you get your glasgow, you could just use that as a debugger
17:29
<
whitequark >
debugger/tracer
17:30
<
mtrbot-ml >
[mattermost] <hartytp> (don't want an output kick if you change Ki)
17:32
rohitksingh has joined #m-labs
18:13
<
mtrbot-ml >
[mattermost] <cjbe> @rjo thanks for that gist
18:14
<
mtrbot-ml >
[mattermost] <cjbe> @rjo I am thinking about how to implement a command parser on Stabilizer, for things like setting AFE gains, querying firmware versions, etc
18:16
<
mtrbot-ml >
[mattermost] <cjbe> The restrictions on serde-json-core seem to forbid useful rust-type enums, so it seems like the least worse option is to have a 'command' type struct which has a c-like type enum, and carries a json payload
18:17
<
mtrbot-ml >
[mattermost] <cjbe> Do you have any better ideas than this?
18:50
rohitksingh has quit [Ping timeout: 245 seconds]
18:56
mumptai has joined #m-labs
19:00
rohitksingh has joined #m-labs
19:04
<
ZirconiumX >
How does one express a range of values with a Case statement?
19:05
<
ZirconiumX >
Since range(A, B) produces a range object
19:06
<
whitequark >
with Case(*range(A, B)):
19:08
<
ZirconiumX >
Thank you
19:08
<
ZirconiumX >
...I broke pysim
19:09
<
ZirconiumX >
...Maybe I need a different approach to not produce
*quite* so many variables
19:10
<
whitequark >
broke?
19:10
<
whitequark >
seems like a bug
19:11
<
ZirconiumX >
So, my clever idea was to build a LUT by using `range`
19:11
<
ZirconiumX >
Unfortunately it appears pysim doesn't handle you trying to match 4,096 values in said LUT
19:11
* ZirconiumX
is not smart
19:12
<
ZirconiumX >
I'll try m.If instead
19:12
<
whitequark >
you probably want an Array.
19:12
<
whitequark >
not If or Case.
19:12
<
whitequark >
If and Case are the same thing anyway
19:13
<
ZirconiumX >
Well, my assumption is that pysim will handle "if x >= LOWER_BOUND and x < UPPER_BOUND" more gracefully than "if x == LOWER_BOUND || x == LOWER_BOUND + 1 || ..."
19:14
<
whitequark >
that's less generic than a LUT
19:15
<
ZirconiumX >
It's essentially a 16-bit array for the fixed-point reciprocal of a number
19:16
<
whitequark >
that sounds like something you'd use an Array or even a Memory for.
19:16
<
whitequark >
probably Memory.
19:17
<
ZirconiumX >
Unfortunately Quartus' BRAM (BROM?) inference code kinda sucks
19:17
<
_whitenotifier >
[m-labs/nmigen] whitequark 1c091e6 - lib.fifo: remove SyncFIFO.replace.
19:17
<
whitequark >
does it?
19:17
<
ZirconiumX >
They really want you to instantiate an altsyncram primitive, despite the best attempts of their inference engine
19:18
<
whitequark >
that's just every vendor
19:18
<
whitequark >
does it not actually work with nmigen's output?
19:19
<
ZirconiumX >
I haven't tried using an nmigen Memory yet, but my general experience with Verilog is that Quartus doesn't understand what you're trying to do
19:19
<
whitequark >
well, I looked at their docs just now and nMigen should emit the exact pattern they suggest
19:20
rohitksingh has quit [Ping timeout: 245 seconds]
19:20
<
whitequark >
at least for non-transparent memories
19:20
<
whitequark >
but you don't need a transparent memory, you're making a ROM
19:30
<
ZirconiumX >
So, uh, the ROM might not have been the smartest of ideas, because now pysim is running at a crawl.
19:30
<
ZirconiumX >
But it's funny to watch it spew out the ROM 3 times
19:32
<
whitequark >
yeah, pysim will be slow at this no matter what you do.
19:32
<
ZirconiumX >
And Yosys takes a while to parse the resulting file
19:32
<
ZirconiumX >
Well, generate RTLIL rather
19:33
<
whitequark >
link to verilog?
19:33
<
ZirconiumX >
lofty@ramen:~/gs$ wc -l line.v
19:33
<
ZirconiumX >
198398 line.v
19:34
<
ZirconiumX >
The worst feeling is looking at the Verilog and noticing the ROM is very, very wrong
19:37
<
ZirconiumX >
Right, with a fixed ROM, it's probably better if I send you the python instead of the Verilog
19:38
<
whitequark >
well, if the verilog is 200k line long...
19:38
<
whitequark >
why is it 200k anyway
19:38
<
whitequark >
and not 64k
19:39
<
ZirconiumX >
I instantiate the module 3 times for the 3 colour channels
19:39
<
ZirconiumX >
So it produces 64k * 3 = 192k of ROM
19:40
<
whitequark >
btw if you let yosys read RTLIL directly it won't be that slow.
19:41
<
_whitenotifier >
[m-labs/nmigen] whitequark b92e967 - lib.fifo: make fwft a keyword-only argument.
19:43
<
ZirconiumX >
Indeed, though synth_ecp5 apparently pruning my ROM is not a great sign
19:43
<
ZirconiumX >
Oh, I should specify it as a port
19:43
<
ZirconiumX >
That might be why :P
19:45
<
ZirconiumX >
Given the increase in LUT4s, I'm
*assuming* it's put the ROM in LUTRAM
19:45
<
whitequark >
it should be a synchronous read port
19:45
<
whitequark >
not sure why it'd put a 64K of ROM in LUTRAM
19:45
<
ZirconiumX >
So, transparent=True?
19:45
<
whitequark >
no, has nothing to do with transparency
19:45
<
whitequark >
domain="sync", which is the default
19:47
<
ZirconiumX >
Yeah it seems Yosys wants to put this in LUTRAM instead of BRAM
19:47
<
ZirconiumX >
I tried synth_ice40, synth_ecp5 and synth_xilinx
19:47
<
ZirconiumX >
All of them went into LUTRAM
19:48
<
whitequark >
interesting
19:48
<
whitequark >
kinda weird
19:48
<
ZirconiumX >
Anyway, let's see what Quartus makes of this.
19:48
<
whitequark >
try transparent=False just to see if it does anything?
19:52
<
ZirconiumX >
Doesn't seem like it
19:53
<
whitequark >
thought so
19:53
<
ZirconiumX >
Also I like how I've synthesised for 3 different FPGA architectures and Quartus hasn't even finished with this
19:53
<
ZirconiumX >
s/architectures/architectures with Yosys/
20:04
<
_whitenotifier >
[m-labs/nmigen] whitequark e3122ed - lib.fifo: adjust properties to have consistent naming.
20:04
<
ZirconiumX >
It appears Quartus really does not like people inlining 64k ROMs
20:04
<
_whitenotifier >
[m-labs/nmigen] whitequark da61076 - lib.fifo: adjust for new CDC primitive conventions.
20:04
<
_whitenotifier >
[m-labs/nmigen] whitequark 42805ad - hdl.mem: use keyword-only arguments as appropriate.
20:08
<
_whitenotifier >
[nmigen] whitequark commented on issue #97: Bikeshed: conventions for CDC primitives -
https://git.io/JeYUy
20:08
<
ZirconiumX >
Okay this ROM really is not practical to develop with
20:09
<
ZirconiumX >
I'm not going to wait 10 minutes at 2% compiled while it elaborates the ROM
20:09
<
ZirconiumX >
Combinational logic it is
20:17
<
_whitenotifier >
[smoltcp] cjbe opened pull request #306: Only use first 3 DHCP advertised DNS servers (cf #305) -
https://git.io/JeYUd
20:17
rohitksingh has joined #m-labs
20:24
rohitksingh has quit [Ping timeout: 240 seconds]
20:35
rohitksingh has joined #m-labs
21:03
rohitksingh has quit [Ping timeout: 245 seconds]
21:46
rohitksingh has joined #m-labs
21:58
<
_whitenotifier >
[m-labs/nmigen] whitequark c8f8c09 - vendor.xilinx_7series: Vivado requires bash on *nix as well.
21:58
<
_whitenotifier >
[m-labs/nmigen] whitequark 9ea3ff7 - build.plat: bypass tool detection if NMIGEN_*_env is set.
22:02
rohitksingh has quit [Remote host closed the connection]
22:04
rohitksingh has joined #m-labs
22:33
mauz555 has joined #m-labs
22:44
mumptai has quit [Remote host closed the connection]
22:46
futarisIRCcloud has joined #m-labs
22:47
mauz555 has quit [Remote host closed the connection]