Hi everyone,
I am a computer science student in my last year I would like to work on SOC. I already did a project making a simple soft-core processor using FPGA and I would like to continue in that path, that's why Rocket chip got my attention.
My goal is to add several peripherals in VHDL to the rocket chip to make my own SOC based on rocket chip (not based on SOCs like lowrisc & warpbird). But I am having hard time understanding how to connect peripherals (say UART for example) using the rocket chip generator.
In Yunsup Lee draft there is this figure:
I would like to understand several things:
The HOSTIO pins are not used and not generated in the Verilog code of the ExampleRocketSystem(I suppose its the instance name of Rochet Chip) module because it's only used for emulation is that right ?
In the Verilog code of the ExampleRocketSystem, there are three type of ports the debug, mmio_axi4_0 and l2_frontend_bus_axi4. Since l2_frontend_bus_axi4 are not used in figure above, I would like to know what is it used for ?
mmio_axi4_0 should it be treated as mmio or axi protocol ?
In this document there is a figure detailing the rocket chip (figure A) which is very similar to the one in Yunsup Lee's draft (figure B).
Figure A Figure B
4. In figure A "TileLink/AXI4 Bridge" I cant draw a line between rocket chip and the outside world ? where are the HOSTIO & MMIO which are supposed to be the only output of the rocket chip ?
5. I find this figure a lot simpler since, if I understood correctly, I only have to add the peripherals next to the "AHB & APB Peripherals" ?
6. Is there some kind of tutorial or documentation explaining how to connect the differents IO of the modules to the Rocket chip ?
7. Should give up the idea of adding modules in in VHDL/Verilog and learn Chisel (which I just started) ?
Sorry for asking a lot of questions but I have been stuck for 3 weeks now.
Thank you all.