Skip to content

Macro parameter mapping #41

Closed
Closed
@gatecat

Description

@gatecat

Consider the following design with initialized LUTRAM, for the xc7:

module top(
    input clk, we,
    input [6:0] wa, ra,
    input wd,
    output [1:0] rd
);
    RAM128X1D #(
        .INIT(128'hFFEEDDCCBBAA99887766554433221100)
    ) ram_i (
        .WCLK(clk), .WE(we),
        .A(wa), .DPRA(ra),
        .D(wd),
        .SPO(rd[0]), .DPO(rd[1])
    );
endmodule

Opening the implemented design in Vivado and running:

get_property INIT [get_cells ram_i/DP.LOW]
64'h7766554433221100
get_property INIT [get_cells ram_i/DP.HIGH]
64'hFFEEDDCCBBAA9988

you can see that the INIT parameter of the RAM128XD macro has been split into two for the constituent cells.

Currently the schema appears to have no way to describe a parameter mapping like this, which will need to be fixed to support initialised LUTRAM and some other macros like LUT6_2.

cc @clavin-xlnx as I don't think RapidWright currently provides this kind of data either?

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