<mithro>
lol - I just discovered "char *strfry(char *string);" :-p
<hackerfoo>
I can see that being useful for something, but not memfrob(3)
<futarisIRCcloud>
The answer is 42.
<sorear>
unclear why glibc has those glorified april fools' jokes
<hackerfoo>
Got "buttons" to work on the BASYS 3. It looks like at leaast 8GB RAM is the bare minimum to do this, or at least 4GB isn't enough. I'll try later on a laptop with 8GB.
<mithro>
What I did today rather than all the things I should be doing....
<mithro>
Wanted to get it down on paper before I forgot the idea
kraiskil has joined #symbiflow
kraiskil has quit [Ping timeout: 250 seconds]
<sf-slack>
<tmichalak> mithro: what is our approach for triggering a new prjxray-db build? The last update was 6 days ago and we see stable fails on the kintex database. Could you schedule a new run soon?
kraiskil has joined #symbiflow
celadon has joined #symbiflow
kraiskil has quit [Ping timeout: 268 seconds]
celadon has quit [Ping timeout: 250 seconds]
Bertl_zZ is now known as Bertl
OmniMancer has joined #symbiflow
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
kraiskil has joined #symbiflow
kraiskil has quit [Ping timeout: 250 seconds]
kraiskil has joined #symbiflow
kraiskil has quit [Max SendQ exceeded]
kraiskil has joined #symbiflow
celadon has joined #symbiflow
kraiskil has quit [Ping timeout: 250 seconds]
citypw has quit [Ping timeout: 244 seconds]
kraiskil has joined #symbiflow
Bertl is now known as bertl_oO
i8hantanu has joined #symbiflow
kraiskil has quit [Ping timeout: 246 seconds]
kraiskil has joined #symbiflow
i8hantanu has quit [Quit: Connection closed for inactivity]
<tpb>
Title: Google Docs - create and edit documents online, for free. (at docs.google.com)
bertl_oO is now known as Bertl
kraiskil has quit [Ping timeout: 268 seconds]
kraiskil has joined #symbiflow
kraiskil has quit [Max SendQ exceeded]
kraiskil has joined #symbiflow
Bertl is now known as Bertl_oO
OmniMancer has quit [Quit: Leaving.]
kraiskil has quit [Ping timeout: 264 seconds]
<mithro>
mkurc: Will you have time after the sync up to chat about the tile split with myself and keith?
<mithro>
tmichalak: You ask me to update it...
<mithro>
tmichalak: But I don't quite understand what you mean by "we see stable fails"?
<sf-slack>
<mkurc> @mithro: Yes I will
<sf-slack>
<tmichalak> @mithro: I mean that for kintex we see the same conflicts for BYP_ALT.GFAN and that's because in the master prjxray-db the bits in the segbits_int_l.db are wrong
<mithro>
tmichalak: The existing database shouldn't be involved when running on CI?
<sf-slack>
<tmichalak> @mithro: Right, due to the fact that much changed between the current prjxray-db and the latest prjxray results I didn't see in the log the cause of the kintex step failing, namely this collision: 00420c81_048_25: had INT_R_X25Y24.INT_R.CLK1.ER1END1, got CLK_HROW_BOT_R_X67Y26.CLK_HROW_BOT_R.CLK_HROW_CK_INT_0_1_ACTIVE 00420c81_051_24: had INT_R_X25Y25.INT_R.CLK0.ER1END1, got
<mithro>
tmichalak: The CI starts from an empty database every time
<mithro>
"KaHyPar (Karlsruhe Hypergraph Partitioning) is a multilevel hypergraph partitioning framework providing direct k-way and recursive bisection based partitioning algorithms that compute solutions of very high quality." -
<tpb>
Title: GitHub - wyvernSemi/pcievhost: PCIe (1.0a to 2.0) Virtual host model for verilog (at github.com)
<elms>
mithro: I have a PR that does a check and have a local change I need to clean up to actually run yapf on all the fiiles. I was going to look at it soon.
<tpb>
Title: Season of Docs | Google Developers (at developers.google.com)
<litghost>
mithro/elms: There is a modelling error in https://github.com/SymbiFlow/symbiflow-arch-defs/pull/511 when a DRAM WE signal is tied to VCC. However I'm not sure why that is ever a valid configuration. Can we simply forbid tying the DRAM WE signal to VCC?
<litghost>
mithro/elms: If that is not acceptable, I'll need to figure out a subtler model for the CE signal on SLICEM's. None of the solutions I've come up with are pretty so far
<mithro>
litghost: I'm not sure I understand what is meant by "modelling error"?
<litghost>
mithro: In #511, I've added a graph edge from the VCC network to the CE pin on the SLICEM
<litghost>
mithro: If the design is tying FF CE signals to CE, this is a valid model
<litghost>
mithro: However the SLICEM CEUSEDMUX is only upstream of the FF CE signals, NOT the DRAM WE mux
<litghost>
mithro: As a result, the graph is wrong if (and only if) the design ties the DRAM WE signal to VCC and VPR chooses the CE signal on the WE mux
<mithro>
elms: I think we want to add DEDENT_CLOSING_BRACKETS=True, INDENT_DICTIONARY_VALUE=True and SPLIT_BEFORE_FIRST_ARGUMENT=True to our yapf config?
<elms>
mithro: I don't have a preference. As long as it's consistent and I don't have to think about it.
<mithro>
litghost: I think I understand but a diagram would help....
<litghost>
mithro: Just look at the SLICEM diagram from CLB document
<tpb>
Title: Add target to use yapf to check all python files by elmsfu · Pull Request #519 · SymbiFlow/symbiflow-arch-defs · GitHub (at github.com)
<elms>
litghost: what do you mean by active configuration?
<litghost>
elms: CEUSEDMUX defaults to tying CE to VCC. It actually takes a bit to disable this. This is not true of the path above. #511 adds an edge from VCC to the CE pin, which is not correct if attempting to tie WEN to VCC
<litghost>
elms: But having WEN tied to VCC is weird
<mithro>
litghost: When the CE is not used, the CE is tied to VCC via not configuring the CEUSEDMUX, right?
<litghost>
mithro: Not exactly. If FF.CE is unused OR FF.CE == VCC, then CEUSEDMUX = 0
<litghost>
mithro: It's pretty common to have FF.CE tied to VCC
<mithro>
litghost: When FF.CE is tied high it effectively disables the clock enable functionality, right? I'm not sure I understand the difference between FF.CE tied high and "FF.CE unused" ?
<litghost>
mithro: Unused could simply be that nothing in the SLICE is using an FF. A design that instances an FF, but ties the signal to VCC, is not the same as a design with no FFs
<mithro>
litghost: Ahh - okay
<elms>
litghost: So vpr is unaware that by default it will be tied to VCC and that is the cause of the issue?
<litghost>
elms: Keep in mind that VPR doesn't actually understand what "VCC" is, fundimentally. A signal is just a signal
<litghost>
elms: The issue in this case is that I made a model simplification that is invalid if WEN is tied to VCC
<litghost>
elms: To fix that simplification requires some other comprimises
<litghost>
elms: Either in the form of missing routing (e.g. remove the WE mux) or complexity (adding a synthentic site pin) or a major undertaking (truely teach VPR about site internal constant sources)
<mithro>
litghost: So my change to the diagram around the CEUSEDMUX is wrong, right?
<litghost>
mithro: How so? besides the VCC on the WE site pin, it looks right
<mithro>
litghost: the CEUSEDMUX doesn't select between CE and VCC, it just connects or disconnects the CE to the FF?
<litghost>
mithro: No, the CEUSEDMUX does select between CE and VCC
<litghost>
mithro: But the CEUSEDMUX doesn't affect the CE -> WEN path
<elms>
litghost: How would you implement the special case to accommodate the simplification? I'd be ok with a work around if we open an issue to document it. Because ideally we have an accurate model, but I understand if it 's not the time to solve that particular case now.
<litghost>
elms: If we split the CE -> WEN and CE -> FF signal into two site pins, then we could add the edge only to the CE -> FF path
<mithro>
litghost: So if CE is unused but WE is tied high, then VPR could chose CE of WE for VCC?
<litghost>
mithro: No. If VPR chooses CE as WEN, and WEN is tied, then it can choose the VCC -> CE site pin connection. This graph edge is wrong, because it is modelling the CEUSEDMUX, which does not affect the CE -> WEN path
<litghost>
elms: Splitting the CE -> WEN and CE -> FF site pins is fairly hairy, especially in light of the incoming SLICE split and the equivilent tile work
<litghost>
elms: Which would both be directly impacted by aliasing site pins
<litghost>
elms: Oh, sorry are you talking about how would I enforce that WEN is not tied to VCC? Via the DRAM techmap
<mithro>
litghost: could you just move the WEN mux up into the routing?
<litghost>
mithro: Interesting. I'd have to think about how to do that
<litghost>
mithro: That might work as a variation on the tiedable signal idea
<mithro>
litghost: The other thing I was trying to understand is CEUSEDMUX should be set only when the signal coming out of the CEUSEDMUX is used by something downstream? It is unclear to me why CEUSEDMUX is being set when VCC->top level CE pin?
<litghost>
mithro: You have it backwards, CEUSEDMUX is set when not tying VCC -> top level
<mithro>
litghost: Going to get coffee - what does "set" mean? The feature is enabled or the bit value is 1?
<litghost>
mithro: Set in this instance means CEUSEDMUX = 1
<litghost>
mithro: Which means "connect CE to FF.CE", rather than the default of "connect VCC to FF.CE"
Miyu has quit [Read error: Connection reset by peer]
Miyu has joined #symbiflow
<mithro>
litghost: Sorry I went to get coffee and then started chatting to hzeller
<litghost>
mithro: I think the idea of moving the WE mux into the rr graph is viable. It will complicate some parts of the timing import, but in some ways it may actually be easier
hzeller has joined #symbiflow
<litghost>
mithro: I'm testing the idea now, and will see if I can make VPR emit all configurations
nonlinear has quit [Quit: Ping timeout (120 seconds)]