-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SRAM implementation and generalisation #14
Comments
Can we describe write-only ports? This would be a requirement for some twoport mems. So tc_sram is the module that will be generated from the description above, right? So it will (technology-specific) instantiate rf or SRAM macros. In this case, having a core abstraction does not make sense to me, as tc_sram will already instantiate the final macro blocks. I would rather opt for a technology-independet or -dependent (physical) implementation option for latches or ff. |
Yes, that would be possible. There is a variable amount of ports possible and each port can be
Yes,
So in a nutshell, exactly what I meant. To keep the interface the same ( |
If the cores are just latch and ff memories that can be instantiated automatically in tc_sram. I agree with this approach. It's important to just have one tc_sram. My initial thought was to directly "generate" the ff or latch memory code in the if/else if/else blocks of tc_sram (for std-cell-based memories) but to encapsulate this with cores makes it nicer. Also the interface between cores and tc_sram can be technology-specific. |
So let me try to summarize your idea to verify that I understand your intention: |
Hello. |
Problem
The current
tc_sram
wrapper does not generalize to more than one clock and the ports always come with read and write capabilities. That is a bit too limiting for the memories that are usually available in modern techs.Furthermore I think it would be nice to capture all the behavior of the memory in a commonly understandable format (
json
,protofbufs
) so that we can extend and automatize the generation of the SRAM instantiations.SRAM Request Format
This is my straw-man proposal:
I think in the future it can hold much more, such as BIST capabilities, physical design aspects (i.e., number of rails, preferred aspect ratio, etc.). Ideally, we would end up with a generation infrastructure for each technology that sanitizes the inputs for a given technology and generates the infrastructure.
Re-structure
I would furthermore propose that we split the
tc_sram
into atc_sram
andtc_sram_core
. The latter just containing the memory array (i.e., the thing that will be replaced by tech-specific stuff). That will also allow us to implement (or provide an implementation) of the core as flip-flops or latches. That is something we can also provide as open-source.The text was updated successfully, but these errors were encountered: