00:43
ronyrus has quit [Quit: %me%]
00:44
ronyrus has joined #nmigen
01:18
BracketMaster has joined #nmigen
01:19
<
BracketMaster >
whitequark, running cxxsim on commit 9b46ce962c22dce6804a7a61531f04eeff24d6ae
01:19
<
BracketMaster >
on a design on medium complexity, say 1000LUT4s, 10BRAM4Ks
01:20
<
BracketMaster >
pysim: 77s, cxxsim: 78s
01:20
<
BracketMaster >
^^of medium complexity, not on
01:20
<
BracketMaster >
Anyways, just some numbers for ya
01:22
feldim2425 has quit [Ping timeout: 272 seconds]
01:32
BracketMaster has quit [Quit: Leaving]
01:32
feldim2425 has joined #nmigen
01:40
<
tpw_rules >
can nmigen memories set read after write (or write after read) behavior or am i just limited to whatever is inferred?
02:26
<
whitequark >
tpw_rules: try transparent=True/False
02:27
<
whitequark >
BracketMaster: yeah, I'm virtually certain that can be improved (for cxxsim that is)
02:48
jaseg has quit [Ping timeout: 240 seconds]
02:52
jaseg has joined #nmigen
03:18
<
tpw_rules >
whitequark: setting transparent=True gives a traceback "TypeError: Value (const 1'd1) cannot be used in assignments"
03:18
<
tpw_rules >
i guess elsewhere. what does transparent=True imply for the rest of the interface?
03:19
PyroPeter_ has joined #nmigen
03:22
PyroPeter has quit [Ping timeout: 240 seconds]
03:22
PyroPeter_ is now known as PyroPeter
03:23
<
whitequark >
tpw_rules: it currently hardcodes .en as 1 because of a Yosys limitation :/
03:24
<
tpw_rules >
for which side?
03:24
<
whitequark >
would be pretty useless if it was the write side heh
03:25
<
tpw_rules >
yeah i figured. ok so i set en to 1 but it still gives that error. it says it's on the assignment to the data of the write port
03:28
Degi has quit [Ping timeout: 246 seconds]
03:29
Degi has joined #nmigen
03:43
<
tpw_rules >
oh that happens if i assign anything to the read port en. strange
03:52
<
whitequark >
it's inconvenient, and unfortunately intended at the moment
03:52
<
whitequark >
due to a yosys limitation
03:53
<
whitequark >
sorry :/
03:55
<
tpw_rules >
additionally it seems ISE does not then infer a read first BRAM
04:54
ronyrus has quit [Quit: %me%]
04:54
ronyrus has joined #nmigen
04:55
anuejn has quit [Remote host closed the connection]
04:56
anuejn has joined #nmigen
05:19
jeanthom has joined #nmigen
05:42
hitomi2507 has joined #nmigen
06:04
electronic_eel_ is now known as electronic_eel
06:16
jeanthom has quit [Ping timeout: 260 seconds]
06:47
jeanthom has joined #nmigen
06:47
jeanthom has quit [Remote host closed the connection]
07:47
jeanthom has joined #nmigen
07:49
cr1901_modern1 has joined #nmigen
07:49
cr1901_modern has quit [Ping timeout: 260 seconds]
08:11
jeanthom has quit [Ping timeout: 258 seconds]
08:24
jeanthom has joined #nmigen
08:39
_whitelogger has joined #nmigen
09:03
FFY00 has quit [Remote host closed the connection]
09:04
FFY00 has joined #nmigen
09:19
Asu has joined #nmigen
09:54
jeanthom has quit [Ping timeout: 256 seconds]
10:17
proteusguy has quit [Ping timeout: 258 seconds]
10:30
proteusguy has joined #nmigen
11:32
peeps has joined #nmigen
11:36
peeps[zen] has quit [Ping timeout: 246 seconds]
12:03
falteckz_ has quit [Read error: Connection reset by peer]
12:19
jeanthom has joined #nmigen
12:33
Asu has quit [Remote host closed the connection]
12:50
jeanthom has quit [Ping timeout: 264 seconds]
13:14
Asu has joined #nmigen
13:27
jeanthom has joined #nmigen
13:31
cr1901_modern1 has quit [Quit: Leaving.]
13:32
cr1901_modern has joined #nmigen
13:37
jeanthom has quit [Ping timeout: 246 seconds]
15:17
<
whitequark >
tpw_rules: with transparent=True?
15:19
<
DaKnig >
why is `nmigen/lib/__init__.py` empty?
15:21
<
whitequark >
what should be there instead?
15:21
<
DaKnig >
idk, having an empty file that does nothing seems redundant
15:44
emeb has joined #nmigen
15:57
<
ronyrus >
how is the order of visiting "elaborate()" function determined in nMigen?
15:57
<
ronyrus >
is it, just the order inside submodules recursively?
16:04
<
whitequark >
ronyrus: it's unspecified; if you have to rely on it, something likely went wrong
16:05
<
whitequark >
one of the the reasons
__init__ and elaborate() have been separated is to let you put all the order-dependent code that mutates elaboratables into
__init__ or accessory methods, where you can control the order
16:05
<
whitequark >
what prompted the question?
16:07
<
awygle >
good morning, everything is on fire
16:07
<
whitequark >
hi awygle
16:07
<
whitequark >
i didn't realize you were in the bay area
16:08
<
whitequark >
holy shit
16:08
<
whitequark >
holy
*shit*
16:09
<
whitequark >
ok that's still a lot of fire
16:09
<
ronyrus >
@whitequark I did something hacky I admit :) I wanted to use some signals from a submodule of a module I instantiate. But because it's elaborate() called after my elaborate() I couldn't expose these signal. Hence the question.
16:09
<
whitequark >
ronyrus: what if you create the submodule in
__init__ and assign it to self.<name> ?
16:10
<
whitequark >
then in elaborate() you could do m.submodules += self.<name>
16:10
<
ronyrus >
sounds interesting, I'll try
16:10
<
awygle >
Yeah not the best visualization, but it's the spread more than anything.
16:10
<
whitequark >
ronyrus: code that depends on elaboration order tends to be really fragile with few workarounds when it breaks
16:11
<
awygle >
I didn't realize you could make a Module in __init__, although it makes sense
16:12
<
whitequark >
awygle: you could, though that's not what I'm recommending
16:13
<
awygle >
ah, I misread
16:13
<
whitequark >
the idea is that you can create (some) sub-elaboratables in __init__, so that you can mutate them easily
16:13
<
whitequark >
as a part of some setup code
16:13
<
whitequark >
this comes up in nmigen-soc especially often
16:14
<
awygle >
Yeah I do that a lot, but I always feel like I'm doing something wrong when I do
16:17
<
whitequark >
nope, this is very much explicitly intended
16:18
<
whitequark >
and a feature in nmigen's design
16:18
<
whitequark >
i should mention that in the docs
16:18
<
awygle >
I am surely not telling you anything you don't know but we really need to (figure out and then) document some conventions including but not limited to what goes in
__init__ vs elaborate and whether an interface signal should be passed in to the constructor or just a property
16:20
<
whitequark >
yep absolutely
16:20
<
ronyrus >
yeah, that worked. and it's really good to know that ...
16:36
<
jfng >
the proposed changes impacts existing code in subtle ways, so it would benefit a lot from your insight
16:39
lkcl__ has joined #nmigen
16:39
<
whitequark >
jfng: will do soon
16:39
<
whitequark >
i gave it a quick look already and i think it's fine, i'll take a closer look in a bit but i don't expect issues
16:41
lkcl_ has quit [Ping timeout: 256 seconds]
16:44
lkcl_ has joined #nmigen
16:47
lkcl__ has quit [Ping timeout: 260 seconds]
16:54
lkcl__ has joined #nmigen
16:57
lkcl_ has quit [Ping timeout: 256 seconds]
17:01
lkcl_ has joined #nmigen
17:05
lkcl__ has quit [Ping timeout: 264 seconds]
17:11
lkcl__ has joined #nmigen
17:14
lkcl_ has quit [Ping timeout: 240 seconds]
17:16
lkcl_ has joined #nmigen
17:19
lkcl__ has quit [Ping timeout: 246 seconds]
17:29
lkcl__ has joined #nmigen
17:32
lkcl_ has quit [Ping timeout: 265 seconds]
17:49
lkcl__ has quit [Ping timeout: 240 seconds]
17:53
lkcl__ has joined #nmigen
18:08
lkcl_ has joined #nmigen
18:11
lkcl__ has quit [Ping timeout: 240 seconds]
18:31
lkcl__ has joined #nmigen
18:31
lkcl_ has quit [Ping timeout: 258 seconds]
18:39
lkcl_ has joined #nmigen
18:43
lkcl__ has quit [Ping timeout: 260 seconds]
18:49
lkcl__ has joined #nmigen
18:53
lkcl_ has quit [Ping timeout: 258 seconds]
18:57
lkcl_ has joined #nmigen
19:00
lkcl__ has quit [Ping timeout: 264 seconds]
19:07
lkcl__ has joined #nmigen
19:10
lkcl_ has quit [Ping timeout: 264 seconds]
19:36
lkcl_ has joined #nmigen
19:40
lkcl__ has quit [Ping timeout: 240 seconds]
19:42
lkcl__ has joined #nmigen
19:46
lkcl_ has quit [Ping timeout: 260 seconds]
20:04
<
awygle >
lkcl__: your bouncer is flapping, you've been joining and unjoining with some regularity for the last three or so hours
20:06
chipmuenk has joined #nmigen
20:06
lkcl__ has quit [Ping timeout: 260 seconds]
20:11
lkcl__ has joined #nmigen
20:19
lkcl_ has joined #nmigen
20:23
lkcl__ has quit [Ping timeout: 258 seconds]
20:25
lkcl__ has joined #nmigen
20:28
lkcl_ has quit [Ping timeout: 258 seconds]
20:30
cr1901_modern1 has joined #nmigen
20:30
lkcl_ has joined #nmigen
20:32
lkcl__ has quit [Ping timeout: 260 seconds]
20:32
cr1901_modern has quit [Ping timeout: 265 seconds]
20:33
lkcl__ has joined #nmigen
20:35
chipmuenk has quit [Quit: chipmuenk]
20:37
lkcl_ has quit [Ping timeout: 260 seconds]
20:38
lkcl_ has joined #nmigen
20:42
lkcl__ has quit [Ping timeout: 256 seconds]
20:44
lkcl__ has joined #nmigen
20:48
lkcl_ has quit [Ping timeout: 264 seconds]
20:51
lkcl_ has joined #nmigen
20:52
lkcl__ has quit [Ping timeout: 265 seconds]
20:57
lkcl__ has joined #nmigen
21:00
lkcl_ has quit [Ping timeout: 258 seconds]
21:03
lkcl_ has joined #nmigen
21:06
lkcl__ has quit [Ping timeout: 258 seconds]
21:32
Asu has quit [Remote host closed the connection]
21:40
lkcl__ has joined #nmigen
21:43
lkcl_ has quit [Ping timeout: 260 seconds]
22:59
mwk has quit [Ping timeout: 256 seconds]
23:05
cr1901_modern1 has quit [Quit: Leaving.]
23:06
cr1901_modern has joined #nmigen
23:21
lkcl__ has quit [Ping timeout: 240 seconds]
23:22
lkcl__ has joined #nmigen
23:56
d0nker5_ has quit [Remote host closed the connection]
23:57
emeb has quit [Quit: Leaving.]