Skip to content

Sequential logic/memory: matters arising from docs with annotations/blackbox/memory/device complexities #196

@dlmiles

Description

@dlmiles

This started as a comment to Tranche 3 but requires more investigation to help clarify both the code/mechanisms and the documentation around it.

So to track I open this.


Objectives

  • Explain the eject process, so 100% manual configuration can be achieved by the designed. So Mem is used but the designer wants to take complete control over attributes and output HDL to ensure their flow has the correct memory created.
  • Check my understanding of their being a default device NONE and the impact.
  • Ensure all code / Phases that make use of knowing the device or device-family, upon seeing that is it NONE, emit a log message pointing into documentation and details of automatic support. This provides awareness to the user 'this situation looks like one we have help with available here read the docs'
  • Check my understanding of configuring to a Device() and the impact on attributes.
  • Confirm if the auto insertion is disabled if one or more manually provided attributes is present. Consider log message:
    • Log message: INFO At MyCode.scala:123 the Mem[name] instance for device-family Xilinx device xgt123-1202g did not have automatic addAttribute("special-memory-mode, "foobar") applied due to one or more existing attributes present. See documentation at https://spinalhdl.github.io/path/to/page
  • Consider an attribute type that means, this instance do not perform automatic insertion of attributes that.addAttribute(InhibitAutomaticAttributes)
  • Try to document some known forms of memory with well-known vendors. This sounds like a new page, with section per vendor and memory types.
  • This leads into blackboxing modes and any simulation/elaboration differences.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions