tpb has quit [Remote host closed the connection]
tpb has joined #litex
pizzaman has joined #litex
pizzaman has quit [Ping timeout: 240 seconds]
rohitksingh has joined #litex
rohitksingh has quit [Ping timeout: 264 seconds]
rohitksingh has joined #litex
freeemint has quit [Ping timeout: 264 seconds]
rohitksingh has quit [Ping timeout: 276 seconds]
rohitksingh has joined #litex
<xobs> Thanks for that, _florent_ . And because of the `fields` support of CSRs, I can make a non-breaking change to the USB stack and the control bits remain the same: http://rm.fomu.im/usb.html#usb-out-ctrl
<tpb> Title: USB LiteX SoC Project documentation (at rm.fomu.im)
<xobs> (bit 0 used to be "advance the fifo")
_whitelogger has joined #litex
<xobs> Is there any advantage to using a CSRConstant versus a CSRStatus? Easier to meet timing, lower resource usage, something like that?
<xobs> I just tried to move from using CSRStatus to CSRConstant, and the resource usage went up slightly.
<_florent_> xobs: If CSRStatus is connected to a constant value, i would expect logic resource to be very similar between CSRConstant vs CSRStatus, i would need to check why CSRConstant seems to use a bit more resource
<xobs> _florent_: It's negligible. Probably just lost in the noise. But that's nice to know that it should be almost the same.
<_florent_> xobs: btw, to support we signal on CSRStatus, i had to rework the Wishbone 2 CSR bridge (to be sure read accesses are only valid one cycle) and also made it asynchronous (to reduce latency/simplify the code). I tested on a Xilinx design and it seemed to be fine for resource usage/timings, have you noticed a difference on foboot?
<xobs> _florent_: I haven't tried it on real hardware yet, but I will try it soon.
_whitelogger has joined #litex
freeemint has joined #litex
freeemint has quit [Quit: Leaving]
freeemint has joined #litex
freeemint has quit [Remote host closed the connection]
freeemint has joined #litex
freemint has joined #litex
tpb has quit [Remote host closed the connection]
tpb has joined #litex
rohitksingh has quit [Ping timeout: 264 seconds]
rohitksingh has joined #litex
rohitksingh has quit [Ping timeout: 245 seconds]
freemint has quit [Remote host closed the connection]
freemint has joined #litex
CarlFK has left #litex [#litex]
<keesj> I am getting started again (installed the xilinx vivado stuff) and used the setup_litex.py to setup the system. I want to test litesdcard and was able to generate the bit stream. but running ./arty.py load in the examples directory returns [loading]...
<keesj> /bin/sh: 1: source: not found
<keesj> and && vivado tcl not found . I think the lines might be bash specific
<keesj> yes.. if I reconfigure bash as main shell (dpkg-reconfigure dash and select no ) it works
<keesj> "works" is ERROR: [Labtoolstcl 44-469] There is no current hw_target.
<keesj> (need to udev I think)
freemint has quit [Ping timeout: 245 seconds]
<_florent_> keesj: yes that's probably related to udev
somlo has quit [Ping timeout: 244 seconds]
somlo has joined #litex
somlo has quit [Remote host closed the connection]
somlo has joined #litex
forksand has quit [Ping timeout: 265 seconds]
forksand has joined #litex
CarlFK has joined #litex
freemint has joined #litex
Finde has joined #litex
cansu has joined #litex
freemint has quit [Ping timeout: 264 seconds]
rohitksingh has joined #litex
freemint has joined #litex
rohitksingh has quit [Ping timeout: 240 seconds]
<scanakci> Hi all, I am a 4th-year grad student from Boston University and recently started a project that involves Litex. So far, I had the chance to read a bunch of documents from both litex and litex-buildenv repos and also spent some time to have a basic understanding of code hierarchy in litex.
<scanakci> As a first step, we would like to have a minimal version of this SoC and simulate it. I will appreciate if you could give some directions related to this. I have some questions before diving into the project, please bear with me for nonsense or meaningless questions.
<scanakci> I and my collaborator (@cansu) will try to integrate a recent 64-bit RISC-V based CPU (https://github.com/black-parrot/pre-alpha-release) into the Litex environment. The final goal is to have an SoC running Linux as firmware on FPGA.
<scanakci> Q1) I can see two options, one is using litex repo and the second is using the litex-buildenv repo. Litex-buildenv seems including more tools in terms of debugging. Should I use litex-buildenv as a beginner in the Litex, or using Litex is more meaningful for any reason?
<scanakci> Q2) For debugging minimal SoC version, I can see two directions so far. In litex repo, there is litex_sim.py in tools (https://osda.gitlab.io/19/1.1-slides.pdf) and Litex Server, Litex Scope. Another option is using QEMU, Renode from litex-buildenv.
<scanakci> a. So far, I could not see any documentation related to litex_sim, Litex Server or Litex Scop. Are there documents describing the usage of these tools other than --help? For instance, I tried ./litex_sim.py --output-dir $PWD/simout --cpu-type vexriscv --cpu-variant minimal+debug and ended up having a console with some available commands but I do not know how to go further and what to look for in simout folder. I do not
<scanakci> have much experience debugging hardware other than using ISE or similar simulation tools, that may be the reason.
<scanakci> b. In general, which debugging tool would be a better choice? QEMU, Renode, litex_sim or maybe something else?
<scanakci> Q3) By looking at litex GitHub repo, I can see that we need another folder under soc/cores/cpu/ for the new core and write a core.py to describe this core. It also looks like that we need to include HDL source in the verilog folder. Besides these, are there specific folders, files that you would suggest me to look at? Which ones might be potentially changed for integrating a new core?
<tpb> Title: GitHub - black-parrot/pre-alpha-release: Black Parrot is coming soon. (at github.com)
<scanakci> Sorry for the long message.
rohitksingh has joined #litex
<somlo> scanakci: check out https://github.com/enjoy-digital/litex/tree/master/litex/soc/cores/cpu/rocket for existing 64bit RISC-V support (see http://www.contrib.andrew.cmu.edu/~somlo/BTCP for the "runs 64bit linux" part)
<tpb> Title: litex/litex/soc/cores/cpu/rocket at master · enjoy-digital/litex · GitHub (at github.com)
<somlo> It should hopefully not be too hard to replace the rocket-chip with black-parrot for your project
<_florent_> scanakci: hi and welcome!
<_florent_> for the documentation, you can look at litex-buildenv wiki, that's where you'll find the more documentation
<_florent_> it's true that documentation is the strong point of the project (we are trying to improve that), but you can generally find example by looking at the different examples/repositories
<_florent_> There is also https://github.com/litex-hub/fpga_101 that you could try to look at / do
<tpb> Title: GitHub - litex-hub/fpga_101: FPGA 101 lessons/labs (at github.com)
<_florent_> For the way to integrate your cpu, yes you'll have to create a cpu wrapper similar to the others CPU and the minimal software needed for it (search in software for __rocket__ define for example to understand what is needed for another CPU)
<_florent_> For the debug, LiteScope is mostly useful for debug on hardware, but for your project you should be able to do almost everything in simulation, so i'm not sure you need it (at least now)
<_florent_> litex_sim could be a good starting point for you, it uses verilator to simulate the whole SoC and allow you to interact with it at resonnable speed
<_florent_> this is also possible to generate a .vcd file with it and that's what will probably be very useful for you
<_florent_> you can enable tracing, but also select when you want to enable it : https://github.com/enjoy-digital/litex/blob/master/litex/tools/litex_sim.py#L204-L209
<tpb> Title: litex/litex_sim.py at master · enjoy-digital/litex · GitHub (at github.com)
<_florent_> So this would easily allow you to simulate the SoC, load the ROM and see how it start behaving
<_florent_> For example, that's what i used when starting working on https://github.com/litex-hub/linux-on-litex-vexriscv and integrate correctly VexRiscv
<tpb> Title: GitHub - litex-hub/linux-on-litex-vexriscv: Linux on LiteX-VexRiscv (at github.com)
<_florent_> now for litex-buildenv vs litex, litex-buildenv will mostly provide scripts/packages to ease installing things and build software, but if you already have litex installed, you can just use that
<_florent_> i just saw that black-parrot is in verilog, so litex_sim would work (verilator)
<_florent_> also for QEMU/Renode, i would say it would be useful if you were doing the opposite: doing your own peripheral connected to a RISC-V CPU. Here that's the CPU you want to debug, the litex_sim approach seems more appropriate
rohitksingh has quit [Ping timeout: 265 seconds]
rohitksingh has joined #litex
<sorear> oh neat, forgot there was stuff going on at BU
rohitksingh has quit [Ping timeout: 240 seconds]
rohitksingh has joined #litex
rohitksingh has quit [Ping timeout: 240 seconds]
<scanakci> _florent_ & somio: thank you so much for the answers! glad to be here!
rohitksingh has joined #litex
CarlFK has quit [Remote host closed the connection]
rohitksingh has quit [Ping timeout: 276 seconds]
freemint has quit [Ping timeout: 252 seconds]
<futarisIRCcloud> scanakci: Sounds like a great project. There's generally always someone here that can answer your litex questions, and if you're lucky, they're in the same timezone as you. Otherwise, check the logs in a day or two, https://logs.timvideos.us/%23litex/latest.log.html ...
freemint has joined #litex
freeemint has joined #litex
freemint has quit [Ping timeout: 245 seconds]