Saturday, 2019-02-23

*** tpb has joined #opencores00:00
mardinator_ZipCPU: i vaguely understand that the issue is about leaf cells, i understood it before, since i knew the definition, leaf cell should be a module that is outside the hierarchy, in contrast to hierarchical cell it does no instantiations by its own07:06
mardinator_ZipCPU: someone else bonders with this thing07:07
mardinator_ZipCPU: something along the lines of flattening the verilog described here07:50
tpbTitle: 6.2.1.  Module Hierarchy When Accessing Signals (at
ZipCPUmardinator_: Well ... Verilator does support flattening11:08
ZipCPUAlthough, I think it flattens by default11:08
mardinator_is flattening akin for inlining?12:33
ZipCPUNot really13:43
ZipCPUIt's more akin to losing all the structure within your design13:43
mardinator_ok, well , I should look again for the definition of multiplexer, i have read all of that from e-books, it could be that i just confuse some details14:08
mardinator_the single write port seems to have 6or7 multiplexers of 40entries each14:09
mardinator_it may make 8*40 = 280 entries and it appears they get to be multipled with 4 too, the trace also shows that it slightly overshoots14:10
mardinator_ZipCPU: yeah you are correct that flattening is not quite the same, i thought so too...14:11
mardinator_it is more like inlining of a single instance and loosing others indeed14:11
mardinator_i think i rambled a bit, and VCD output is correct still, i just confused the multiplexer, which overshoots the instances14:16
mardinator_cause of code being inaccurate . but it can not be made more accurate easily, so some of the stuff gets left over, and never used by default14:17
mardinator_i wonder if there is a distinction of write and read multiplexers, or would not that make much sense14:19
mardinator_what i thought, was that multiplexer is a concept of resource sharing14:21
mardinator_but looking closer at the dumps of ....Trace.cpp and also debug files of the lints14:23
mardinator_it appears that instead of multiplexing the resources, it multiplexes only the access port14:23
tpbTitle: miaow/instr_info_table.v at master · VerticalResearchGroup/miaow · GitHub (at
mardinator_those crucial multiplexors from there14:25
mardinator_it appears from the log, that those multiplexers have different storages still, that the storage is not shared14:26
mardinator_yeah it actually is not a resource sharing thing, it is a switching inputs to the outputs14:38
mardinator_to one certain output that is14:39
mardinator_ah it is complicated, well the output port still kinda is common probably14:39
mardinator_ZipCPU: i just let you know, that i am completly confused, and have not made any progress17:19
ZipCPUIs the code you are working on posted anywhere?17:32
mardinator_ZipCPU: i think i can post the dumps, but i have not been actively involved posting stuff over the network, however in such hurry as i am witih my things, maybe i could use your help, and may do it later today17:43
mardinator_what could be some service to use, to upload bunch of files or embedded text conviently?17:43
mardinator_first . i have one freak theory, since the decoder_param_en.v has for loop in the definition called in the earlier instr_info_table.v17:44
mardinator_maybe every multiplexer has four instances cause of the for loop that controls the port of17:45
mardinator_now, things get messy, the chip has CU and SIMD arbiters17:46
mardinator_and it may be that over four elements of instances their wavefront ID's get routed to different instance17:47
mardinator_every time17:47
mardinator_and final thing is the freakest observation17:48
mardinator_it maybe that when no port is enabled it will generate a latch17:48
mardinator_it seems highly difficult to read in the verilog, but again the trace.cpp is at another hand very large to process with gnome-calculator, but very confusing is the decoder_param_en.v in the instr_info_table.v it builds a two bit vector from wfid which is 6bits by default?18:04
mardinator_how can one test the 40bits LSBs using only 2bits is pretty much a mistery for me18:06
mardinator_say the value of wfid is 32, nothing should be in the first two bits18:06
mardinator_or maybe it builds a 6bit value for the four different arrays and enables them18:08
mardinator_hmm, it may append the FU to the wfid18:58
*** ZipCPU has left #opencores19:52
*** mardinator_ has quit IRC22:33
*** mardinator_ has joined #opencores22:51
*** mardinator_ has quit IRC23:04

Generated by 2.13.1 by Marius Gedminas - find it at!