Tuesday, 2019-11-19

*** tpb has joined #yosys00:00
*** dys has quit IRC00:01
*** gorbak25 has quit IRC00:02
*** gorbak25 has joined #yosys00:05
*** cr1901_modern has quit IRC00:25
*** cr1901_modern has joined #yosys00:26
*** X-Scale has joined #yosys01:02
*** dxld has quit IRC01:07
*** dxld has joined #yosys01:15
*** _whitelogger has quit IRC01:27
*** _whitelogger has joined #yosys01:30
*** _whitelogger has quit IRC01:51
*** _whitelogger has joined #yosys01:53
*** rohitksingh has quit IRC03:39
*** nrossi has joined #yosys05:20
*** dys has joined #yosys05:42
*** turq is now known as turqq05:45
*** turqq is now known as turq05:49
*** rohitksingh has joined #yosys06:24
*** FabM has joined #yosys08:22
*** show1 has quit IRC08:43
*** show1 has joined #yosys09:10
*** kraiskil has joined #yosys09:14
*** kraiskil has quit IRC09:56
*** kraiskil has joined #yosys10:10
ZirconiumXI'm pretty sure my LUT bit order is wrong, but I don't really know how to permute the bits in Verilog to get the right order10:38
*** proteusguy has quit IRC11:52
*** dys has quit IRC12:00
*** proteusguy has joined #yosys12:06
*** rohitksingh has quit IRC12:16
*** citypw has joined #yosys14:51
*** kraiskil has quit IRC15:02
pepijndevosWhat happens to initial values on an FPGA that does not support them? Will they get silently ignored? Will it cause an error?15:19
daveshahIn ASIC synthesis where they are never supported, they are generally left unprocessed and therefore give a warning15:21
daveshahI think the same is true for ECP5 when there is a conflict between init value and async SR value15:22
daveshahIt is only a warning rather than error because that's what the vendor tools do too15:22
pepijndevosis there a __techmap_warn though hehe15:22
daveshahJust leave the init value unprocessed15:23
daveshahYou'll then get a warning at the end15:23
daveshahfrom check15:23
daveshahThe $warning system task might work in techmap too but I haven't tried it15:24
pepijndevosHow do you (not) proccess a init value? Is that what   wire _TECHMAP_REMOVEINIT_Q_ = 1; does?15:25
daveshahI have not used the techmap init stuff, but that sounds like it15:25
*** emeb has joined #yosys15:58
*** FabM has quit IRC16:22
*** kraiskil has joined #yosys16:33
*** kraiskil has quit IRC16:48
*** citypw has quit IRC16:49
*** kraiskil has joined #yosys16:53
*** kraiskil has quit IRC17:00
*** kraiskil has joined #yosys17:12
*** kraiskil has quit IRC17:17
*** m_w has joined #yosys17:34
*** m_w has quit IRC18:02
*** proteusguy has quit IRC18:08
*** proteusguy has joined #yosys18:21
*** fsasm has joined #yosys18:42
*** dnotq has joined #yosys19:27
*** kraiskil has joined #yosys19:28
*** bobzoidting has joined #yosys19:37
*** rohitksingh has joined #yosys19:47
*** rohitksingh has quit IRC20:27
*** rohitksingh has joined #yosys20:34
*** fsasm has quit IRC20:36
*** fsasm has joined #yosys20:47
*** rohitksingh has quit IRC20:52
*** nrossi has quit IRC20:55
*** dys has joined #yosys21:06
*** fsasm has quit IRC21:11
dnotqI have some questions about nextnpr, but I don't see any channel specifically for it.  It is ok to talk about nextnpr here?21:28
daveshahYes21:28
dnotqGreat!  So I have the EPC5-based badge from the HackADay supercon, but it has a known layout problem with the external clock in that is was not routed to a valid global clock pin.21:30
daveshahnextpnr will use general routing until it reaches global routing resources21:30
daveshahIt is less strict than Diamond about this21:30
dnotqOk.  So does the EPC5 have a primitive similar to the Xilinx BUFG that can route a logic signal to the clock fabric?21:31
daveshahIt is DCCA. But nextpnr will insert one into any clock signal anyway, so no need for one in the design21:32
daveshah[Technically speaking DCCA is closest to something like BUFGCE in Xilinx, as it also provides an enable input for clock gating]21:33
whitequarkactually, a related question: does ECP5 have a genuine equivalent of BUFGCE?21:34
dnotqDo you know if Diamond can be convinced to use the DCCA to accept the logic input as a clock?  I'm only interested in Diamond right now because all of my existing HDL is VHDL, so until I convert to Verilog I'm stuck with the vendor tools.21:34
daveshahwhitequark: yes, DCCA should be glitchless too21:35
daveshahdnotq: no, I think Diamond needs some more hackery too21:35
whitequarkthe docs aren't super clear but doesn't it only enable a clock if you toggle the selection signal a few times?21:35
daveshahThere is some VHDL support with the open tools - see https://github.com/tgingold/ghdlsynth-beta21:35
tpbTitle: GitHub - tgingold/ghdlsynth-beta: VHDL synthesis (based on ghdl) (at github.com)21:35
daveshahwhitequark: I don't think so21:35
daveshahAre you sure you aren't looking at the clock selection primitive (DCS)21:36
daveshahdnotq: I think setting the environment variable WARNING_ON_PCLKPLC1 = 1 will disable the error in Diamond21:37
daveshahBut I haven't tried it in this case21:38
*** bobzoidting has quit IRC21:38
dnotqHow does nextnpr determine timing?  In all the examples I have seen so far, there does not appear to be any information about a clock's period or frequency in the UCF (LPR? I can't remember the extension) file.21:38
daveshahYou can use a "FREQUENCY NET" constraint in the lpf; or a `--clock` command line argument which controls all clocks21:39
daveshahClocks on PLL outputs are automatically derived for ECP521:39
daveshahThe HAD badge project looks to use the other approach; though; which is a Python script that sets up the constraints21:40
daveshahsee https://github.com/Spritetm/hadbadge2019_fpgasoc/blob/master/soc/clock-constrainsts.py21:40
tpbTitle: hadbadge2019_fpgasoc/clock-constrainsts.py at master · Spritetm/hadbadge2019_fpgasoc · GitHub (at github.com)21:40
dnotqI tried some of those constraints and the tool always said it was using 200MHz for all clocks.  Maybe because it never got past the error of trying to use the GPIO as an input to the PLL?21:40
daveshahnextpnr doesn't care about that21:41
dnotq.py?  The constraints are in a python file?21:41
daveshahThey can be21:41
daveshahIt's the current arch-independent way of timing constraints in nextpnr, if you don't want to use the LPF route21:41
dnotqhmm.  Ok.  Clearly I'm coming from a Xilinx / ISE environment, so all of this is new to me.21:41
whitequarkdaveshah: ohh right, that was indeed DCSC21:42
dnotqIs there an advantage of using the .py over the LPF?  Is LFP Lattice specific?21:42
daveshahYes21:42
whitequarkthe docs for DCCA don't say that it's glitchless21:42
daveshahThe sim model looks like a glitchless buffer21:42
whitequarkah alright, good to know21:43
daveshahOh the docs do say it is glitchless (the sysCLOCK doc anyway)21:44
daveshah> Figure 13. Glitchless DCC Functional Waveform21:44
whitequarkohh I see, not the libraries guide21:45
whitequarkthanks21:45
daveshahThe sysCLOCK doc is a very nice21:46
daveshah*one21:46
daveshahlots of fairly low level internal detail on the clock routing too21:46
dnotqI'm wondering, is there something about the Lattice FPGAs that make them more appealing to be some of the first devices supported by yosys/nextnpr over other manufacturers?22:11
daveshahThe simplicity was the reason for the iCE40 being the starting point for open FPGA tooling22:12
daveshahThe ECP5 is as much coincidence than anything else (architecturally they are totally different as they were designed by different companies)22:13
dnotqWhat is the effort like to add other FPGAs?  And what would someone need to know in order to contribute to such an effort?22:18
daveshahI've been playing about with adding Xilinx support but it's not really end user ready22:27
daveshahThe biggest issues being slow routing and a lack of any meaningful timing data22:27
daveshahhttps://github.com/daveshah1/nextpnr-xilinx22:27
tpbTitle: GitHub - daveshah1/nextpnr-xilinx: Experimental flows using nextpnr for Xilinx devices (at github.com)22:27
daveshahIf you want to play with it and see what goes horribly wrong then that is definitely helpful22:27
daveshahIt might also be worth asking on #symbiflow - that channel covers the Xilinx work including bitstream stuff and another place and route option (VPR)22:29
dnotqOk, I'll see what I can do. :)  I'm interested in helping.22:29
daveshahAwesome!22:29
dnotqI'm not familiar with symbiflow.22:30
daveshahmithro did a talk about it at HaD. I think there might be a video of it22:30
dnotqCool, I'll do some searching.22:31
dnotqI really like the low-level stuff, and had I realized it earlier in life I think I would have been a chip designer.  But FPGAs seem to satisfy that need for me. :)22:32
daveshahIt's very good fun :)22:33
mithrohttps://www.youtube.com/watch?v=EHePto95qoE22:33
dnotqAh, nice.  From the man himself even! ;)22:34
dnotqOh crap, that video is from this year!  I was there...  Not sure how I missed this talk!?22:37
*** emeb has quit IRC23:49

Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!