<GenTooMan> whitequark Sorry about I got lost with nmigen, well nmigen isn't different enough from verilog it takes some rethinking. The misoc example is 4 years old and not nmigen clearly.
emeb has quit [Quit: Leaving.]
gnufan_home has joined ##openfpga
<_whitenotifier> [libfx2] whitequark created branch travis-synth - https://git.io/fjAQS
<_whitenotifier> [whitequark/libfx2] whitequark created branch travis-synth https://git.io/fjAQ9
<_whitenotifier> [libfx2] whitequark deleted branch travis-synth - https://git.io/fjAQS
<_whitenotifier> [whitequark/libfx2] whitequark deleted branch travis-synth
gnufan_home has quit [Quit: Leaving.]
rohitksingh has quit [Ping timeout: 276 seconds]
Bob_Dole has joined ##openfpga
Bike has quit [Quit: Lost terminal]
genii has quit [Quit: Dammit Mitch]
rohitksingh has joined ##openfpga
happycube has joined ##openfpga
Bob_Dole has quit [Read error: Connection reset by peer]
Jybz has joined ##openfpga
emeb_mac has quit [Ping timeout: 258 seconds]
rohitksingh has quit [Ping timeout: 276 seconds]
Asu has joined ##openfpga
Asu has quit [Read error: Connection reset by peer]
Asu has joined ##openfpga
Asu has quit [Ping timeout: 246 seconds]
Asu` has joined ##openfpga
rektide has quit [Ping timeout: 244 seconds]
rektide has joined ##openfpga
Asu` has quit [Read error: Connection reset by peer]
Asu` has joined ##openfpga
Bike has joined ##openfpga
Ekho has quit [Quit: An alternate universe was just created where I didn't leave. But here, I left you. I'm sorry.]
Ekho has joined ##openfpga
<ZirconiumX> With some help from Dave, Boneless once again has top-level arguments
<ZirconiumX> Which means it can interface with the outside world
<tpw_rules> has anybody else had a chance to review the manual?
<whitequark> oh, it's finished? sorry, will take a look soon
<ZirconiumX> tpw_rules: I already have
<tpw_rules> it's mostly finished
<tpw_rules> ZirconiumX: yeah i remember you had good words
<tpw_rules> thank you for that
<ZirconiumX> Perhaps also add an encoding quick reference?
<tpw_rules> what do you mean?
<tpw_rules> like the types of encodings?
<tpw_rules> i wanted to add an instruction summary, like to group all the instructions together and provide simple descriptions
<ZirconiumX> https://puu.sh/EbL5d/27c3a956fb.png <--- from the RISC-V manual
<ZirconiumX> As an example
<tpw_rules> oh
<tpw_rules> yeah i guess
<ZirconiumX> https://puu.sh/EbLbN/6c3c8c2797.png <--- this pin placement kinda sucks :P
freemint has joined ##openfpga
marcan has quit [Quit: Now where's my screwdriver...]
marcan has joined ##openfpga
marcan has quit [Client Quit]
marcan has joined ##openfpga
uovo has quit [Quit: moo.]
oeuf has quit [Read error: Connection reset by peer]
oeuf has joined ##openfpga
genii has joined ##openfpga
freemint has quit [Ping timeout: 245 seconds]
rohitksingh has joined ##openfpga
emeb has joined ##openfpga
X-Scale has quit [Quit: HydraIRC -> http://www.hydrairc.com <- Organize your IRC]
X-Scale has joined ##openfpga
Bob_Dole has joined ##openfpga
freemint has joined ##openfpga
rohitksingh has quit [Ping timeout: 250 seconds]
rohitksingh has joined ##openfpga
freemint has quit [Ping timeout: 245 seconds]
freemint has joined ##openfpga
freemint has quit [Ping timeout: 264 seconds]
rohitksingh has quit [Ping timeout: 276 seconds]
rohitksingh has joined ##openfpga
genii has quit [Quit: Dammit Mitch]
freemint has joined ##openfpga
freemint has quit [Remote host closed the connection]
emeb has quit [Ping timeout: 245 seconds]
emeb has joined ##openfpga
Bike has quit [Quit: Lost terminal]
emeb_mac has joined ##openfpga
<gruetzkopf> may be able to poke at the panologic g2 again this night (after i restore object permanence data on my glasgow..)
<whitequark> object what
rohitksingh has quit [Ping timeout: 250 seconds]
<ZirconiumX> whitequark: So, Boneless is meant to be 4 CPI, right? Read reg1, read reg2, op, write.
<whitequark> yeah
<ZirconiumX> But don't you also need to do an instruction fetch?
<whitequark> sorry
<whitequark> fetch/decode, read1, read2, write
<whitequark> and the ALU is combinatorial
<ZirconiumX> Ah, I see, that's where I misunderstood
<ZirconiumX> Thank you
<whitequark> not saying it's a good design fwiw
<whitequark> maybe I should target more like 6 cpi
<sorear> does boneless have a picorv32-like explicit goal of “high fmax even at the expense of perf so that users don’t need another clock domain”?
<whitequark> sorear: yes
<whitequark> 48M on iCE40HX
<ZirconiumX> I managed to save a chip by reworking the design a little, I'm proud of myself#
<ZirconiumX> -#
rohitksingh has joined ##openfpga
<ZirconiumX> So, for those who don't know, Boneless' ALU takes in a shift-right bit, plus a 3-bit operation code
<ZirconiumX> In my design the ALU is essentially 74153 MUX4s feeding into a 74283 adder
<ZirconiumX> So it looks like F_a(A, B) + F_b(a, B) for arbitrary F_a and F_b
<ZirconiumX> (essentially they're LUT2s)
<ZirconiumX> But for essentially any non-arithmetic operation, F_b is always-zero
<ZirconiumX> The 74153 has a per-multiplexer output-enable which returns low if the pin is low
<ZirconiumX> So I can make the non-arithmetic operations a don't-care state and wire up the output enable to go low on any non-arithmetic operation
<whitequark> cute
<ZirconiumX> Essentially it trades 2/3 AND gates (I have a single AND gate spare) for a single AND and an inverter
<ZirconiumX> Actually just an inverter, because NOT (NOT A AND NOT B) == A AND B
<sorear> A OR B. De Morgan
<ZirconiumX> ...You're right, I misread the symbol
<ZirconiumX> (seriously, why did the mathematicians have to use ^ and v?)
Jybz has quit [Ping timeout: 252 seconds]
emeb has quit [Quit: Leaving.]
Asu` has quit [Ping timeout: 245 seconds]
rohitksingh has quit [Ping timeout: 276 seconds]
<ZirconiumX> So I've been sketching out the timing for Boneless. So far the ALU alone accounts for 110ns of worst-case propagation delay, and it's not even complete
<whitequark> yeah like I said Boneless isn't super great ;w;
<ZirconiumX> Sure, but I suspect an unnecessary dependency chain in my logic
<ZirconiumX> It'd be grand if the Liberty cell format didn't choose an unnecessarily complicated way to explain timing
<ZirconiumX> Human readable timing: (min, typical, max)
<ZirconiumX> The description of the machine readable timing field is itself only machine readable