Closed donggyukim closed 7 years ago
well done, @donggyukim !
Nice job, Donggyu. I've skimmed through most of this PR, but i think it would be really helpful if you summarized the major changes in the PR. This is a massive set of changes.
Some general concerns:
I think we should just keep this a separate dev branch until we clean everything up post retreat.
Yeah, I agree that this PR is very hard to grasp. Here's my summary:
ZynqShim
into platform-agnostic target & widget interconnect FPGATop
and platform specific interface ZynqShim
. For nowFPGATop
consists of AXI networks, which will be eventually ported with Tilelink2.CatapultShim
on top of FPGATop
and its emulation. Here I assumed its communication is done with a large width serial link.sim_mem
is also provided in software when we instantiate a nasti I/O handler. Also, there non-blocking step
to handle memory transactions during simulation ticks. The nasti I/O handler will back-pressure simulation fire when there are outstanding requests. This part can be further improved by pywrite.FPGATop
. Bulk PCIE communication has high overhead and is hard to manipulate.To answer @davidbiancolin's concerns:
SYNTHESIS
. This is why I fixed it in 8b9e10f.ifdef
in c++ code. Visual Studio and Windows have their own world which is not compatible with Linux and POSIX.ZynqShim
, I explained in the previous post.In addition, I cannot assume that users will install Cygwin in the catapult node, so I should've supported Powershell with Gow by fixing makefile as in 83b90fa.
@davidbiancolin @sagark Finally, strober examples run in catapult with this branch. It didn't test this with midas-top because compiling riscv-fesvr is not trivial with visual studio. But, we may want to merge pywrite on top of this PR to move forward.