rdaly525 / coreir

BSD 3-Clause "New" or "Revised" License
98 stars 24 forks source link

Can we remove the Cpp backend tests? #788

Open dillonhuff opened 4 years ago

dillonhuff commented 4 years ago

@rdaly525 @jeffsetter I think we agreed last year that we were going to deprecate the c++ backend, but the tests never got removed. They take a long time and generate a bunch of output. Is anyone still using the C++ simulator for coreir?

jeffsetter commented 4 years ago

I am still using the C++ simulator. If there is a better alternative, I can investigate that.

dillonhuff commented 4 years ago

@jeffsetter thanks for letting me know. I'll leave the tests in.

jeffsetter commented 4 years ago

I'm still interested in the comment that:

we agreed last year that we were going to deprecate the c++ backend

Was the thinking that Fault would replace all testing? Perhaps someone could fill me in on what I should be using for CoreIR testing.

dillonhuff commented 4 years ago

I think the thinking was that we would replace the CoreIR C++ backend with just compiling to Verilog and running Verilator. I didn't realize that anyone was still using the C++ backend.

jeffsetter commented 4 years ago

Hm, I've had issues simulating the CoreIR implementation of the "rowbuffer" in Verilator. Furthermore, functional models that don't have CoreIR definitions will be difficult to simulate purely in Verilator. Maybe this warrants a further discussion, because I have been thinking myself that using the current CoreIR simulator isn't a long-term solution. And it sounds like it's already been decided before that it will be deprecated.

rdaly525 commented 4 years ago

Wait, are we talking about the generated c++ simulator, or the CoreIR interpreter? My impression was that no one is currently using the generated c++ simulator, but we are still using the CoreIR interpreter. I do not think we should depreciate the latter. The former I am fine with replacing it with verilator. Just want to make sure everyone is on the same page.

jeffsetter commented 4 years ago

Oh I was talking about the CoreIR interpreter. But should I be simulating using Verilator instead? What's the benefit and drawbacks of Verilator vs the CoreIR interpreter?

rdaly525 commented 4 years ago

Verilator: Generated simulator from verilog code. It is fast but you will not be able to easily read/write values dynamically in your tests. Or rather in order to do this you need to generate your C++ tests as a function of the CoreIR/verilog that is produced.

CoreIR Interpreter: Slower, but you can dynamically read and write values t/from the simulator. Everything can be done easily in the same C++ testing environment.

dillonhuff commented 4 years ago

@jeffsetter @rdaly525 sorry for the confusion. This question was NOT supposed to be about the coreir interpreter. It was supposed to be about the coreir -> c++ backend that I wrote (almost) two years ago.

I assume we are all ok with removing the coreir -> C++ code generator?

dillonhuff commented 4 years ago

@jeffsetter I also agree that the coreir interpreter is probably not a good long term solution. Actually I've been thinking of some other ways we could do simulation that might be more useful. We should talk more about it when I get back.

rdaly525 commented 4 years ago

@dillonhuff, could you maybe move the code to a different repo? It feels wrong to get rid of the code.