Thursday, 2020-03-26

*** tpb has joined #symbiflow00:00
*** tcal has quit IRC00:02
*** tcal has joined #symbiflow01:20
*** citypw has joined #symbiflow01:23
*** tcal has quit IRC01:27
*** tcal has joined #symbiflow01:42
*** Degi_ has joined #symbiflow02:04
*** yeti has quit IRC02:05
*** Degi has quit IRC02:07
*** Degi_ is now known as Degi02:07
*** yeti has joined #symbiflow02:08
sf-slack<shashankmathew8> :wave: I’m here! What’d I miss?02:45
sf-slack<shashankmathew8> Greetings to everyone!02:45
sf-slack<shashankmathew8> I'm an undergraduate student.02:46
sf-slack<shashankmathew8> Studying Electronics and Communication Engineering in India.02:46
sf-slack<shashankmathew8> Graduating in 2021/02:47
sf-slack<shashankmathew8> I hope all here are fine.02:48
sf-slack<shashankmathew8> Click here to view my LinkedIn profile.02:49
sf-slack<shashankmathew8> Let's connect!02:50
sf-slack<shashankmathew8> Click here to view my GitHub profile.02:52
sf-slack<shashankmathew8> Click here to view my StackOverflow profile02:53
sf-slack<shashankmathew8> I am skilled with Verilog, SystemVerilog basics, C, C++ and Python.02:56
sf-slack<shashankmathew8> I would love to join this project and contribute to it.02:56
sf-slack<shashankmathew8> I also know basics of SystemC.02:58
sf-slack<shashankmathew8> As our college is currently closed due to the pandemic, I have time to work on this project.03:00
sf-slack<shashankmathew8> I also know Bash scripting.03:00
*** shashankvm has joined #symbiflow03:05
*** shashankvm has quit IRC03:39
*** shashankvm has joined #symbiflow03:40
*** adjtm has joined #symbiflow04:42
*** adjtm_ has quit IRC04:44
*** Bertl_oO is now known as bertl_zZ04:48
*** bertl_zZ is now known as Bertl_zZ04:49
*** Vonter has quit IRC04:56
*** Vonter has joined #symbiflow04:57
*** OmniMancer has joined #symbiflow05:07
*** OmniMancer1 has quit IRC05:08
*** OmniMancer has quit IRC06:50
*** OmniMancer has joined #symbiflow06:51
shashankvmHI07:01
shashankvmI am an engineering student07:01
*** tonyn14 has joined #symbiflow07:05
*** shashankvm has quit IRC07:21
*** tcal has quit IRC07:39
*** _whitelogger has quit IRC08:06
*** heijligen has quit IRC08:06
*** DraGonBusterz has quit IRC08:06
*** tucanae47 has quit IRC08:06
*** pdp7 has quit IRC08:06
*** daveshah has quit IRC08:06
*** _florent_ has quit IRC08:06
*** brent has quit IRC08:06
*** digshadow has quit IRC08:06
*** hackerfoo has quit IRC08:06
*** kuldeep has quit IRC08:06
*** brent has joined #symbiflow08:06
*** DraGonBusterz has joined #symbiflow08:06
*** tucanae47 has joined #symbiflow08:06
*** hackerfoo has joined #symbiflow08:06
*** _florent_ has joined #symbiflow08:06
*** digshadow has joined #symbiflow08:07
*** daveshah has joined #symbiflow08:07
*** pdp7 has joined #symbiflow08:07
*** pdp7 has quit IRC08:07
*** pdp7 has joined #symbiflow08:07
*** heijligen has joined #symbiflow08:07
*** kuldeep has joined #symbiflow08:07
*** _whitelogger has joined #symbiflow08:08
*** tonyn14 has quit IRC09:07
*** tbisker8 has quit IRC10:08
*** titanbiscuit has joined #symbiflow10:12
*** Bertl_zZ is now known as Bertl10:48
*** az0re has quit IRC11:04
*** Vonter has quit IRC12:12
*** Vonter has joined #symbiflow12:17
*** OmniMancer has quit IRC13:44
*** FFY00 has joined #symbiflow13:47
*** epony has quit IRC15:10
*** titanbiscuit has quit IRC15:13
*** titanbiscuit has joined #symbiflow15:14
*** Bertl is now known as Bertl_oO15:17
*** kraiskil has joined #symbiflow15:39
*** citypw has quit IRC15:43
*** clay_1 has joined #symbiflow15:50
*** clay_1 has quit IRC15:52
*** CMP1 has joined #symbiflow15:53
CMP1Hi all, I am reading the documentation in project XRAY about clocks regions, domains ad HROWs and I have got very confused15:54
CMP1In the overview section is stated that `Clock domains have a fixed height of 50 interconnect tiles centered around the horizontal clock lines (25 above, 25 below)`15:55
CMP1In the glossary the 'clock region' is defined as 'Portion of a device including up to 12 clock domains. A clock region is situated to the left or right of the global clock spine, and is 50 CLBs tall on Xilinx 7 series devices. The clock region includes all synchronous elements in the 50 CLBs and one I/O bank, with a horizontal clock row at its15:56
CMP1center.`15:56
CMP1Isnt that contradicting ? or do I understand it wrong ?15:57
litghostNo contradiction15:58
CMP1A horizontal clock row consists of 12 horizontal clock lines ?16:00
litghostNo, you are misreading16:00
litghostThere are up to 12 clock domains in a device, which are 50 units tall16:01
CMP1each, right ?16:01
CMP1also the ` A clock region is situated to the left or right of the global clock spine, and is 50 CLBs tall on Xilinx 7 series devices` doesnt indicate that the clock region is same as tall ?16:04
litghost?16:04
litghostBoth parts of that sentence is true16:04
CMP1maybe the reason I dont understand it is because I have the notion that one should be superset of the other16:04
litghostA clock region is to the left or right16:04
litghostAnd is 50 units tall16:04
litghostWhat should be a super set of the other?16:06
CMP1clock region and clock domain16:06
litghostClock region (or CMT) is the only concept16:07
*** tcal has joined #symbiflow16:07
litghostClock domain's are something else entirely16:07
litghostSo clock domain -> Clock region16:07
CMP1So clock regions are the boxes that you can see in vivado and in 7 series they are up to 12 in number. Each of them is 50 units tall (no info about withd? ) and those 50 are split in half by the Horizontal clock row (which includes 12 clocks with that number having nothing to do with the number of clock regions)16:10
CMP1how correct is that statement ?16:10
litghostYes16:14
litghostWidth is weird, because some CMT's have hard blocks and such16:15
CMP1I see and that 12 is refering to one half of the device so they can actually be 24?16:15
litghostWhich parts have 24 CMT's16:16
litghost?16:16
CMP1I dont know, I just found this line in UG47216:18
CMP1`The number of clock regions varies with device size, from one clock region in the smallest device to 24 clock regions in the largest one`16:18
CMP1so I based my assumption on that16:19
CMP1Leaving that asside and combining the rest I have the following:16:34
CMP1Clock domain is defined asPortion of the device controlled by one clock. A clock domain is part of a horizontal clock row   By that I understand that since HROW has 12 horizontal clocks and each clock region has one HROW this means that each clock region has 12 clock domains.16:34
litghostIncorrect16:36
CMP1In what part ?16:36
litghostAll of it16:36
litghostSentence 1 is mostly wrong16:37
litghostSentence 2 is completely wrong16:37
litghostA clock domain is simply the netlist of things clocked by common clock16:37
CMP1by sentence one you mean this part, right ? `Clock domain is defined asPortion of the device controlled by one clock. A clock domain is part of a horizontal clock row`16:38
litghostThat is two sentences16:38
CMP1so this is both the mostly wrong and the completely wrong part16:38
litghostYes16:38
litghostA clock domain is simply the netlist of things clocked by common clock16:39
litghostThe 7-series fabric provides BUFR, BUFMR, BUFG and BUFH drivers to express clocks16:39
litghostThe typical clocking arrangement, is to first bring the clock to a BUFG, which drives 1 of 32 global clock spines that run to all CMT's16:40
CMP1so it does not create a topological reagion ? ( By the way those two sentenses are copied from the glossary entry of clock domain should we issue a "bug" ? )16:40
litghostThe horizontial clock spines (12 per CMT) are driven from BUFH, which can connect to the global clock spine (or other sources)16:40
litghost"topological region"? meaning what?16:41
litghostCMP1: Have you read https://www.xilinx.com/support/documentation/user_guides/ug472_7Series_Clocking.pdf16:42
CMP1meaning a specific set of tiles. But probably it cant happen because theoretically if you have 100% utilization and only one clock you end up with one clock domain. So number of clock domains depend on how many different clocks you define in your design16:42
CMP1is that correct ?16:43
litghostTrue, but clock domains are a totally independent concept from clock region (e.g. CMT)16:43
litghostCMT's are defined the hardware design16:43
CMP1litghost not entirely but thats where I got the 25 clock regions number from16:43
litghostCMP1: Do you understand figure 1-1?16:44
litghostAlso figure 1-216:44
CMP1Not entirely, I understand the clock regions and the HROWs that are inside them. I dont  understand why it has three collumns though instead of the 2 I expected16:46
litghostThe GT column?  That isn't always present16:47
CMP1good then16:49
CMP1about the second one16:49
litghostThe CMT column?16:49
CMP1the clock back bone is always next to IOs ?16:49
litghostYes16:49
litghostThat is where the PLL and MMCM's are located16:49
litghostAlong with the BUFIO's, etc16:49
CMP1yes I think I understand that there are several collumns in each clock region, if its a clb collumn it will have 50 tiles , if its a BRAM 10 etc16:50
litghostYes16:50
litghostThe height of the BRAM tile is 516:50
litghostHeight of a CLBLL is 116:50
litghostDSP's are 516:50
CMP1nice16:50
CMP1now about the HROW, its horizontal, and I guess that the 12 clocks are inside it but then go perpendicular to reach the elements of its column ?16:52
litghostYes16:53
CMP1By counting the number of CLBs, they are 12 so BRAM, DSPs share the clock with their neighboring CLBs ?16:54
CMP1( I meant CLB collumns)16:54
litghostEvery logic tile belongs to a CMT16:54
litghostEvery logic tile in the same CMT shares the same CMT clock sources (BUFH, BUFR, BUFMR)16:55
litghostBUFIO16:55
CMP1I got a bit confused here, if they all share the same clock what are the 12 clock lines of HROW for ?16:57
litghostThey don't share the same clock16:58
litghostIn the horizonital spine there are 12 BUFH output wires16:58
litghostand 4 BUFIO, 4 BUFR and 8 BUFMR wires16:58
CMP1I should probably read what those types are first16:59
litghostI recommend just opening Vivado and looking at the routing resource view17:00
litghostPicture, 1000 words, etc,etc17:00
CMP1I think I have understood though the following part of the glossary `Portion of a device including up to 12 clock domains` It means that since the hrow has 12 clocks you can create up to 12 clock domains there, is that correct ?17:00
litghostNo17:01
CMP1And yes I totally agree with that I have it open and look at it as we speak17:01
CMP1then where does this limitation come from ?17:03
litghostLimitation?17:04
litghostWhat limitation?17:04
CMP1That a clock region is `Portion of a device including up to 12 clock domains.`17:05
litghostSo if each clock domain is driven by a BUFH (which is typical), then each CMT can only have 12 BUFHs, therefore only 12 domains17:07
litghostTechinically speaking you can more domains if you get creative and use BUFR's, BUFIO's and BUFMR's, but then you are straying from the global clock spine and have to worry about skew17:08
CMP1So what I said earlier is correct as long as you keep using the global spine ?17:09
litghostWhich sentence?17:09
CMP1I think I have understood though the following part of the glossary `Portion of a device including up to 12 clock domains` It means that since the hrow has 12 clocks you can create up to 12 clock domains there, is that correct ?17:10
litghostBasically17:12
litghostAnd that statement is full of caveats17:13
litghostFor example, if you wanted to clock gate some logic (for power savings), but have that logic be on the sameish domain as the other logic, that would require two BUFH's17:13
litghostThe more specific and correct version of the above sentence is that a CMT has 12 BUFH's, which could accommodate 12 clock domains17:14
CMP1great ! thank you very much for all your patience17:15
litghostAgain, a CMT can have more than 12 clock domains if you use: interconnect based clocks, BUFR's, BUFMR's, BUFIO's17:15
litghostHowever BUFR/BUFMR/BUFIO and interconnect drive clocks are not typical usage at all17:15
CMP1that means that vivado would never use them without you asking specifically for it, right ?17:16
litghostCorrect17:16
litghostI believe by default all clocks get an implicit BUFG, which then requires a BUFH to enter the CMT17:16
*** az0re has joined #symbiflow17:16
litghostTherefore, 12 clock domains per CMT is a reasonable approximation of the truth for most users17:17
litghostI want to be clear though, the clock domain may span multiple CMT's17:17
litghostThat is typical and expected17:17
CMP1I see, its because if you have a big design with a signle clock it will need to span to more area than the one of a CMT, right ?17:19
litghostSure17:19
CMP1and when that happens it gets connected to one of the 12 clocks of the neighbouring CMT, correct ?17:20
litghostno17:21
litghostThe global clock spine has capacity for 32 clocks17:21
litghostWhen using BUFGs, the domain begins at the BUFG, then enters a CMT via a BUFH17:21
litghostThe whole point of the global clock spine is that neighbooring CMT's don't matter17:22
litghostBUFMR affects neighbooring CMT's, but again that is not typical usage17:22
CMP1So every CMT that is beeing used will have one out of 12 HROW clocks connected to the global clock spine ?17:24
litghostNo17:25
litghostEach clock domain in use in a CMT from the global clock will consume 1 BUFH17:26
CMP1so if we assume all CMTs are in the same clock domain17:28
CMP1they will have to spend one BUFH each to get connected in the global clock17:28
CMP1right ?17:28
litghostyes17:28
litghostAnd each CMT has 12 BUFH's that can connect to any of the global clock spine clocks17:29
litghostAmongst other sources17:29
CMP1great17:30
CMP1thank you !17:30
*** epony has joined #symbiflow17:38
*** CMP1 has quit IRC18:32
*** buzepeng has joined #symbiflow18:34
lambdadaveshah: any idea what could be choking nextpnr-xilinx routing with newer yosys? not sure if you saw my messages the other day, but it suddenly takes 2h to route my design and timing is horrible.18:51
*** buzepeng has quit IRC18:51
daveshahI highly doubt it is a Yosys change, probably random bad luck. I'm trying to chase down some odd router bugs, but trying a different --seed value would be interesting18:51
lambdadaveshah: yeah, I can't reproduce it anymore now. it was reproducible before, interestingly19:01
lambdawhat's the default seed nextpnr uses?19:01
daveshah1 iirc19:01
lambdahm, so also deterministic19:01
daveshahThere's an occasional bug where the router gets stuck "fighting" for a particular wire often around BRAM, it was probably some manifestation of that19:02
*** kraiskil has quit IRC19:03
*** tcal has quit IRC19:06
lambdadaveshah: by the way, I tried just commenting out https://github.com/daveshah1/nextpnr-xilinx/blob/xilinx-upstream/xilinx/python/xilinx_device.py#L467-L468, the commit that introduced it (f45c1cb38) sounds like it won't affect me, and I want to use all my PLLs ;)19:08
tpbTitle: nextpnr-xilinx/xilinx_device.py at xilinx-upstream · daveshah1/nextpnr-xilinx · GitHub (at github.com)19:08
lambdaghdlsynth doesn't support inout yet, so won't get very far with DRAM anyways, but if it works I'm one step closer19:08
lambdawelp, fasm2frames.py doesn't like that. oh well19:28
daveshahYeah, I don't think the bitstream data is there for those tiles yet19:31
*** az0re has quit IRC20:16
*** az0re has joined #symbiflow20:16
*** OmniMancer has joined #symbiflow20:19
*** Finde has quit IRC20:33
*** Finde has joined #symbiflow20:35
*** tcal has joined #symbiflow20:58
litghostlambda: Which tile are you trying to put a PLL in?21:15
litghostOn the A50 fabrics, the only PLL's are the ones in CMT_TOP_L_UPPER_T tile types21:15
litghostSo I'd expect uncommenting that line would have no affect21:16
*** _whitelogger has quit IRC21:16
*** _whitelogger has joined #symbiflow21:18
*** _whitelogger has quit IRC21:22
*** _whitelogger has joined #symbiflow21:25
*** _whitelogger has quit IRC21:28
*** _whitelogger has joined #symbiflow21:31
mithrolambda: I would be interested to see how vpr does with your design if it is open source? We could even add it as a test bench in https://github.com/SymbiFlow/fpga-tool-perf if it is hitting some type of pathological behaviour.22:39
tpbTitle: GitHub - SymbiFlow/fpga-tool-perf: FPGA tool performance profiling (at github.com)22:39

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!