sb0 changed the topic of #m-labs to: ARTIQ, Migen, MiSoC, Mixxeo & other M-Labs projects :: fka #milkymist :: Logs http://irclog.whitequark.org/m-labs
fengling has joined #m-labs
<GitHub73> [pyparser] whitequark pushed 1 new commit to master: http://git.io/vfzRu
<GitHub73> pyparser/master fd7209a whitequark: Add source.Rewriter.
<whitequark> sb0: ^ see it's useful already :]
* whitequark ← can't be arsed to convert ' to " by hand, and regexps don't cut it
<cr1901_modern> sb0: Is Migen only compatible with certain Xilinx FPGAs? I've set up my new platform in Migen- just enough to get simple target to compile, and the Verilog compiler errors out depending on what FPGA I choose.
<cr1901_modern> (I chose the "correct" FPGA first, got an error, and then replaced it with another Spartan-6 FPGA from a different board, which succeeded)
<cr1901_modern> Nevermind for now- I didn't do everything required to add my FPGA (Spartan-3 variant)
<sb0> whitequark, nice :)
<sb0> cr1901_modern, no, it works on altera and lattice as well, and someone is making an asic even
<sb0> cr1901_modern, it would help if you let us know what error you got
<cr1901_modern> ERROR:HDLCompilers:26 - "F:/Projects/misoc/extcores/lm32/lm32_config.v" line 186 expecting 'EOF', found 'function'
<sb0> ah, that's a lm32 problem, not a migen problem
<cr1901_modern> indeed, line 186 has a function, but why is it complaining for one FPGA but not another?
<sb0> that's a known xst problem
<sb0> functions only work when targeting certain fpgas. go complain to xilinx ;)
<sb0> migen itself never uses function
<cr1901_modern> I don't think that's going to make any difference, since Xilinx is phasing out webpack
<cr1901_modern> but my mistake :P
<sb0> there's a flag in the lm32 settings to replace the function i think
<cr1901_modern> There's also this amazing thing called "Googling" I should do. Second result: https://github.com/m-labs/misoc/issues/3
<sb0> unfortunately, there isn't a single clog2 implementation that would work with all synthesizers
<cr1901_modern> I'm still trying to understand the bug. I haven't done Verilog work in 3 years before this project.
<cr1901_modern> sb0: Yes, there is a flag. Also need to set the language setting to SystemVerilog
<cr1901_modern> I hope this doesn't cause a nice cascade of errors. But knowing my luck, it will.
<cr1901_modern> Okay, far as I can tell, xst does not support SystemVerilog, so I'm screwed :/. I guess I'll see if I can't get another board instead
<cr1901_modern> Okay, I was wrong. The solution is to add the following command to the xst file: -use_new_parser yes
<cr1901_modern> I'll add that as a comment to the bug later
sb0_ has joined #m-labs
<cr1901_modern> Yay, the design of LM32 fits on my FPGA after doing some serious trimming!
<sb0_> cr1901_modern, cool, I guess you can send a patch for that. I didn't know about this xst option.
<cr1901_modern> My guess it's meant for Spartan-3 designs that don't care about backwards compatibility
<cr1901_modern> this being one of them
<cr1901_modern> Additionally, it's undocumented lol
<mindrunner> this uart drives me nuts!!! :/ Is there anybody out there gatting a reliable connection between computer and pipistrello with more than 230400baud?
travis-ci has joined #m-labs
<travis-ci> mithro/migen#34 (atlys-platform - 66dcaff : Tim 'mithro' Ansell): The build passed.
travis-ci has left #m-labs [#m-labs]
travis-ci has joined #m-labs
<travis-ci> mithro/migen#35 (master - b93df69 : Yann Sionneau): The build passed.
travis-ci has left #m-labs [#m-labs]
<GitHub50> [pyparser] whitequark pushed 1 new commit to master: http://git.io/vfzAs
<GitHub50> pyparser/master a9fd0a0 whitequark: Add support for collecting grammar coverage.
<whitequark> made a tool for collecting grammar coverage. https://i.imgur.com/tyT7fkW.png
_florent_ has joined #m-labs
<whitequark> sb0: imagine a coverage tool for code running on LM32, that could show you condition coverage
<GitHub126> [misoc] enjoy-digital pushed 1 new commit to master: http://git.io/vfzh3
<GitHub126> misoc/master 2d56d32 Florent Kermarrec: liteeth/mac/core: simplify and fix padding
<sb0_> I'm in the hk hackerspace right now and people are using it to conduct the most boring corporate job interviews T_T
<sb0_> "Do you have an iphone?"
<sb0_> lol!
<sb0_> they can get 85% off their vacuum gear here and all they think about is this sort of bland stuff
<sb0_> whitequark, how would that work? the compiler would insert "mark this code block as reached" statements?
<whitequark> yea
<whitequark> usually you get a report with discreteness of a line
<whitequark> which is not actually useful if you think about it
<whitequark> pathetically few tools can do condition coverage ("did all parts of the boolean expr become true/false" / maybe even "did all possible combinations happen")
<whitequark> in cases where this is overkill for testing, you might still want to do something like path tracing
<sb0_> pathetically plenty of people still use C for a lot of things
<sb0_> ;)
<whitequark> well, you can do that in C
<whitequark> that's how sqlite is tested
<whitequark> but they have their proprietary testsuite or something
<sb0_> how does that work? C parser -> AST modification -> unparser -> gcc?
<whitequark> probably
<sb0_> or did they make a clang plugin or something?
<whitequark> it predates clang
<whitequark> today yeah, a clang plugin or more likely patch
<whitequark> you don't strictly speaking need an unparser. you can just rewrite the source carefully
<whitequark> like i do
FabM has quit [Remote host closed the connection]
FabM has joined #m-labs
sb0_ has quit [Quit: Leaving]
<kyak> most tools instrument source code itself. Some are capable to instrument assembly code (depending on why you are doing coverage analysis)
<kyak> condition coverage is considered a weaker metric than, say, MC/DC coverage
<kyak> most proprietary tools that do coverage analysis also support MC/DC
<GitHub20> [misoc] enjoy-digital pushed 2 new commits to master: http://git.io/vfgWs
<GitHub20> misoc/master 5b48e7b Florent Kermarrec: liteeth: finish with_preamble_crc vs with_hw_preamble_crc renaming
<GitHub20> misoc/master 130fd19 Florent Kermarrec: liteeth/core/ip: simplify ip rx checksum control
_florent_ has quit [Ping timeout: 240 seconds]
fengling has quit [Ping timeout: 272 seconds]
fengling has joined #m-labs
<GitHub119> [migen] enjoy-digital pushed 2 new commits to master: http://git.io/vfgVB
<GitHub119> migen/master 61c3efc Florent Kermarrec: migen/test: rename asic_syntax to test_syntax and simplify
<GitHub119> migen/master bc30fc5 Florent Kermarrec: migen/fhdl: give explicit names to syntax specialization when asic_syntax is used
fengling has quit [Ping timeout: 252 seconds]
_florent_ has joined #m-labs
fengling has joined #m-labs
<GitHub177> [artiq] sbourdeauducq pushed 1 new commit to master: http://git.io/vfg62
<GitHub177> artiq/master 8f5f428 Sebastien Bourdeauducq: runtime/main: fix sys_now
fengling has quit [Quit: WeeChat 1.1.1]
FabM has quit [Quit: ChatZilla 0.9.91.1 [Firefox 37.0.2/20150415140819]]
travis-ci has joined #m-labs
<travis-ci> m-labs/artiq#142 (master - 8f5f428 : Sebastien Bourdeauducq): The build passed.
travis-ci has left #m-labs [#m-labs]
<GitHub105> [migen] enjoy-digital pushed 1 new commit to master: http://git.io/vfg94
<GitHub105> migen/master 67702f2 Florent Kermarrec: migen/fhdl/verilog: _printheader/_printcomb, remove default value of arguments which are not used in internal functions. (thanks sb)
<GitHub138> [pyparser] whitequark pushed 4 new commits to master: http://git.io/vfg92
<GitHub138> pyparser/master edf6bae whitequark: Basic human-friendly AST assertions in parser tests.
<GitHub138> pyparser/master 83287d6 whitequark: Display detailed coverage information on Alt-rules.
<GitHub138> pyparser/master 1da96c6 whitequark: Clear up a few comments in lexer.
<whitequark> kyak: yeah I used condition coverage in a generic sense
<whitequark> "anything that is more specific than line numbers"
travis-ci has joined #m-labs
<travis-ci> m-labs/migen#17 (master - 67702f2 : Florent Kermarrec): The build is still failing.
travis-ci has left #m-labs [#m-labs]
<kyak> whitequark: i see
<GitHub76> [migen] enjoy-digital pushed 1 new commit to master: http://git.io/vfgb8
<GitHub76> migen/master 73a1687 Florent Kermarrec: migen/test: for now desactivate test_generic_syntax (travis-ci's Verilator needs to be upgraded?)
_florent_ has quit [Quit: Leaving]
travis-ci has joined #m-labs
<travis-ci> m-labs/migen#18 (master - 73a1687 : Florent Kermarrec): The build was fixed.
travis-ci has left #m-labs [#m-labs]
<mindrunner> can i easily use the pipistrello's usb_fifo with the liteusb/ft2232h phy module? does it behave like an ftdi device on the io pins? what happens to the serial port then? also, isnt it generally better to use the seial io device of the board via io pins, instead of the ftdi wired serial?
sb0 has quit [Ping timeout: 244 seconds]
antgreen has joined #m-labs
_florent_ has joined #m-labs
<_florent_> hi mindrunner: for now it's not possible to use the ft2232h phy since it uses synchronous mode and the pipistrello is wired in asynchronous mode
<_florent_> I want to work on that for the minispartan6
siruf has quit [Ping timeout: 272 seconds]
<mindrunner> _florent_, thanks
<mindrunner> so there is nothing available yet to use the usb_fifo?
<mindrunner> is there any examples on how to create a second serial port?
<_florent_> for the usb fifo: not in misoc for the asynchronous mode, don't know why they used this mode???
<mindrunner> i created another UARTPHY device and UART, like it is done in basesoc, passed the io pins as pads and created another interrups as well as CSR
<_florent_> self.submodules.second_uart = UARTPHYSerial(platform.request("second_uart_pins", clk_freq, baudrate=115200)
<mindrunner> yea
<_florent_> you don't necessary need interrupts
<mindrunner> ah ok
<mindrunner> I can just leave them away?
<_florent_> you can just drive the tx.sink to send data and get you rx data on rx.source
<mindrunner> how do I read/write then from software side?
<_florent_> ah you want to control it with software, then you have to use this:
<_florent_> self.submodules.second_uart_phy = UARTPHYSerial(platform.request("second_uart_pins", clk_freq, baudrate=115200)
<_florent_> self.submodules.second_uart = UART(self.second_uart_phy)
<_florent_> add a csr_map for second_uart
<_florent_> and then the second_uart registers will appears in your csr.h
<_florent_> to write and read, you can have a look at the uart driver
<mindrunner> yeah, thats what i assumed, but somehow the registers are not being generated
<_florent_> hmmm, are you sure you are using self.submodules. and not self.
<mindrunner> self.submodules.uart2_phy = UARTPHYSerial(platform.request("serial2"), clk_freq=self.clk_freq, baudrate=3000000)
<mindrunner> self.submodules.uart2 = UART(self.uart2_phy)
siruf has joined #m-labs
sb0 has joined #m-labs
<_florent_> it works for me:
<mindrunner> it feels like that sometimes for some reason, the csr.h is not being updated
<mindrunner> i had a similar problem a couple of days ago
<mindrunner> couldnt figure out yet why
<_florent_> what's your build command?
<_florent_> to be sure you can add build-headers to your command
<mindrunner> i am using 'all'
<mindrunner> oh, that does not rebuild headers?
<mindrunner> hmm, should... it says build-bios =true and this includes build-headers
<_florent_> strange
* sb0 has the impression that all embedded tcp/ip stacks are little puddles of shit and considers developing a nih protocol over udp
<mindrunner> he generated the interrupt now, but not the CSRs
<mindrunner> do i have to AutoCSR something, or anything i could miss?
<_florent_> the class where you instanciate the uart should derive from AutoCSR yes
<mindrunner> deriving from BaseSoC is not sufficient?
<_florent_> yes it should be OK
<mindrunner> weird.
<_florent_> you can share your code,
<_florent_> ?
<mindrunner> i think i just found my problem
<mindrunner> hang on
<mindrunner> grr, the only thing i dont like on python is the line indentation instead of brackets....
<mindrunner> the whole __init__ method somehow moved to the left and was therefore never executed :/
<sb0> FINALLY got that stupid lwip to work correctly
<_florent_> ah???
<sb0> weird shit it does when it runs out of memory
<sb0> without warning, of course
<mindrunner> cheers _florent_ , I need to goto bed now. will check the serial port tmorrow
<sb0> ah damn that was annoying
<_florent_> np mindrunner
<_florent_> so what was the exact issue?
<sb0> not enough heap space/pbufs in the pool
<_florent_> so increased PBUF_POOL_SIZE?
<_florent_> so you
<sb0> among other things. haven't pinpointed the exact parameter yet
<sb0> now ethernet is finally faster than uart *g*
<sb0> _florent_, where did you get the original lwipopts from?
<whitequark> that's lwip on lm32?
<sb0> or1k
<_florent_> sb0: I don't remember exactly, maybe from here:
<_florent_> lly faste
<_florent_> sorry
<sb0> hmm nope you have PBUF_POOL_SIZE=4
<sb0> which is very small
<_florent_> hmm I don't remember then
<sb0> it looks like something for a small microcontroller or so
<cr1901_modern> sb0: Re: embedded TCP/IP, don't you find it at least interesting that certain CPUs have anachronistically been given Internet access (6502/Z80)? :P
mumptai has joined #m-labs
aeris has quit [Ping timeout: 252 seconds]
aeris has joined #m-labs
_florent_ has quit [Quit: Leaving]
mumptai has quit [Remote host closed the connection]