IRC logs for #openrisc Wednesday, 2017-10-04

--- Log opened Wed Oct 04 00:00:14 2017
mtn2Where can I find latest version of wb_intercon_gen07:29
juliusbstekern: can you help refresh my memory on how caches work - in the mor1kx cache, what do BLOCK_WIDTH and SET_WIDTH mean with regards to the number of lines of cache instantiated?08:29
juliusband this guy:
juliusbWe add those two together and 2**WAY_WIDTH is basically the number of lines we have?08:30
juliusbdefaults are parameter OPTION_ICACHE_BLOCK_WIDTH = 5, parameter OPTION_ICACHE_SET_WIDTH = 908:31
juliusband I think i got it, BLOCK_WIDTH is the line size log2 and SET_WIDTH is number of lines log208:31
juliusbBLOCK_WIDTH of 5 is 32 bytes a line, 9 for width is 512 lines, total cache size per way of 16kB08:32
stekernyeah, SET is the number of lines and BLOCK is the size of each line08:32
juliusbNice, thanks.08:32
juliusbSorry it only took me 4 years to look at your cache implementation. It's nice :)08:33
stekernsome of it is wallento's work too ;)08:33
juliusbIt's much nicer than what ended up in the OR1200.08:34
stekernI can't remember what that looked like anymore08:35
juliusbDon't remind yourself. It wasn't pretty.08:35
shornejuliusb: what are you looking at this for?09:24
shornemtn2: is this what you are looking for?
shorne(sorry thats my fork or opencores) The original is in olofk's repo but its old09:27
mtn2I need some reference configuration file also, as I need to regenerate. Can't find in above 2 links09:29
mtn2Configuration file, which is input to
juliusbshorne: helping out mithro - just figuring out if we can fit the mor1kx onto the LX9 spartan 609:32
juliusbThis board:
juliusbPity it was such a small FPGA, but I don't know if he's done an entire SoC or just the mor1kx09:35
juliusbshorne: we missed you at ORConf this year man!09:36
juliusbBut I understand it's a long way to go.09:36
mtn2Got one here.
shornemtn2: there are a bunch of example config files here10:05
shornejuliusb: yeah, my parents were visiting and the baby is still young, it didnt work out10:06
shornemithro asked me to help look into the mimas v2 board as well, but I am trying to finish up some patches for GDB10:08
shornehope it can finally get merged10:08
shornethen qemu SMP, linux SMP, orpsoc-cores multicore, and openocd multicore patches!10:08
mtn2Thanks Shrone. Kind of new to orisc... hence basic questions10:58
mithroZipCPU: Is your autofpga a reinvention of FuseSoC and MiSoC?20:45
ZipCPUmithro: That's a really good question.20:45
mithrobtw I love your blog20:45
ZipCPUAfter chatting with olof, I can tell you with certainty that it is not a reinvention of FuseSoC.20:45
ZipCPU(Thanks--I'm trying to put some AutoFPGA blog articles together as we "speak")20:46
ZipCPUAs for MiSoC ... that's a harder one to answer.20:46
ZipCPUAutoFPGA isn't a programming language.  It's an ability to copy things from a configuration file to pieces of code that AutoFPGA will generate.20:46
mithroMiSoC tries to take a lot of the work out of creating a bunch of SoCs20:47
ZipCPUAutoFPGA also builds files that go well beyond just the RTL.20:47
ZipCPUAutoFPGA assigns bus addresses, and builds a bus of the components on it.20:47
mithroZipCPU: MiSoC then generates you gateware, bios, C headers for accessing CSRs, etc20:47
ZipCPUIt also builds a linker file, C-headers, host-based command and control header files, Make file includes, and more.20:48
ZipCPUI haven't gone so far as to generate a BIOS with it, but it does put (some) of the gateware together, as well as the C-headers.20:48
ZipCPUUnlike migen ... no Python is required!  Ok, realistically, that's an irrelevant fact.20:49
ZipCPUOr is it?  To add a file into AutoFPGA, you just specify what values need to be pasted into what files where.  That's it.20:49
ZipCPUThere's not much more magic going on behind the scenes ... although there is some.20:49
ZipCPUThere's an integer expression evaluator, the bus address calculator, the bus composer, an interrupt assignment module, and so forth.20:50
ZipCPUAutoFPGA also helps you to build a Verilator simulation--one that can (potentially) use multiple dissimilar clocks (if necessary).20:51
ZipCPUMy goal was that the AutoFPGA user shouldn't need to learn a new language, but rather provide snippets of source languages: Verilog or C++, that would then get pasted into the files it produces.20:52
ZipCPUWhen I've examined MiGen, it looks like you need to "import" your design into their hierarchy and structure--something that really isn't required at all with AutoFPGA.20:52
mithroZipCPU: Yeah - I'm hoping to add "auto import" into Migen / MiSoC in the near future -- but it doesn't exist currently20:53
ZipCPUAre you a migen/misoc maintainer?20:53
mithroZipCPU: nope!20:54
ZipCPU"I'm hoping to add 'auto import' into ..." <--- no?20:54
mithroZipCPU: Just possibly the third biggest user I think....20:54
ZipCPUPlease, then .... tell me what you think of it!20:55
ZipCPUI've never used it .... ;)20:55
mithroZipCPU: the #m-labs guys are the owners / maintainers of Migen / MiSoC20:55
mithro_florent_ from Enjoy-Digital is probably the next biggest user20:55
mithroThen my TimVideos HDMI2USB project is likely the next one after that....20:55
mithroBut there could be users I don't know about20:56
ZipCPUOk, sure but ... what do you think about it?20:56
mithroZipCPU: The big win for me is writing in a high level language rather than having to write Verilog20:56
ZipCPUGo on ...20:57
FL4SHKWhat are Migen / MiSoc?20:57
mithroOkay - Migen is the "Python based HDL", MiSoC is a library of cores written in Migen which makes building SoCs very easy20:58
ZipCPUThat's a pretty decent definition20:58
mithroAt a high level you can think of Migen as just an easy way to generate Verilog20:59
ZipCPUBut ... you were saying that it does more than Verilog, right?20:59
mithroBut the big win for me in Migen is it means you can do things like modules which when connected together can "negotiate" how they talk to each other before generating any low level code20:59
FL4SHKwhy specifically does it use Python?20:59
mithroFor example you could have a module which supports multiple bus types - say wishbone and axi -- then when you connect it to a wishbone bus it uses the wishbone config automatically, and when connected to an axi bus it uses the axi config automatically21:00
ZipCPUAt one time I was going to place such "negotiation" into AutoFPGA ... I just didn't get that far before my project needed to move on (and my presentation needed to be written)21:01
ZipCPUI like that idea, though.21:02
FL4SHKIt does seems this is ignoring SystemVerilog at the very least21:02
mithroAnother example would be a PLL module which just takes "Input frequency is 100MHz, I want clocks outputs of X, Y, Z" you can write Python code to figure out how the PLL needs to be configured to meet those requirements21:02
mithro(That doesn't exist yet - but it's on my todo list :-)21:02
ZipCPUYeah, I've thought about adding that to AutoFPGA as well --- especially since the PLL's are a limited resource, that many modules want access to.21:03
mithroYeah - Peripherals also just define "I  want a CSR which looks like this" and then when it's added to a SoC it's automatically connected to the CSR bus (addresses are calculated), C header files are automatically generated (in the future device tree fragments too), etc21:04
mithroZipCPU: It also has a lot of the things that you talk about on your blog - like XXX to Wishbone bridges21:05
mithroZipCPU: I gave a talk about it here ->
ZipCPURight now, the XXX to wishbone bridge within AutoFPGA needs to be done manually--as it's own component, but with a given bus as the slave and another as the master.21:05
ZipCPUFascinating ... although it'll take me a while to watch through those ...21:08
ZipCPUmithro: Ever used Verilator?21:18
mithroSorry, be back later meeting21:19
mithroZipCPU: have a look at my talk and then we should chat again22:35
ZipCPUJust watched the youtube video.  Haven't looked at yet at all.22:35
ZipCPUThe youtube video was fun to watch, because it looks like both you and I are being driven by some of the same realizations about creating hardware.22:35
mithroI'm a software engineer at heart who occasionally pretends to know things about hardware ;-)22:36
ZipCPUYeah.  Me too.  I'm very much in my element when I'm writing software.22:36
mithroFL4SHK: SystemVerilog (nor VHDL) is not well supported by the FOSS tools like iverilog, verilator or yosys22:38
juliusbI disagree. I think there's a large chunk of the synthesisable subset which is supported by those tools. It's all of the verification stuff which isn't, and admittedly there's a lot of it, but thankfully we have other ways of doing verification.23:54
--- Log closed Thu Oct 05 00:00:15 2017

Generated by 2.15.2 by Marius Gedminas - find it at!