Skip to content

SEDC support? #24

@femtostar

Description

@femtostar

Lattice Nexus-family FPGAs include SEDC hardware for error detection and correction. A part of the sysCONFIG block, and documented here, it exposes a few inputs for configuration and a few outputs for status and error detection information. In Radiant, it can be instantiated from the IP Catalog, which seemingly mostly just generates a wrapper around an instantiated SEDC primitive. The instantiation looks like this:

SEDC sedc (.SEDENABLE(sed_en_i), 
                .SEDCCOF(sedc_cof_i), 
                .SEDCENABLE(sedc_en_i), 
                .SEDCMODE(sedc_mode_i), 
                .OSCCLKSEDC(oscclk_sedc_w), 
                .RSTSEDC(sedc_rst_w), 
                .SEDCSTART(sedc_start_i), 
                .SEDCBUSY(sedc_busy_o), 
                .SEDCERR(sedc_err_o), 
                .SEDCERRC(sedc_errc_o), 
                .SEDCERRCRC(sedc_errcrc_o), 
                .SEDCERRM(sedc_errm_o), 
                .SEDCFRMERRLOC(sedc_frm_errloc_o), 
                .SEDCDSRERRLOCCIB(sedc_dsr_errloc_o)) ;

However, prjoxide does not seem to document this primitive, and it's seemingly not included anywhere in the source for prjoxide or nextpnr. Attempting to place and route this with nextpnr-nexus fails with ERROR: Cell type 'SEDC' instantiated as 'sedc' is not supported by this device.

It seems like prjoxide just hasn't documented how SEDC works yet. I'm not really familiar enough with the prjoxide fuzzing/development process to try to implement this myself, or really to determine how complex that would be. If I'm wrong and this has already been documented and implemented, how should the SEDC primitive be instantiated when using the yosys+nextpnr+prjoxide toolchain? If not, what's the status of work on SEDC documentation in prjoxide?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions