Skip to content

Commit 8829d8a

Browse files
authored
Merge pull request #10018 from tnguy19/add-column-mux
Add column mux ratio for ratio = 1, 2, 4
2 parents 7480eeb + b1d02b8 commit 8829d8a

20 files changed

Lines changed: 9706 additions & 957 deletions

src/ram/include/ram/ram.h

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ class RamGen
9090
void generate(int mask_size,
9191
int word_size,
9292
int num_words,
93+
int column_mux_ratio,
9394
int read_ports,
9495
odb::dbMaster* storage_cell,
9596
odb::dbMaster* tristate_cell,
@@ -139,22 +140,32 @@ class RamGen
139140
void makeSlice(int slice_idx,
140141
int mask_size,
141142
int row_idx,
143+
int word_idx,
142144
int read_ports,
145+
int column_mux_ratio,
143146
odb::dbNet* clock,
144147
odb::dbNet* write_enable,
148+
odb::dbNet* word_select,
145149
const std::vector<odb::dbNet*>& selects,
150+
const std::vector<odb::dbNet*>& shared_select_b_nets,
151+
bool create_select_inv,
146152
const std::vector<odb::dbNet*>& data_input,
147-
const std::vector<std::vector<odb::dbBTerm*>>& data_output);
153+
const std::vector<std::vector<odb::dbNet*>>& data_output);
148154

149155
void makeWord(int slices_per_word,
150156
int mask_size,
151157
int row_idx,
158+
int word_idx,
152159
int read_ports,
160+
int column_mux_ratio,
153161
odb::dbNet* clock,
162+
odb::dbNet* word_select,
154163
std::vector<odb::dbBTerm*>& write_enable,
155164
const std::vector<odb::dbNet*>& selects,
165+
const std::vector<odb::dbNet*>& shared_select_b_nets,
166+
bool create_select_inv,
156167
const std::vector<odb::dbNet*>& data_input,
157-
const std::vector<std::vector<odb::dbBTerm*>>& data_output);
168+
const std::vector<std::vector<odb::dbNet*>>& data_output);
158169

159170
odb::dbBTerm* makeBTerm(const std::string& name, odb::dbIoType io_type);
160171

@@ -185,6 +196,7 @@ class RamGen
185196
odb::dbMaster* and2_cell_{nullptr};
186197
odb::dbMaster* clock_gate_cell_{nullptr};
187198
odb::dbMaster* buffer_cell_{nullptr};
199+
odb::dbMaster* aoi22_cell_{nullptr};
188200
odb::dbMaster* tapcell_{nullptr};
189201

190202
std::map<PortRole, std::string> storage_ports_;
@@ -198,6 +210,8 @@ class RamGen
198210
std::vector<odb::dbBTerm*> data_inputs_;
199211
std::vector<std::vector<odb::dbBTerm*>> q_outputs_;
200212
std::string behavioral_verilog_filename_;
213+
std::string aoi22_in_a1_, aoi22_in_a2_, aoi22_in_b1_, aoi22_in_b2_,
214+
aoi22_out_;
201215
Grid ram_grid_;
202216
};
203217

0 commit comments

Comments
 (0)