freemint has quit [Ping timeout: 250 seconds]
rohitksingh has joined ##openfpga
emeb has quit [Quit: Leaving.]
Flea86 has joined ##openfpga
rohitksingh has quit [Ping timeout: 276 seconds]
zng has quit [Quit: ZNC 1.7.2 - https://znc.in]
zng has joined ##openfpga
<whitequark> ZirconiumX: lol nice
<whitequark> how many layers
Bike has quit [Quit: Lost terminal]
rohitksingh has joined ##openfpga
Flea86 has quit [Read error: Connection reset by peer]
rohitksingh has quit [Ping timeout: 276 seconds]
Flea86 has joined ##openfpga
Jybz has joined ##openfpga
rohitksingh has joined ##openfpga
lexano has quit [Ping timeout: 248 seconds]
rohitksingh has quit [Ping timeout: 276 seconds]
lexano has joined ##openfpga
<ZirconiumX> whitequark: 4
<whitequark> not too bad
<ZirconiumX> There are a bunch of vias according to TopoR, but I don't see any in KiCad
emeb_mac has quit [Ping timeout: 245 seconds]
<ZirconiumX> whitequark: 10 minutes of routing using all 4 layers of the board as signal: https://puu.sh/E9Db0/aa25d412f0.png
<ZirconiumX> It's a bit technicolour
<ZirconiumX> emily too I guess
yuriks_ has quit []
<whitequark> nice
<whitequark> ship it :3
yuriks has joined ##openfpga
<ZirconiumX> Sadly at 35cmx35cm it won't be cheap :P
<Flea86> Really need an autoroute button...
<ZirconiumX> This is TopoR
<ZirconiumX> It's an autorouter :P
<Flea86> I've not heard of it! Interesting.
<ZirconiumX> WQ recommended it
<ZirconiumX> It's pretty great, when it doesn't hang, or reject your .dsn
<whitequark> lol
<Flea86> lol
<whitequark> I've used it like once
<whitequark> it's more that
<whitequark> this is about the only autorouter with autoplacer I know
<whitequark> and one of few that can do a board that's this much of a ratsnest
<Flea86> If that's routed, I'd want my money back :P
Asu has joined ##openfpga
<whitequark> what's the problem?
<Flea86> whitequark: I was expecting a nicely routed board, not a ratsnest
<Flea86> Seriously though, doesn't matter to me I do my own routing.
Asu` has joined ##openfpga
Asu has quit [Ping timeout: 258 seconds]
<whitequark> Flea86: it *is* nicely routed
<whitequark> that's the whole thing about TopoR
<whitequark> it routes topologically, that is, uses shortest path given DRC
<whitequark> it is specifically designed to *not* route like a human in the 80s
<whitequark> they claim it gives better results ("the only autorouter capable of 1L boards"), which i have found is true, and better EMC, which is plausible but I haven't verified it
<ZirconiumX> Something I find is that in the postprocessing pass where it draws arcs between points is that it generally introduces DRC violations on an otherwise violation-free design, whitequark
<whitequark> hmm
<Flea86> whitequark: Fair enough. I do get the benefits of direct point-to-point wiring. To be fair, I've actually used an autorouter commercially (and it doesn't look a great deal better asthetically). It worked, but I refrained from showing my boss the work :)
<ZirconiumX> Aesthetics are fairly meaningless
<ZirconiumX> In this case at least
<whitequark> indeed
<ZirconiumX> You know you've got a good design when running DRC incapacitates KiCad for 10 minutes (not exaggerating)
<pie_> ("Routing Concepts of a Topological Router CAD System" does not seem to be accessible anywhere >.>)
<pie_> (of course it fails on the site of the TopoR people)
Asu` has left ##openfpga ["Konversation terminated!"]
<sensille> wayback machine?
<pie_> checked it :I
gnufan_home has quit [Ping timeout: 246 seconds]
<ZirconiumX> The copper pours look rather weird with a TopoR board
<ZirconiumX> The whole thing looks very unnatural
<ZirconiumX> Which means Boneless probably qualifies as a work of art no
<ZirconiumX> *now
<whitequark> ha
<whitequark> "what if a computer designed a PCB"
<ZirconiumX> I mean, Verilog to netlist, then TopoR to place and route
<whitequark> exactly
<ZirconiumX> I feel like if you handed this to a professional designer you'd get kicked out the door
<ZirconiumX> But it's...kind of eerily beautiful in a way
<whitequark> you should see the autorouted shit some professional designers churn out
<whitequark> not autoplaced like that though
<ZirconiumX> I feel like the design would benefit from pinswapping
<ZirconiumX> (and apparently there's also undocumented gate swapping?)
gnufan_home has joined ##openfpga
<ZirconiumX> TopoR doesn't appear to respect pin courtyards though...
<whitequark> ZirconiumX: interesting
<whitequark> mght it be defective .dsc export?
<whitequark> it looks like only the drill got exported
<whitequark> not the pad
<ZirconiumX> whitequark: This is apparently a known issue with TopoR; freerouting respects it
gnufan_home has quit [Ping timeout: 246 seconds]
<ZirconiumX> whitequark: I think I know what the issue is
<ZirconiumX> I started off with a 2-layer board and then made it 4-layer
<ZirconiumX> But the graphics etc are still 2-layer
gnufan_home has joined ##openfpga
<ZirconiumX> So I faked it by making the graphics apply for all four layers
<ZirconiumX> https://puu.sh/E9Ggk/c0905c178f.png <--- [thinking emoji]
<whitequark> lol
<emily> nice loop
unixb0y has quit [Ping timeout: 245 seconds]
unixb0y has joined ##openfpga
rohitksingh has joined ##openfpga
rohitksingh has quit [Ping timeout: 276 seconds]
genii has joined ##openfpga
<ZirconiumX> I rendered tpw_rules' update to the Boneless manual, and it's very nice to read, honestly
<ZirconiumX> whitequark: Is EXTI followed by an instruction which doesn't care about it defined or not?
<whitequark> ZirconiumX: undefined
<tpw_rules> thank you ZirconiumX. the latest render should be in the PR too though
<tpw_rules> i effectively turned that situation with EXTI into a nop
<ZirconiumX> I'm curious if I can beat the compiler, since despite our best efforts (okay they maybe we're our *best*, but) Yosys doesn't recognise constructs like counters
<whitequark> mhm
<whitequark> there should only really be one counter, pc
<whitequark> ok two
<ZirconiumX> I mean, W comes to mind
<whitequark> ah yeah
<whitequark> sure
<ZirconiumX> I'll have to read the wording, but it sounds like anything which touches W requires a full register spill/restore?
<tpw_rules> no, the registers are in main memory at all times
<ZirconiumX> That's going to complicate things then
<tpw_rules> logically
<tpw_rules> i mean you could keep them in a register file as long as you read the register file whenever memory in W to W+8 was accessed
<ZirconiumX> So if you do ADD R0, R1, R2; you have to load R1 and R2, add, then store?
<whitequark> ZirconiumX: that *simplifies* things
<whitequark> well
<whitequark> in a way
<whitequark> it's a bit like 8051
<whitequark> and yes
<ZirconiumX> [15:03:18] tpw_rules: i mean you could keep them in a register file as long as you read the register file whenever memory in W to W+8 was accessed <--- I'd have to implement a method to only spill modified registers, then.
<tpw_rules> i mean you don't neeeeed to
<ZirconiumX> Memory is a painful thing for 7400 logic, because finding DIP RAM is almost impossible nowadays
<whitequark> tpw_rules: but you'd still have to write through to RAM
<whitequark> at which point you're better off making a normal cache
<whitequark> without being W-specific
freemint has joined ##openfpga
<ZirconiumX> whitequark / tpw_rules: I was talking to a friend about the ISA manual. There's a slight inconsistency between the overflow flag being V, but jump on overflow being JO.
<ZirconiumX> For example, JS/JC are named after the flags they check
<whitequark> ZirconiumX: oh
<whitequark> good point
<whitequark> I used to have JV as "Jump Virtual"
<whitequark> but it's now "Jump Virtual Table"
<whitequark> so JVT
<whitequark> so we can jave JV and JNV
<whitequark> tpw_rules: feel free to rename!
<ZirconiumX> Also the names LDW/STW are maybe a bit confusingly named, too?
<ZirconiumX> Since they're more about saving/restoring W
<whitequark> mmm, yes, but I didn't come up with better names
<ZirconiumX> SAVEW/RSTRW?
<whitequark> needs to be 4 letters
<ZirconiumX> SVW, RSW?
<whitequark> it's not just save/restore
<whitequark> it also moves the pointer
<tpw_rules> pshw/popw?
<tpw_rules> i'll look at it tonight. i'm trying to do dc motor control systems at the moment
<whitequark> it doesn't do that
<tpw_rules> it kind of does, if you imagine the register window as a stack
<whitequark> yes but "push w" sounds like you'd push the w register
<ZirconiumX> Well, ADJW would be push, no?
<whitequark> maybe GETW/SETW
<ZirconiumX> That sounds better
<ZirconiumX> whitequark: Also, what about saving/restoring flags?
<whitequark> ZirconiumX: not currently possible
<ZirconiumX> It seems like Boneless doesn't support interrupts, so there's at least that
<whitequark> yeah
<whitequark> both of these need to be fixed, really.
<ZirconiumX> Without interrupts, flags are atomic
<whitequark> but first i need an implementation that's less awful.
<whitequark> i really don't like how slow the current one is.
<ZirconiumX> Is that because of the memory ops?
<whitequark> i'm not totally sure
<ZirconiumX> It'd be nice if there was a way of getting the longest combinational path
<ZirconiumX> In Yosys or something
Flea86 has quit [Read error: Connection reset by peer]
<whitequark> yes, I was thinking about this pass
<whitequark> I'll write it one day I guess
<ZirconiumX> There's ltp, which is not necessarily combinational
<daveshah> in the case of unit delays `ltp` with selection syntax to remove FFs should work
<whitequark> oh nice
<whitequark> `ltp -noff` ?
<daveshah> That disables built in FFs
<whitequark> ah
<daveshah> for a non-generic-techonology-mapped design you'll need to use selections for the same effect
<ZirconiumX> 225 ALMs for the core FSM on Cyclone V, whitequark
<ZirconiumX> ~90MHz
<whitequark> is that good or bad
<ZirconiumX> I'll build some other things to give you comparison points
<ZirconiumX> 80MHz for core-fsm+memory
<whitequark> hm
<ZirconiumX> For lack of an alternative: PicoSoC is 5,955 ALMs at ~93MHz
<ZirconiumX> whitequark: ^
<ZirconiumX> If you have other comparison points you want testing, do tell
<whitequark> hm
<whitequark> i need to make it faster.
<ZirconiumX> Maybe it's a design not well suited to iCE40?
emeb has joined ##openfpga
pie_ has quit [Ping timeout: 264 seconds]
mumptai has joined ##openfpga
freemint has quit [Remote host closed the connection]
freemint has joined ##openfpga
pie_ has joined ##openfpga
mumptai has quit [Read error: Connection reset by peer]
mumptai has joined ##openfpga
mumptai has quit [Quit: Verlassend]
emeb_mac has joined ##openfpga
freemint has quit [Remote host closed the connection]
freemint has joined ##openfpga
Asu has joined ##openfpga
freemint has quit [Remote host closed the connection]
Jybz has quit [Remote host closed the connection]
freemint has joined ##openfpga
rohitksingh has joined ##openfpga
emeb_mac has quit [Ping timeout: 245 seconds]
emeb has quit [Ping timeout: 272 seconds]
emeb has joined ##openfpga
emeb_mac has joined ##openfpga
Bike has joined ##openfpga
Asu has quit [Ping timeout: 248 seconds]
Asu has joined ##openfpga
Thorn has quit [Remote host closed the connection]
Thorn has joined ##openfpga
<whitequark> no, i need to make it faster.
<whitequark> or redesign.
rohitksingh has quit [Ping timeout: 272 seconds]
m_w has quit [Quit: leaving]
Asu has quit [Quit: Konversation terminated!]