clifford changed the topic of #yosys to: Yosys Open SYnthesis Suite: http://www.clifford.at/yosys/ -- Channel Logs: https://irclog.whitequark.org/yosys
emeb_mac has joined #yosys
proteusguy has quit [Ping timeout: 268 seconds]
promach_ has joined #yosys
<promach_> corecode : spidergon routing algorithm will give deadlock, that is one bad thing about spidergon
proteusguy has joined #yosys
<promach_> corecode : I mean for spidergon with all master nodes
<tpb> Title: Turn restriction routing - Wikipedia (at en.wikipedia.org)
<corecode> can you explain how it can deadlock?
leviathanch has joined #yosys
<emeb_mac> hah, fun - got a simple little 6502-based system running in u4k (my breakout) and hx1k (icestick). fun part was setting up the makefile to include building the ROM contents from 6502 assembly code.
gsi_ has joined #yosys
gsi__ has quit [Ping timeout: 245 seconds]
<promach_> corecode : spidergon with all master nodes will have the possibility of cyclic packet transaction
<promach_> cyclic packet flow will lead to deadlock
<promach_> this is all the fault with spidergon deterministic routing algorithm
<promach_> corecode
<emeb_mac> general question: when building a design in yosys/nextpnr, is there a way to just change the EBR contents w/o rebuilding everything from scratch?
proteusguy has quit [Ping timeout: 246 seconds]
shuggsy has joined #yosys
shuggsy has quit [Client Quit]
shuggsy has joined #yosys
shuggsy has quit [Client Quit]
shuggsy has joined #yosys
pie__ has joined #yosys
shuggsy has quit [Client Quit]
shuggsy has joined #yosys
shuggsy has quit [Client Quit]
AlexDaniel has quit [Ping timeout: 268 seconds]
pie___ has quit [Ping timeout: 268 seconds]
rohitksingh has joined #yosys
_whitelogger has joined #yosys
_whitelogger has joined #yosys
leviathanch has quit [Remote host closed the connection]
rohitksingh has quit [Ping timeout: 250 seconds]
emeb_mac has quit [Ping timeout: 255 seconds]
proteusguy has joined #yosys
proteusguy has quit [Ping timeout: 246 seconds]
proteusguy has joined #yosys
leviathanch has joined #yosys
<corecode> promach_: why deadlock?
<promach_> corecore : because packet went into cyclic path
<corecode> a single packet?
<daveshah> emeb_mac: there is icebram
<daveshah> It should work with vendor tools too
<promach_> corecode : no, all nodes issue packet to the next neighbouring node
<promach_> do you get it ?
<corecode> why is that a deadlock
<promach_> corecode : because deadlock is something that locks everything down
<promach_> imagine all nodes send at the same time instant
<promach_> corecode
<promach_> with turn-restricion, then deadlock will not happen
<promach_> corecode : but spidergon is using shortest path routing algorithm which does not consider the deadlock problem
<corecode> can you explain the deadlock
<corecode> you're saying that it leads to deadlock, but i don't see how
<tnt> I think figuring out why 'xxx is "unused"' is where I spend most of my time when synthesizing stuff for the first time.
<corecode> so we start out by having all nodes send a packet to their neighbor
<promach_> corecode : es
<promach_> yes
<promach_> let say in a restaurant, we have a cicle of tables
<corecode> nono
<promach_> and we have 8 tables
<corecode> no analogy
<promach_> we have 8 couples
<corecode> i can't work with analogies
<corecode> my brain can't translate
<promach_> all of them are sitting in the table
<promach_> all nodes are chained in a cicular manner
<corecode> yes
<promach_> node 0 sends packet to node 1
<corecode> yes
<promach_> node 1 sends packet to node 2
<corecode> yes
<promach_> node 2 sends packet to node 3
<promach_> node 3 sends packet to node 4
<promach_> node 4 sends packet to node 5
<promach_> node 5 sends packet to node 6
<promach_> node 6 sends packet to node 7
<corecode> yes
<promach_> node 7 sends packet to node 0
<corecode> yes
<promach_> now do you see deadlock
<corecode> no
<promach_> moving packet across from one node to the another node requires time latency
<corecode> yes
<promach_> this is physical world, remember
<promach_> I mean hardware
<promach_> wiring time
<corecode> so it takes, say, 32 clock cycles to transmit a packet
<promach_> let say each packet transfer requires 1 clock cycle
<promach_> node 0 cannot send packet to node 1 if node 1 does not have buffer space
<corecode> okay
<corecode> why doesn't it have the buffer space?
<promach_> node 1 cannot send packet to node 2 if node 2 does not have buffer space
<promach_> because it is occupied
<promach_> does not have enough buffer space
<corecode> how is it occupied
<promach_> this has to do with all the packet routing
<corecode> okay
<corecode> please explain
<promach_> all nodes are initially full
<corecode> why?
<promach_> because it is full
<corecode> what's in there
<promach_> filled from packets routed during previous timestep
<corecode> okay
<promach_> do you get the meaning of deadlock now ?
<corecode> no
<tpb> Title: Turn restriction routing - Wikipedia (at en.wikipedia.org)
<corecode> it seems you're assuming that there is only one buffer for input and output
<tpb> Title: Deadlock - Wikipedia (at en.wikipedia.org)
<corecode> i know what a deadlock is
<promach_> assume ?
<corecode> is this a question?
<promach_> are you telling me that virtual channels will solve the deadlock issue ?
<corecode> no
<promach_> even in spidergon ?
<corecode> no
<corecode> you're not being rigorous
<promach_> huh ?
<corecode> you say "this is a deadlock", but you don't define any algorithm
<tpb> Title: Spidergon Networks-on-Chips : algorithms (at www.reddit.com)
<promach_> corecode
<corecode> do you actually look for feedback on what you're saying?
<corecode> or do you just want to be confirmed?
<promach_> no, I am trying to find out ways to tackle deadlock problem in Spidergon
<corecode> then write an algorithm that will deadlock
<corecode> and then think about how to avoid it
<promach_> already did
<promach_> I mean the thinking part, not yet
<corecode> any cylic graph will have the problem you're describing
<promach_> yup
<corecode> so it's silly to say "oh no"
<promach_> wait, probably virtual channels will help
rohitksingh has joined #yosys
<corecode> why
<corecode> i think you're reading a lot and not doing a lot
<promach_> no, reading helps
<corecode> thinking helps even more
<corecode> if you can process your incoming data in one clock cycle, would you get a deadlock?
<promach_> otherwise the code won't be correct
<corecode> code is never correct
<corecode> but it can approach correct
<corecode> it's an iterative process
<corecode> so it can't be a routing deadlock; if our processing in the node was just "receive packet and drop", it would work without problems
<corecode> so it has to be a processing issue
<promach_> what processing were you referring ?
<corecode> in the node
<promach_> true, each node is a verilog module
<promach_> and each verilog module has different latency
<corecode> if each node will just discard the incoming packet, it won't deadlock
<promach_> true
<corecode> so it is not a problem of the network
<promach_> but we have tackle this problem through network concepts
<corecode> no
<promach_> using virtual channels will solve the deadlock issue
<corecode> okay
<corecode> i'm done with you
<promach_> but I am not sure
<corecode> i think you're a robot
<corecode> off in ignore you go
proteusguy has quit [Ping timeout: 240 seconds]
<sorear> harsh
<corecode> sorear: me?
<sorear> yes
<corecode> why
maikmerten has joined #yosys
proteusguy has joined #yosys
rohitksingh has quit [Ping timeout: 240 seconds]
<keesj> daveshah: great work on ECP5 DDR3! https://twitter.com/fpga_dave/status/1101925224344367105
<corecode> oh i should get into the ecp5
<daveshah> thanks keesj!#
<corecode> yeah, cool
<corecode> oh no, the q&a of your fodem talk was cut short
proteusguy has quit [Ping timeout: 255 seconds]
<corecode> daveshah: is there a list of what dies exist for the ecp5?
<daveshah> It's 25k, 45k, and 85k
<daveshah> the 12k is a rebadged 25k
<corecode> do they all have serdes?
<daveshah> Probably, but it's the most likely thing to have yield issues
<corecode> aha
<daveshah> so I wouldn't bank on it being in-spec on non-serdes parts
<corecode> i see
<corecode> but good enough to play with
<daveshah> haven't ever tried it
<corecode> ok
<daveshah> don't have any boards around with a non-serdes ecp5 that exposes the necessary pins
<corecode> ah
<corecode> because the UM (serdes) parts seem to be 3x the price
<tnt> What I'm wondering is if the 5g part could run at 6.144G ...
<corecode> where is that rate used?
<daveshah> Given that the 5G parts are already 'over-volted' my suspicion is they are quite marginal
<daveshah> wouldn't be too surprised if some could run at 6.144G though
<tnt> corecode: with 2x6.144G you can get a 10G ethernet lane.
<corecode> ah, the 256-CABGA is 0.8mm pitch
<corecode> that's at least possible in fairly low price process
<somlo> daveshah: also want to say congrats (and thanks) for the ecp5 ddr3 thing!
<somlo> is it in litex proper, or in a fork or PR?
<daveshah> The DDR3 stuff is now upstream
<daveshah> The SoC with Ethernet is here: https://github.com/enjoy-digital/versa_ecp5
<tpb> Title: GitHub - enjoy-digital/versa_ecp5: Versa ECP5 SoC based on LiteX (at github.com)
<somlo> so litedram proper and versa_ecp5, then -- cool!
<somlo> I need a starting point to rip out just the dram controller and the C program used to initialize it, so I can graft it onto the rocket chip based SoC :)
Laksen has joined #yosys
<somlo> so Lattice have decided to send me a proper 5g versa board, and they're letting me keep the franken-version with a non-5g FPGA -- might be worth something as a weird collectible one day in the future (or not) :)
flaviusb has quit [Quit: Leaving.]
rohitksingh has joined #yosys
flaviusb has joined #yosys
rohitksingh has quit [Ping timeout: 255 seconds]
rohitksingh has joined #yosys
rohitksingh has quit [Ping timeout: 255 seconds]
rohitksingh has joined #yosys
lutsabound has joined #yosys
rohitksingh has quit [Ping timeout: 250 seconds]
<MoeIcenowy> somlo: board with wrong chip?
<MoeIcenowy> collectible ;-)
svenn2 has joined #yosys
svenn has quit [Read error: Connection reset by peer]
maikmerten has quit [Quit: Verlassend]
emeb_mac has joined #yosys
leviathanch has quit [Remote host closed the connection]
knielsen has quit [Ping timeout: 240 seconds]
knielsen has joined #yosys
rohitksingh has joined #yosys
promach_ has quit [Ping timeout: 255 seconds]
rohitksingh has quit [Remote host closed the connection]
<MoeIcenowy> daveshah: btw is DFF initialization implemented in ECP5 Yosys?
<daveshah> MoeIcenowy: yes, it is now
<tpb> Title: yosys/ecp5_ffinit.cc at master · YosysHQ/yosys · GitHub (at github.com)
<MoeIcenowy> daveshah: in fact I think I have done the same thing for Anlogic
<MoeIcenowy> via "dffinit -strinit SET RESET -ff AL_MAP_SEQ q REGSET -noreinit"
<MoeIcenowy> do you think this scheme familiar? ;-)
<daveshah> yeah, this pass also has to deal with conflicts between sync set/reset and initialisation (by blowing the sync set/reset back to logic in a conflict)
<MoeIcenowy> oh maybe I should drop my code and port ecp5_ffinit to anlogic
develonepi3 has quit [Remote host closed the connection]
<emeb_mac> stupid 6502 + UART running on an icestick. just because -> https://github.com/emeb/icestick_6502.git
<tpb> Title: GitHub - emeb/icestick_6502: A small 6502 system build on a Lattice Icestick FPGA development board (at github.com)
<cr1901_modern> ahhh you used Arlet's core nice
<tnt> emeb_mac: now you need to pport basic to it :)
<cr1901_modern> oh cool, you made an acia too
<cr1901_modern> next is via and pia ports :P?
<emeb_mac> tnt: rofl
<emeb_mac> tnt: I actually have BASIC running on the one I did for up5k
<emeb_mac> but it's too big to fit into the BRAM on the hx1k
<tnt> oh you have a up5k version somewhere ?
<daveshah> Run on SPI flash?
<emeb_mac> tnt: yeah - haven't published it though - not quite done yet
<daveshah> Or implement virtual memory and load pages from the UART :P
<emeb_mac> daveshah: heh
<emeb_mac> cr1901_modern: the acia is just a wrapper around a simple UART core I found on github
<emeb_mac> cr1901_modern: and on closer inspection that UART has some issues. But it's good enough for a demo. :)
<cr1901_modern> ahhh
<cr1901_modern> and 65816 has virtual memory support; I don't think 6502 does
<emeb_mac> cr1901_modern: no - it's just straight 64k w/o banks, mmu, etc
<cr1901_modern> there's an old 74xx chip that is called an "MMU", but it's more accurately called a bank switcher
<sorear> 65816 has bank registers but no protection/remapping?
<cr1901_modern> 65816 has an abort pin that restarts the current insn
<cr1901_modern> this means in principle you can add memory protection/remapping
<cr1901_modern> But I've seen the abort pin used exactly once
<cr1901_modern> in someone's custom computer
<cr1901_modern> (Back in 2015 I asked for the source code- it was made using one of Lattice's GUIs a la icestuido
<cr1901_modern> I still have it somewhere, but never got around to studying it
<tpb> Title: ASICMMU (at www.pc65816.de)
<cr1901_modern> Note that adapting this to modern FPGAs... well, it stinks. 65816 is a 5V CMOS CPU, so TTL levels don't work for it and associated peripherals
<cr1901_modern> on the other end of the MMU you'll need level shifters for 5V CMOS peripherals that natively speak to 65816
<emeb_mac> I've been lurking over on that Commander 16 project on FB where they're trying to design a 65816 retrocomputer.
<emeb_mac> it's kind of hilarious/sad all the conflict they're having over the use of FPGAs
<sorear> cute
<cr1901_modern> well, maybe you don't need all that much converted back to 5V on the I/O side of the MMU... a greenpak powered at 5V could do dual addr decoding and level shifting
<tnt> emeb_mac: is that the 8bit guy project ?
<cr1901_modern> He rubs me the wrong way
<cr1901_modern> but I could just be jealous of his success
<cr1901_modern> (and there are some... flaws w/ his "how 8-bit graphics work" that my NES hacker friends like to point out :P)
<cr1901_modern> "how 8-bit graphics work" video*
<tnt> oh yeah, it's not always the most technically accurate. For that gotta watch the 'ultimate talks' series from ccc :p
<tnt> we need a 'ultimate ice40 talk' with all the tech details of all the blocks the routing and all that stuff :)
<emeb_mac> tnt: yes
<emeb_mac> it's a neat idea, but their self-imposed limits seem kind of shortsighted, and I suspect they'll have a hard time hitting that $50 price point goal without losing their shirts.
<tnt> I didn't read anything on the fb group, but esden and I actually sent him a proposal for an ice40 gpu (and matching hdmi driver and bus interface), but he turned it down, so didn't really follow after that.
<cr1901_modern> c256 foenix looks interesting
<cr1901_modern> it's sorta what I would do if I were making my own 65816 computer
<cr1901_modern> I would use FPGAs for: address decoding, MMU, i2c bus, uart, and spi bus. The UART is because the current ACIA silicon by WDC is very broken
<esden> I had a few back and forth with him when he turned us down. Regarding pricing. He insisted it was fine to use the xilinx chip for video, because someoen told him he will be able to source the chips for $5. I ended up wishing him good luck, and if he is interested he knows how to reach us. :)
<esden> And honestly. I am even more curious if he will be able to source the 65C2xxx chip for a reasonable price. Without good chip distributor contacts and large production quantities, these things are not that simple to get.
<cr1901_modern> 65c2xx is the microcontroller variant IIRC
<cr1901_modern> it's an interesting beast
<esden> I don't doubt it is interesting. ;)
<cr1901_modern> esden: I like WDC a lot- they are receptive to hobbyists inquiries. But it's quite a mystery to me where their actual business comes from.
<cr1901_modern> b/c it ain't from Joe nobody like me
<daveshah> Plenty of still built old designs I'm sure
<daveshah> Particularly applications which are certified and expensive to change
<cr1901_modern> (the VP of Business and Development David Cramer helped me out personally over email when I had trouble buying some 65816s a few years ago from a vendor.)
<cr1901_modern> WDC is fabless; they used Sanyo up until I want to say 2015; now they use TSMC
<esden> Yeah the amount of old chips in industrial applications is astonishing. I bet in certified systems there is even more of that.
<cr1901_modern> (Tbh, I thought for the longest time Sanyo was a kitchen appliance manufacturer)
<emeb_mac> WDC is about 5 miles from where I live.
<cr1901_modern> Oh that's cool
<cr1901_modern> >In 2010, Sanyo sold its semiconductor operations to ON Semiconductor. [16] Oops
<sorear> Are they still using the old masks for anything or is the Verilog version the only one now
<emeb_mac> but I agree with esden that they'll have trouble with pricing, not just on the CPU & FPGA too.
Laksen has quit [Quit: Leaving]
<sorear> My general philosophy on this sort of system stuff is you want to balance complexity between components, and using a ca. 10 kGE core like 65816 with >>1Mbit of memory is unbalanced and silly
<emeb_mac> heh - the village idiot driving a lamborghini :)
<esden> I also heard him say, "I am not concerned about the hardware that much, software is much more important at the moment." although I partly agree. He did mention the aggressive $60 retail target, and I think they are being overly optimistic. To emeb_mac's point, even if the main components seem to be "gettable" in the right price bracket, there is a lot of supporting components that will add up.
<cr1901_modern> sorear: I dunno... in principle 65816 could run a full fledged *nix if you actually gave it a full 16MB of RAM. The main problem is that functions have to be limited to 64kB boundaries (or a linker relaxation pass would have to break a function that straddled the boundary into two chunks).
<sorear> who are we talking about?
<cr1901_modern> I think that would be cool
<cr1901_modern> sorear: 8-bit guy
<sorear> i,i Sanrio semiconductors
<cr1901_modern> ._.
<emeb_mac> Those Spartan 6 LX9 chips are listed @ ~$18 / qty180. You might be able to get them cheaper if you cozy up to the Xilinx reps and get the "friend & family" pricing. This project *might* be high enough profile that they'd buy in. Might.
<daveshah> Unlikely, with my experience of Xilinx reps in the UK a few years ago at least
loxodes has joined #yosys
<daveshah> The best price we got was higher per unit than digikey
<daveshah> In qty 1000
<emeb_mac> A guy I know managed to talk Xilinx down to about $10 for an SDR project he was going to do, but there were a lot of strings attached.
<emeb_mac> (on the S6 LX9)
<daveshah> I suspect in this case they are relying on cheapo "secondary" distributors
<daveshah> Not a risk I'd take for something like this, but each to their own
<emeb_mac> ever popular Chinese gray market
<emeb_mac> ice40 HX would definitely be a better bet for something that doesn't need lots of DSP cores.
<esden> Yeah, I can confirm that it really depends on how cozy you are with the "right people" from the chip vendor. And developing those relationships takes a lot of time, even if you have a "high profile" project. But who knows he might know someone, he does have a lot of tech people watching his channel.
<cr1901_modern> I really can't watch many retro channels on YT. I just get sad that I either A. missed my chance to get a piece of the retro pie, and/or B. don't have the right personality to have pulled off being a popular retro enthusiast lol
<cr1901_modern> That market is very well saturated now
<esden> I try to tell myself that I do not have space or time for it anyways. So I enjoy the fruits of the other people’s labor here. I have enough things to play with... ;) but sometimes I have similar feelings cr1901_modern
<cr1901_modern> esden: The first step towards fixing a problem is admitting it exists. Well, I'm not really about the fix these jealous feelings tho LOL
<cr1901_modern> If someone wants to dunk on 8-bit guy, and I know their credentials, I'm prob gonna listen. And wish it was me doing said videos and sipho- err making money off ppl's nostalgia instead
<cr1901_modern> I mean shit, of course I'd love to be able to talk about/make hardware for obsolete machines and not have to worry about other work XD
<daveshah> Get a job in the railway industry then :P
<daveshah> Or military or marine
<esden> Or aircraft...
<cr1901_modern> Hmmm, well I do like trains (although foamers ensure I'll never talk about that out loud)
<esden> My PnP is the biggest retro project that I have... and I would prefer if it was not retro to be fair... on the other hand it is probably easier to maintain without a support contract. ;D
<cr1901_modern> PnP?
<esden> Pick and Place machine
<cr1901_modern> You're making an ISA Plug-n-Pray FPGA core?
<cr1901_modern> ahhhh
<cr1901_modern> yea I don't have the spare money for that
<esden> well... it is not a toy in my case. I wish it was just that.
<esden> Ahh the utopia where one can just work on interesting shit without worrying about materialism. :/
<cr1901_modern> Hmmm fair point. I wasn't thinking of using it as a toy, but to make prototyping during contracts easier
<cr1901_modern> since I'm not a wonderful manual pick-n-place machine
chaseemory has joined #yosys
<cr1901_modern> esden: Was the 3-bit HDMI icebreaker PMOD meant to be a prototype?
<cr1901_modern> contrast to the 16-pin PMOD
<cr1901_modern> or was there supposed to be an 8-pin 3-bit and 16-pin "whatever"-bit verson?
<esden> For less boards than 10 it is usually faster to place by hand than setup a PnP.
<esden> The 3bit one was a prototype based on Kevin's design. The 4bit version is the successor to it, based on tnt's suggestion. This is what I will be making and selling in the store. The 12bit version is part of the crowd funding campaign, and this is what "people" will be getting.
<cr1901_modern> ahhh
<cr1901_modern> (who is Kevin, btw?)
<cr1901_modern> anyways I have the 3-bit version which is fine for my needs. Making the 4-bit at home might be fun
<esden> There is a new version of the 4 and 12 bit coming, with more jumpers, again a good suggestion from tnt. ;)
tpb has quit [Remote host closed the connection]
<esden> cr1901_modern: making a 4 bit version is very easy, you just need to lift 3 legs on the chip and wire them up to the NC pin on the PMOD.
tpb has joined #yosys
<esden> tnt: has a photo of his bodge.
<cr1901_modern> do not underestimate my ability to screw this up
<esden> what you break you can fix ;)
<cr1901_modern> how do I lift just 3 legs off the chip?
<cr1901_modern> esden: ENOEXACTO for broken traces
<esden> Kevin Hubbard aka. Black Mesa Labs: https://twitter.com/bml_khubbard
<cr1901_modern> Ohhh right right
<cr1901_modern> err, ENOXACTO*