yowasp-yosys 0.53.0.0.post912__py3-none-any.whl → 0.54.0.0.post930__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -115,15 +115,15 @@ generate
115
115
  .A_CLK(PORT_A_CLK),
116
116
  .A_EN(PORT_A_CLK_EN),
117
117
  .A_WE(PORT_A_WR_EN),
118
- .A_BM(PORT_A_WR_BE),
119
- .A_DI(PORT_A_WR_DATA),
118
+ .A_BM({{(20-PORT_A_WR_BE_WIDTH){1'bx}}, PORT_A_WR_BE}),
119
+ .A_DI({{(20-PORT_A_WR_WIDTH){1'bx}}, PORT_A_WR_DATA}),
120
120
  .A_ADDR({PORT_A_ADDR[13:5], 1'b0, PORT_A_ADDR[4:0], 1'b0}),
121
121
  .A_DO(PORT_A_RD_DATA),
122
122
  .B_CLK(PORT_B_CLK),
123
123
  .B_EN(PORT_B_CLK_EN),
124
124
  .B_WE(PORT_B_WR_EN),
125
- .B_BM(PORT_B_WR_BE),
126
- .B_DI(PORT_B_WR_DATA),
125
+ .B_BM({{(20-PORT_B_WR_BE_WIDTH){1'bx}}, PORT_B_WR_BE}),
126
+ .B_DI({{(20-PORT_B_WR_WIDTH){1'bx}}, PORT_B_WR_DATA}),
127
127
  .B_ADDR({PORT_B_ADDR[13:5], 1'b0, PORT_B_ADDR[4:0], 1'b0}),
128
128
  .B_DO(PORT_B_RD_DATA),
129
129
  );
@@ -270,15 +270,15 @@ generate
270
270
  .A_CLK(PORT_A_CLK),
271
271
  .A_EN(PORT_A_CLK_EN),
272
272
  .A_WE(PORT_A_WR_EN),
273
- .A_BM(PORT_A_WR_BE),
274
- .A_DI(PORT_A_WR_DATA),
273
+ .A_BM({{(40-PORT_A_WR_BE_WIDTH){1'bx}}, PORT_A_WR_BE}),
274
+ .A_DI({{(40-PORT_A_WR_WIDTH){1'bx}}, PORT_A_WR_DATA}),
275
275
  .A_ADDR({PORT_A_ADDR[14:0], 1'b0}),
276
276
  .A_DO(PORT_A_RD_DATA),
277
277
  .B_CLK(PORT_B_CLK),
278
278
  .B_EN(PORT_B_CLK_EN),
279
279
  .B_WE(PORT_B_WR_EN),
280
- .B_BM(PORT_B_WR_BE),
281
- .B_DI(PORT_B_WR_DATA),
280
+ .B_BM({{(40-PORT_B_WR_BE_WIDTH){1'bx}}, PORT_B_WR_BE}),
281
+ .B_DI({{(40-PORT_B_WR_WIDTH){1'bx}}, PORT_B_WR_DATA}),
282
282
  .B_ADDR({PORT_B_ADDR[14:0], 1'b0}),
283
283
  .B_DO(PORT_B_RD_DATA),
284
284
  );
@@ -429,14 +429,14 @@ generate
429
429
  .A_CLK(PORT_A_CLK),
430
430
  .A_EN(PORT_A_CLK_EN),
431
431
  .A_WE(PORT_A_WR_EN),
432
- .A_BM(PORT_A_WR_BE),
433
- .A_DI(PORT_A_WR_DATA),
432
+ .A_BM({{(40-PORT_A_WR_BE_WIDTH){1'bx}}, PORT_A_WR_BE}),
433
+ .A_DI({{(40-PORT_A_WR_WIDTH){1'bx}}, PORT_A_WR_DATA}),
434
434
  .A_ADDR({PORT_A_ADDR[14:0], PORT_A_ADDR[15]}),
435
435
  .B_CLK(PORT_B_CLK),
436
436
  .B_EN(PORT_B_CLK_EN),
437
437
  .B_WE(PORT_B_WR_EN),
438
- .B_BM(PORT_B_WR_BE),
439
- .B_DI(PORT_B_WR_DATA),
438
+ .B_BM({{(40-PORT_B_WR_BE_WIDTH){1'bx}}, PORT_B_WR_BE}),
439
+ .B_DI({{(40-PORT_B_WR_WIDTH){1'bx}}, PORT_B_WR_DATA}),
440
440
  .B_ADDR({PORT_B_ADDR[14:0], PORT_B_ADDR[15]}),
441
441
  );
442
442
  CC_BRAM_40K #(
@@ -584,15 +584,15 @@ generate
584
584
  .A_CLK(PORT_A_CLK),
585
585
  .A_EN(PORT_A_CLK_EN),
586
586
  .A_WE(PORT_A_WR_EN),
587
- .A_BM(PORT_A_WR_BE),
588
- .A_DI(PORT_A_WR_DATA),
587
+ .A_BM({{(40-PORT_A_WR_BE_WIDTH){1'bx}}, PORT_A_WR_BE}),
588
+ .A_DI({{(40-PORT_A_WR_WIDTH){1'bx}}, PORT_A_WR_DATA}),
589
589
  .A_DO(PORT_A_RD_DATA),
590
590
  .A_ADDR({PORT_A_ADDR[14:0], PORT_A_ADDR[15]}),
591
591
  .B_CLK(PORT_B_CLK),
592
592
  .B_EN(PORT_B_CLK_EN),
593
593
  .B_WE(PORT_B_WR_EN),
594
- .B_BM(PORT_B_WR_BE),
595
- .B_DI(PORT_B_WR_DATA),
594
+ .B_BM({{(40-PORT_B_WR_BE_WIDTH){1'bx}}, PORT_B_WR_BE}),
595
+ .B_DI({{(40-PORT_B_WR_WIDTH){1'bx}}, PORT_B_WR_DATA}),
596
596
  .B_DO(PORT_B_RD_DATA),
597
597
  .B_ADDR({PORT_B_ADDR[14:0], PORT_B_ADDR[15]}),
598
598
  );
@@ -710,9 +710,9 @@ generate
710
710
  .A_EN(PORT_W_CLK_EN),
711
711
  .A_WE(PORT_W_WR_EN),
712
712
  .A_BM(PORT_W_WR_BE[19:0]),
713
- .B_BM(PORT_W_WR_BE[39:20]),
713
+ .B_BM({{(40-PORT_W_WIDTH){1'bx}}, PORT_W_WR_BE[39:20]}),
714
714
  .A_DI(PORT_W_WR_DATA[19:0]),
715
- .B_DI(PORT_W_WR_DATA[39:20]),
715
+ .B_DI({{(40-PORT_W_WIDTH){1'bx}}, PORT_W_WR_DATA[39:20]}),
716
716
  .A_ADDR({PORT_W_ADDR[13:5], 1'b0, PORT_W_ADDR[4:0], 1'b0}),
717
717
  .B_CLK(PORT_R_CLK),
718
718
  .B_EN(PORT_R_CLK_EN),
@@ -865,9 +865,9 @@ generate
865
865
  .A_EN(PORT_W_CLK_EN),
866
866
  .A_WE(PORT_W_WR_EN),
867
867
  .A_BM(PORT_W_WR_BE[39:0]),
868
- .B_BM(PORT_W_WR_BE[79:40]),
868
+ .B_BM({{(80-PORT_W_WIDTH){1'bx}}, PORT_W_WR_BE[79:40]}),
869
869
  .A_DI(PORT_W_WR_DATA[39:0]),
870
- .B_DI(PORT_W_WR_DATA[79:40]),
870
+ .B_DI({{(80-PORT_W_WIDTH){1'bx}}, PORT_W_WR_DATA[79:40]}),
871
871
  .A_ADDR({PORT_W_ADDR[14:0], 1'b0}),
872
872
  .B_CLK(PORT_R_CLK),
873
873
  .B_EN(PORT_R_CLK_EN),
@@ -200,6 +200,10 @@ enum cxxrtl_flag {
200
200
  // node, such as inputs and dangling wires.
201
201
  CXXRTL_UNDRIVEN = 1 << 4,
202
202
 
203
+ // Generated correspond to netlist nodes that correspond to state with an internal name, that
204
+ // need to be saved, but wouldn't otherwise have a debug item generated.
205
+ CXXRTL_GENERATED = 1 << 5,
206
+
203
207
  // More object flags may be added in the future, but the existing ones will never change.
204
208
  };
205
209
 
@@ -1294,6 +1294,7 @@ struct debug_item : ::cxxrtl_object {
1294
1294
  DRIVEN_SYNC = CXXRTL_DRIVEN_SYNC,
1295
1295
  DRIVEN_COMB = CXXRTL_DRIVEN_COMB,
1296
1296
  UNDRIVEN = CXXRTL_UNDRIVEN,
1297
+ GENERATED = CXXRTL_GENERATED,
1297
1298
  };
1298
1299
 
1299
1300
  debug_item(const ::cxxrtl_object &object) : cxxrtl_object(object) {}
@@ -153,6 +153,7 @@ X(parameter)
153
153
  X(PORTID)
154
154
  X(PRIORITY)
155
155
  X(PRIORITY_MASK)
156
+ X(promoted_if)
156
157
  X(Q)
157
158
  X(R)
158
159
  X(ram_block)
@@ -184,6 +185,7 @@ X(romstyle)
184
185
  X(S)
185
186
  X(SET)
186
187
  X(SET_POLARITY)
188
+ X(single_bit_vector)
187
189
  X(SIZE)
188
190
  X(SRC)
189
191
  X(src)
@@ -14,6 +14,7 @@
14
14
 
15
15
  #include <stdexcept>
16
16
  #include <algorithm>
17
+ #include <optional>
17
18
  #include <string>
18
19
  #include <variant>
19
20
  #include <vector>
@@ -64,6 +64,23 @@ inline std::string stringf(const char *fmt, ...)
64
64
  return string;
65
65
  }
66
66
 
67
+ int readsome(std::istream &f, char *s, int n);
68
+ std::string next_token(std::string &text, const char *sep = " \t\r\n", bool long_strings = false);
69
+ std::vector<std::string> split_tokens(const std::string &text, const char *sep = " \t\r\n");
70
+ bool patmatch(const char *pattern, const char *string);
71
+ #if !defined(YOSYS_DISABLE_SPAWN)
72
+ int run_command(const std::string &command, std::function<void(const std::string&)> process_line = std::function<void(const std::string&)>());
73
+ #endif
74
+ std::string get_base_tmpdir();
75
+ std::string make_temp_file(std::string template_str = get_base_tmpdir() + "/yosys_XXXXXX");
76
+ std::string make_temp_dir(std::string template_str = get_base_tmpdir() + "/yosys_XXXXXX");
77
+ bool check_file_exists(const std::string& filename, bool is_exec = false);
78
+ bool check_directory_exists(const std::string& dirname, bool is_exec = false);
79
+ bool is_absolute_path(std::string filename);
80
+ void remove_directory(std::string dirname);
81
+ bool create_directory(const std::string& dirname);
82
+ std::string escape_filename_spaces(const std::string& filename);
83
+
67
84
  YOSYS_NAMESPACE_END
68
85
 
69
86
  #endif // YOSYS_IO_H
@@ -29,6 +29,7 @@ struct Pass
29
29
  {
30
30
  std::string pass_name, short_help;
31
31
  Pass(std::string name, std::string short_help = "** document me **");
32
+ // Prefer overriding 'Pass::on_shutdown()' if possible
32
33
  virtual ~Pass();
33
34
 
34
35
  virtual void help();
@@ -753,7 +753,26 @@ public:
753
753
 
754
754
  std::vector<RTLIL::State>& bits();
755
755
  bool as_bool() const;
756
+
757
+ // Convert the constant value to a C++ int.
758
+ // NOTE: If the constant is too wide to fit in int (32 bits) this will
759
+ // truncate any higher bits, potentially over/underflowing. Consider using
760
+ // try_as_int, as_int_saturating, or guarding behind convertible_to_int
761
+ // instead.
756
762
  int as_int(bool is_signed = false) const;
763
+
764
+ // Returns true iff the constant can be converted to an int without
765
+ // over/underflow.
766
+ bool convertible_to_int(bool is_signed = false) const;
767
+
768
+ // Returns the constant's value as an int if it can be represented without
769
+ // over/underflow, or std::nullopt otherwise.
770
+ std::optional<int> try_as_int(bool is_signed = false) const;
771
+
772
+ // Returns the constant's value as an int if it can be represented without
773
+ // over/underflow, otherwise the max/min value for int depending on the sign.
774
+ int as_int_saturating(bool is_signed = false) const;
775
+
757
776
  std::string as_string(const char* any = "-") const;
758
777
  static Const from_string(const std::string &str);
759
778
  std::vector<RTLIL::State> to_bits() const;
@@ -1130,7 +1149,27 @@ public:
1130
1149
  bool is_onehot(int *pos = nullptr) const;
1131
1150
 
1132
1151
  bool as_bool() const;
1152
+
1153
+ // Convert the SigSpec to a C++ int, assuming all bits are constant.
1154
+ // NOTE: If the value is too wide to fit in int (32 bits) this will
1155
+ // truncate any higher bits, potentially over/underflowing. Consider using
1156
+ // try_as_int, as_int_saturating, or guarding behind convertible_to_int
1157
+ // instead.
1133
1158
  int as_int(bool is_signed = false) const;
1159
+
1160
+ // Returns true iff the SigSpec is constant and can be converted to an int
1161
+ // without over/underflow.
1162
+ bool convertible_to_int(bool is_signed = false) const;
1163
+
1164
+ // Returns the SigSpec's value as an int if it is a constant and can be
1165
+ // represented without over/underflow, or std::nullopt otherwise.
1166
+ std::optional<int> try_as_int(bool is_signed = false) const;
1167
+
1168
+ // Returns an all constant SigSpec's value as an int if it can be represented
1169
+ // without over/underflow, otherwise the max/min value for int depending on
1170
+ // the sign.
1171
+ int as_int_saturating(bool is_signed = false) const;
1172
+
1134
1173
  std::string as_string() const;
1135
1174
  RTLIL::Const as_const() const;
1136
1175
  RTLIL::Wire *as_wire() const;
@@ -1182,7 +1221,7 @@ struct RTLIL::Selection
1182
1221
  bool boxes = false,
1183
1222
  // the design to select from
1184
1223
  RTLIL::Design *design = nullptr
1185
- ) :
1224
+ ) :
1186
1225
  selects_boxes(boxes), complete_selection(full && boxes), full_selection(full && !boxes), current_design(design) { }
1187
1226
 
1188
1227
  // checks if the given module exists in the current design and is a
@@ -81,6 +81,7 @@ extern std::set<std::string> yosys_input_files, yosys_output_files;
81
81
 
82
82
  // from kernel/version_*.o (cc source generated from Makefile)
83
83
  extern const char *yosys_version_str;
84
+ const char* yosys_maybe_version();
84
85
 
85
86
  // from passes/cmds/design.cc
86
87
  extern std::map<std::string, RTLIL::Design*> saved_designs;
@@ -252,28 +252,12 @@ inline void memhasher() { if (memhasher_active) memhasher_do(); }
252
252
  void yosys_banner();
253
253
  int ceil_log2(int x) YS_ATTRIBUTE(const);
254
254
 
255
- int readsome(std::istream &f, char *s, int n);
256
- std::string next_token(std::string &text, const char *sep = " \t\r\n", bool long_strings = false);
257
- std::vector<std::string> split_tokens(const std::string &text, const char *sep = " \t\r\n");
258
- bool patmatch(const char *pattern, const char *string);
259
- #if !defined(YOSYS_DISABLE_SPAWN)
260
- int run_command(const std::string &command, std::function<void(const std::string&)> process_line = std::function<void(const std::string&)>());
261
- #endif
262
- std::string get_base_tmpdir();
263
- std::string make_temp_file(std::string template_str = get_base_tmpdir() + "/yosys_XXXXXX");
264
- std::string make_temp_dir(std::string template_str = get_base_tmpdir() + "/yosys_XXXXXX");
265
- bool check_file_exists(std::string filename, bool is_exec = false);
266
- bool check_directory_exists(const std::string& dirname);
267
- bool is_absolute_path(std::string filename);
268
- void remove_directory(std::string dirname);
269
- bool create_directory(const std::string& dirname);
270
- std::string escape_filename_spaces(const std::string& filename);
271
-
272
255
  template<typename T> int GetSize(const T &obj) { return obj.size(); }
273
256
  inline int GetSize(RTLIL::Wire *wire);
274
257
 
275
258
  extern int autoidx;
276
259
  extern int yosys_xtrace;
260
+ extern bool yosys_write_versions;
277
261
 
278
262
  RTLIL::IdString new_id(std::string file, int line, std::string func);
279
263
  RTLIL::IdString new_id_suffix(std::string file, int line, std::string func, std::string suffix);
@@ -68,8 +68,8 @@ class SbyStatusDb:
68
68
 
69
69
  self.db = sqlite3.connect(path, isolation_level=None, timeout=timeout)
70
70
  self.db.row_factory = sqlite3.Row
71
- self.db.execute("PRAGMA journal_mode=WAL")
72
- self.db.execute("PRAGMA synchronous=0")
71
+ self.db.execute("PRAGMA journal_mode=WAL").fetchone()
72
+ self.db.execute("PRAGMA synchronous=0").fetchone()
73
73
 
74
74
  if setup:
75
75
  self._setup()
@@ -35,3 +35,25 @@ ram huge $__XILINX_URAM_ {
35
35
  wrbe_separate;
36
36
  }
37
37
  }
38
+
39
+ ram huge $__XILINX_URAM_SP_ {
40
+ abits 11;
41
+ width 144;
42
+ cost 1024;
43
+ option "BYTEWIDTH" 8 byte 8;
44
+ option "BYTEWIDTH" 9 byte 9;
45
+ init zero;
46
+ port srsw "A" {
47
+ clock anyedge "C";
48
+ clken;
49
+ rdwr no_change;
50
+ rdinit zero;
51
+ portoption "RST_MODE" "SYNC" {
52
+ rdsrst zero ungated;
53
+ }
54
+ portoption "RST_MODE" "ASYNC" {
55
+ rdarst zero;
56
+ }
57
+ wrbe_separate;
58
+ }
59
+ }
@@ -150,3 +150,141 @@ module $__XILINX_URAM_ (...);
150
150
  .SLEEP(1'b0)
151
151
  );
152
152
  endmodule
153
+
154
+ module $__XILINX_URAM_SP_ (...);
155
+ parameter OPTION_BYTEWIDTH = 8;
156
+ localparam WR_BE_WIDTH = 144 / OPTION_BYTEWIDTH;
157
+
158
+ parameter CLK_C_POL = 1;
159
+ parameter PORT_A_CLK_POL = 1;
160
+ parameter PORT_A_OPTION_RST_MODE = "SYNC";
161
+
162
+ input CLK_C;
163
+
164
+ input PORT_A_CLK;
165
+ input PORT_A_CLK_EN;
166
+ input PORT_A_RD_SRST;
167
+ input PORT_A_RD_ARST;
168
+ input PORT_A_WR_EN;
169
+ input [WR_BE_WIDTH-1:0] PORT_A_WR_BE;
170
+ input [10:0] PORT_A_ADDR;
171
+ input [143:0] PORT_A_WR_DATA;
172
+ output [143:0] PORT_A_RD_DATA;
173
+
174
+ wire [71:0] DIN_A, DIN_B, DOUT_A, DOUT_B;
175
+
176
+ generate
177
+ if (OPTION_BYTEWIDTH == 8) begin
178
+ assign DIN_A = PORT_A_WR_DATA[71:0];
179
+ assign DIN_B = PORT_A_WR_DATA[143:72];
180
+ assign PORT_A_RD_DATA = {DOUT_B, DOUT_A};
181
+ end else begin
182
+ assign DIN_A = {
183
+ PORT_A_WR_DATA[71],
184
+ PORT_A_WR_DATA[62],
185
+ PORT_A_WR_DATA[53],
186
+ PORT_A_WR_DATA[44],
187
+ PORT_A_WR_DATA[35],
188
+ PORT_A_WR_DATA[26],
189
+ PORT_A_WR_DATA[17],
190
+ PORT_A_WR_DATA[8],
191
+ PORT_A_WR_DATA[70:63],
192
+ PORT_A_WR_DATA[61:54],
193
+ PORT_A_WR_DATA[52:45],
194
+ PORT_A_WR_DATA[43:36],
195
+ PORT_A_WR_DATA[34:27],
196
+ PORT_A_WR_DATA[25:18],
197
+ PORT_A_WR_DATA[16:9],
198
+ PORT_A_WR_DATA[7:0]
199
+ };
200
+ assign DIN_B = {
201
+ PORT_A_WR_DATA[72+71],
202
+ PORT_A_WR_DATA[72+62],
203
+ PORT_A_WR_DATA[72+53],
204
+ PORT_A_WR_DATA[72+44],
205
+ PORT_A_WR_DATA[72+35],
206
+ PORT_A_WR_DATA[72+26],
207
+ PORT_A_WR_DATA[72+17],
208
+ PORT_A_WR_DATA[72+8],
209
+ PORT_A_WR_DATA[72+70:72+63],
210
+ PORT_A_WR_DATA[72+61:72+54],
211
+ PORT_A_WR_DATA[72+52:72+45],
212
+ PORT_A_WR_DATA[72+43:72+36],
213
+ PORT_A_WR_DATA[72+34:72+27],
214
+ PORT_A_WR_DATA[72+25:72+18],
215
+ PORT_A_WR_DATA[72+16:72+ 9],
216
+ PORT_A_WR_DATA[72+ 7:72+ 0]
217
+ };
218
+ assign PORT_A_RD_DATA = {
219
+ DOUT_B[71],
220
+ DOUT_B[63:56],
221
+ DOUT_B[70],
222
+ DOUT_B[55:48],
223
+ DOUT_B[69],
224
+ DOUT_B[47:40],
225
+ DOUT_B[68],
226
+ DOUT_B[39:32],
227
+ DOUT_B[67],
228
+ DOUT_B[31:24],
229
+ DOUT_B[66],
230
+ DOUT_B[23:16],
231
+ DOUT_B[65],
232
+ DOUT_B[15:8],
233
+ DOUT_B[64],
234
+ DOUT_B[7:0],
235
+ DOUT_A[71],
236
+ DOUT_A[63:56],
237
+ DOUT_A[70],
238
+ DOUT_A[55:48],
239
+ DOUT_A[69],
240
+ DOUT_A[47:40],
241
+ DOUT_A[68],
242
+ DOUT_A[39:32],
243
+ DOUT_A[67],
244
+ DOUT_A[31:24],
245
+ DOUT_A[66],
246
+ DOUT_A[23:16],
247
+ DOUT_A[65],
248
+ DOUT_A[15:8],
249
+ DOUT_A[64],
250
+ DOUT_A[7:0]
251
+ };
252
+ end
253
+ endgenerate
254
+
255
+ URAM288 #(
256
+ .BWE_MODE_A(OPTION_BYTEWIDTH == 8 ? "PARITY_INDEPENDENT" : "PARITY_INTERLEAVED"),
257
+ .BWE_MODE_B(OPTION_BYTEWIDTH == 8 ? "PARITY_INDEPENDENT" : "PARITY_INTERLEAVED"),
258
+ .EN_AUTO_SLEEP_MODE("FALSE"),
259
+ .IREG_PRE_A("FALSE"),
260
+ .IREG_PRE_B("FALSE"),
261
+ .IS_CLK_INVERTED(!CLK_C_POL),
262
+ .OREG_A("FALSE"),
263
+ .OREG_B("FALSE"),
264
+ .RST_MODE_A(PORT_A_OPTION_RST_MODE),
265
+ .RST_MODE_B(PORT_A_OPTION_RST_MODE),
266
+ ) _TECHMAP_REPLACE_ (
267
+ .ADDR_A({11'b0, PORT_A_ADDR, 1'b0}),
268
+ .BWE_A(PORT_A_WR_BE[WR_BE_WIDTH/2-1:0]),
269
+ .EN_A(PORT_A_CLK_EN),
270
+ .RDB_WR_A(PORT_A_WR_EN),
271
+ .INJECT_DBITERR_A(1'b0),
272
+ .INJECT_SBITERR_A(1'b0),
273
+ .RST_A(PORT_A_OPTION_RST_MODE == "SYNC" ? PORT_A_RD_SRST : PORT_A_RD_ARST),
274
+ .DIN_A(DIN_A),
275
+ .DOUT_A(DOUT_A),
276
+
277
+ .ADDR_B({11'b0, PORT_A_ADDR, 1'b1}),
278
+ .BWE_B(PORT_A_WR_BE[WR_BE_WIDTH-1:WR_BE_WIDTH/2]),
279
+ .EN_B(PORT_A_CLK_EN),
280
+ .RDB_WR_B(PORT_A_WR_EN),
281
+ .INJECT_DBITERR_B(1'b0),
282
+ .INJECT_SBITERR_B(1'b0),
283
+ .RST_B(PORT_A_OPTION_RST_MODE == "SYNC" ? PORT_A_RD_SRST : PORT_A_RD_ARST),
284
+ .DIN_B(DIN_B),
285
+ .DOUT_B(DOUT_B),
286
+
287
+ .CLK(CLK_C),
288
+ .SLEEP(1'b0)
289
+ );
290
+ endmodule
yowasp_yosys/yosys.wasm CHANGED
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yowasp-yosys
3
- Version: 0.53.0.0.post912
3
+ Version: 0.54.0.0.post930
4
4
  Summary: Yosys Open SYnthesis Suite
5
5
  Author-email: Catherine <whitequark@whitequark.org>
6
6
  License-Expression: ISC
@@ -2,7 +2,7 @@ yowasp_yosys/__init__.py,sha256=x--xPTzLWZNoX6H0B2E3a1HMZMk3di10gVnWVLJ92xc,1325
2
2
  yowasp_yosys/sby.py,sha256=at4UB7rmju4xhmFP6b31T7duU2Hx5aSOgGUiExKz7Xc,18496
3
3
  yowasp_yosys/smtbmc.py,sha256=yiI93tHys5c8aXfCdk2dNtw2mwukRXqeT8YGx5Th8eg,74231
4
4
  yowasp_yosys/witness.py,sha256=m3iV2Nydm0p4G79VRaaX3lGul-nGnuxeKnx20MCJgi0,17279
5
- yowasp_yosys/yosys.wasm,sha256=kJpC9cgE7pspygVw_FWEGdtV301egX_bAtvYCMvaL60,30800114
5
+ yowasp_yosys/yosys.wasm,sha256=nsK36QxHJaabNlfIVNUjx_Kf0G0H-4Aqjh-2xe3boMY,30828960
6
6
  yowasp_yosys/share/abc9_map.v,sha256=uWDqMpBQTeeadH1BlHVwkCy2StKF892xbgBgMKLK5-w,923
7
7
  yowasp_yosys/share/abc9_model.v,sha256=IfMyEGOEUBdZyiVule0wMhrVYVYQpmSIcxygbgtHItI,653
8
8
  yowasp_yosys/share/abc9_unmap.v,sha256=w107Y3iJjMU6D_6_aYLf2NziXTnAhpa5_CFAwaYO1iU,638
@@ -67,7 +67,7 @@ yowasp_yosys/share/gatemate/arith_map.v,sha256=U8Lz8wj0WpUh9YP89MVQfkgYcw4xYE0XW
67
67
  yowasp_yosys/share/gatemate/brams.txt,sha256=mtysGrMGltlSw98eOHSSrN38xzQmkxVbfgTivQrZ5qk,1210
68
68
  yowasp_yosys/share/gatemate/brams_init_20.vh,sha256=PKYSRZOL_i6Fmjy1dB-lF0eSlV8BFLjGvDqrw6zhLpw,4480
69
69
  yowasp_yosys/share/gatemate/brams_init_40.vh,sha256=yK50gQK1Kc59RxbbV9xjeWohhInkyZ3g6N5WmtpqMug,17970
70
- yowasp_yosys/share/gatemate/brams_map.v,sha256=dUtJmsUqxezzJfuFeJq8xxCC_MeVlECYagxsXhGEJHA,29326
70
+ yowasp_yosys/share/gatemate/brams_map.v,sha256=dZlYuJQUzZ6bBNx41Lwyg3pvhDqMeAO7fqR0LACP1XM,29978
71
71
  yowasp_yosys/share/gatemate/cells_bb.v,sha256=cc9cOL12VXqvKf6JV4r3XD2dSx4O_2Q8L0yWMlTog3A,11964
72
72
  yowasp_yosys/share/gatemate/cells_sim.v,sha256=WRAD7MrD6K_aNQE8AM4yCldphCksCImFKnguMLj9bd4,65936
73
73
  yowasp_yosys/share/gatemate/inv_map.v,sha256=UpmZftbrZGv7K8od1rjId099dTuqQyaP7z4z-V3hQgI,180
@@ -106,12 +106,12 @@ yowasp_yosys/share/ice40/ff_map.v,sha256=0ikq-i1_UVT6xuFLMj2Zfilwu6wz8oibMdtPegZ
106
106
  yowasp_yosys/share/ice40/latches_map.v,sha256=V5NwBaIML68eOlhDaUJUs8W-ggRePjPsDtUn3mnSpao,258
107
107
  yowasp_yosys/share/ice40/spram.txt,sha256=dCRV0flfJunvnvKV0Q5Kq5NBrhh_PkZGXvUt675aiIk,153
108
108
  yowasp_yosys/share/ice40/spram_map.v,sha256=O8fRkVuH1dgAXEAtYJgh8wTHnZEK75fPAMBI-PgYVqs,475
109
- yowasp_yosys/share/include/backends/cxxrtl/runtime/cxxrtl/cxxrtl.h,sha256=MN2K_SZTGGeq0yQjcR2rd6XQvEL8ewc7GDymzZUg7zY,72493
109
+ yowasp_yosys/share/include/backends/cxxrtl/runtime/cxxrtl/cxxrtl.h,sha256=8ngxTSDlfd24wEl05RP_K_9BflHxxATY-oZMfNaQO5E,72525
110
110
  yowasp_yosys/share/include/backends/cxxrtl/runtime/cxxrtl/cxxrtl_replay.h,sha256=3bFAy3nYtaH4MsLI9Kvf88K6BYOkML8plDMxmPtPdss,30008
111
111
  yowasp_yosys/share/include/backends/cxxrtl/runtime/cxxrtl/cxxrtl_time.h,sha256=6zIxuXG7bXy5UWe7WuA_KQHiwV7VWvcsNecwOPAL_bU,6174
112
112
  yowasp_yosys/share/include/backends/cxxrtl/runtime/cxxrtl/cxxrtl_vcd.h,sha256=L4VOOx7c9rGkxTFi8VjhhNGEbuzxf_j6P5D0_0n0WjA,8637
113
113
  yowasp_yosys/share/include/backends/cxxrtl/runtime/cxxrtl/capi/cxxrtl_capi.cc,sha256=4WH8B0B7Y7GY43BXZX0-6PGFPYcbOcavJseI0wM_VJQ,4559
114
- yowasp_yosys/share/include/backends/cxxrtl/runtime/cxxrtl/capi/cxxrtl_capi.h,sha256=s77MXq7sjTeHcPDO9UALsqbnbqe59dfbnmNJCm4iWpc,16521
114
+ yowasp_yosys/share/include/backends/cxxrtl/runtime/cxxrtl/capi/cxxrtl_capi.h,sha256=LlNWnjmxKqUHJeaJOaXT9OMAYq-G0GLgVzQvsYkCb_U,16719
115
115
  yowasp_yosys/share/include/backends/cxxrtl/runtime/cxxrtl/capi/cxxrtl_capi_vcd.cc,sha256=5A6IK46tg8BWgs_vzS183p9HMZfWP7FZfJzCjnB3vW8,2815
116
116
  yowasp_yosys/share/include/backends/cxxrtl/runtime/cxxrtl/capi/cxxrtl_capi_vcd.h,sha256=P6KBEs-76IK4LwKBhXbju9nwkH3rmmqUm4uSuiaS88M,4286
117
117
  yowasp_yosys/share/include/backends/rtlil/rtlil_backend.h,sha256=h-kkdWtAosSZDzvAW511jAHao-dDUm3fyTJhfMXsZDk,2407
@@ -124,7 +124,7 @@ yowasp_yosys/share/include/kernel/cellaigs.h,sha256=CdYos67IpmAgLvBbJ8EC3hWg6WhB
124
124
  yowasp_yosys/share/include/kernel/celledges.h,sha256=fF_sHJOpN_qQ1P0x8KKoJE9ulDMusfjkF0dBpTMs19E,2216
125
125
  yowasp_yosys/share/include/kernel/celltypes.h,sha256=W44T0u789-fy_tj7fGRTNI7s1jshewrPwmS3_-Oz6-A,18561
126
126
  yowasp_yosys/share/include/kernel/consteval.h,sha256=oEPSKbbgqvNmlLqYFSozZX2cjFQA5IM-d69HmyuZiGo,10864
127
- yowasp_yosys/share/include/kernel/constids.inc,sha256=s4Qb8C2nWUhIXU8txrBzWQia3u2OJ_E6ehifcpPBkYI,3694
127
+ yowasp_yosys/share/include/kernel/constids.inc,sha256=9a-cTYvGkDQr4W1WJpK9PfzvaoiMKhz_MV2mkbBQnbY,3730
128
128
  yowasp_yosys/share/include/kernel/cost.h,sha256=TRW3KGPVLv5MxAmNbSh1mnzwTc-QHvZXSh9Wfc6mw3U,2921
129
129
  yowasp_yosys/share/include/kernel/drivertools.h,sha256=jHGOmnyVCjfvUvoBfQvD9O-Tu6pfs4WVbPbQZv1Mhd4,33537
130
130
  yowasp_yosys/share/include/kernel/ff.h,sha256=vVJqxmyfJ1z9qnnUA3CAoX5NavU33_J4U1Sd7TgPp5M,7631
@@ -132,24 +132,24 @@ yowasp_yosys/share/include/kernel/ffinit.h,sha256=2JWt6YDjYYBtmQYzR68Apnq6S6y2gC
132
132
  yowasp_yosys/share/include/kernel/ffmerge.h,sha256=I3mXyytzRyP92T9XhSQTlv7EN2G31nJhspBxlLYiMEY,6305
133
133
  yowasp_yosys/share/include/kernel/fmt.h,sha256=0UT-aDVX7_KnzlaNyK3iMsSzoICa4Q0HhqsFIrwHBMw,2790
134
134
  yowasp_yosys/share/include/kernel/gzip.h,sha256=wpAZ9hA13HEpWgZnth46JHvVLSA_qdS-JZB5gh83-QA,1847
135
- yowasp_yosys/share/include/kernel/hashlib.h,sha256=3skguI0eCyzEfFoWmsxnjKzWd8pQV1fBZGaWaatOiec,35699
136
- yowasp_yosys/share/include/kernel/io.h,sha256=qfiLTmDMVPV0BuDgIH5BARxW0FhnB1h7BfUQPw_2SVE,1281
135
+ yowasp_yosys/share/include/kernel/hashlib.h,sha256=LgN2dYAg8r0YZnOd1r8DFI0qy7nyWO--SMghZaD7P9k,35719
136
+ yowasp_yosys/share/include/kernel/io.h,sha256=MoZ3Ta6cOu8eOvdzWh8XOaII994hrWKtRsWfXs9LvGQ,2334
137
137
  yowasp_yosys/share/include/kernel/json.h,sha256=tE3AgUslbZd5TRFEipj0HptYjWgNfMjzV44l3A5zAu8,2851
138
138
  yowasp_yosys/share/include/kernel/log.h,sha256=NZNJPBf-F_sISwfmJ_GQPm1Z9UzUCYQD6jHiWnsVorY,15380
139
139
  yowasp_yosys/share/include/kernel/macc.h,sha256=LHm507daCT57lGCNNwia1LJVk3pkBB5ZteCZihxD5Qw,8926
140
140
  yowasp_yosys/share/include/kernel/mem.h,sha256=xKz0HxXap_PTdzpK-NUcbxybF3YisRc2JoCv17TXOc4,15505
141
141
  yowasp_yosys/share/include/kernel/modtools.h,sha256=mRnzc5TIsdIbHlFSTk2Yc0y85ttknhK-dAlti3neSI8,14388
142
142
  yowasp_yosys/share/include/kernel/qcsat.h,sha256=ibhpJRu0youjDXPllXrDJi851VpwW1kbJ_y94_X6JhU,2804
143
- yowasp_yosys/share/include/kernel/register.h,sha256=2xAbUndqoXwACqtqowqmfmRQQFlwEpV82wy2ejSGwUY,5482
144
- yowasp_yosys/share/include/kernel/rtlil.h,sha256=Ycfn-zWd66LZ6Kzcb0rtFiU7jBiO_CnLxPi93pKfwdE,97702
143
+ yowasp_yosys/share/include/kernel/register.h,sha256=bxyRq3lNK2UUU_QCLaDMC2aw4pgiAi9Ll7WgqRQxPoU,5538
144
+ yowasp_yosys/share/include/kernel/rtlil.h,sha256=4kP9hgPjbPFLy9kH9JdmOEbp6E1OI5Nn5P-eK0rc8pw,99416
145
145
  yowasp_yosys/share/include/kernel/satgen.h,sha256=zx8LptIgds0Z9sxXx6HGxNNYuk05dHqQZy1aXFWEXC0,10483
146
146
  yowasp_yosys/share/include/kernel/scopeinfo.h,sha256=EAU3vSTIwH1RrbSC7HVoTWh4SLfHMSIoidQPvT1Mo7g,11797
147
147
  yowasp_yosys/share/include/kernel/sexpr.h,sha256=CUDKFehVoGmakYBYLpEKUtlM0Dd3oI6TNW_cKz-qe0g,4720
148
148
  yowasp_yosys/share/include/kernel/sigtools.h,sha256=Tb1hUOLJD-AV4ojLVcjx0Dc00QSy6nGJyTwNMa4eqw0,8074
149
149
  yowasp_yosys/share/include/kernel/timinginfo.h,sha256=JNRktUWp7ow_wn4P5BxlOkv7hNS7qKbws7Gjs6VSUx8,7367
150
150
  yowasp_yosys/share/include/kernel/utils.h,sha256=5bJFi7SNf18SL7icrEQEDDYnqT9TrjBMlPZGHbinFK8,7315
151
- yowasp_yosys/share/include/kernel/yosys.h,sha256=YssZ71BZWOrqlbBQ2Q9FYx_-6ymrrfPMaAqYTRu6txc,3403
152
- yowasp_yosys/share/include/kernel/yosys_common.h,sha256=_e0g26tlgiqrS7PSDIlXp4O9ZUcGLusvAblcuroZ3GE,8974
151
+ yowasp_yosys/share/include/kernel/yosys.h,sha256=bx9lTnEhsorxUoLhz2hu0__pSvVAyrthvGjoqaOL6oQ,3438
152
+ yowasp_yosys/share/include/kernel/yosys_common.h,sha256=FqpXyvmiEqcVXbN_i57revYawuMotULASnlOUGgWa0Y,7984
153
153
  yowasp_yosys/share/include/kernel/yw.h,sha256=Gr5zqBNUSKXOKhdw7tl9-KcCiZg3xFcK9Msj7LMawdI,5470
154
154
  yowasp_yosys/share/include/libs/ezsat/ezminisat.h,sha256=bSrDL6VRinpXdULoR8P9lQaT1Dy4kAEZfTcKjRKOdjg,2098
155
155
  yowasp_yosys/share/include/libs/ezsat/ezsat.h,sha256=eggeGwS9pFyxSYGT0RtOqX189pbXFAKDfPZzIYTmqIk,14523
@@ -272,7 +272,7 @@ yowasp_yosys/share/python3/sby_mode_cover.py,sha256=JHt1NDaocK-j0kkGuJf4om47mMJx
272
272
  yowasp_yosys/share/python3/sby_mode_live.py,sha256=jpINzeD4tEZDhsVORbfg3tIXZbA5z-bGr-L2HHi83K0,1491
273
273
  yowasp_yosys/share/python3/sby_mode_prove.py,sha256=igQAoaxEfO6SSXNm8PeIYV1qWLC9os96V1m7FHAJVKo,1941
274
274
  yowasp_yosys/share/python3/sby_sim.py,sha256=HWSLhMOv1RrNXVrmgsibBTf3lHUHUNaAhfnBF2Wx9Bc,4403
275
- yowasp_yosys/share/python3/sby_status.py,sha256=g__ivZ0bHmqrJLG_zx0LcFOe3E5O5yV34HhG9uvZo4Q,10946
275
+ yowasp_yosys/share/python3/sby_status.py,sha256=KTHT5OdQ64f2NWOWo2tGT7tjn3I7i27d_OrFqgRW-lI,10968
276
276
  yowasp_yosys/share/python3/smtio.py,sha256=iaKRFczPE2ml5MpEpvJPcKY9KF_bwyUDuYtOh8v0VGo,48785
277
277
  yowasp_yosys/share/python3/ywio.py,sha256=F3V-lAn7GNAlDh8oO3VtLJbQd3LwJZyrq3qjZVW_A_4,12442
278
278
  yowasp_yosys/share/quicklogic/common/cells_sim.v,sha256=XjVURrz_kgf2n32Mq9KKUXAbmKJsazqS87PiznC75Ew,366
@@ -326,8 +326,8 @@ yowasp_yosys/share/xilinx/lutrams_xcu.txt,sha256=gKp15nl9HxZ8zeT0MyKwn1KKx2YTO7i
326
326
  yowasp_yosys/share/xilinx/lutrams_xcv.txt,sha256=sfG2qwrRHiFUMAA3JeASE0O_O8SQpxxP75BuQFEXs4c,797
327
327
  yowasp_yosys/share/xilinx/lutrams_xcv_map.v,sha256=0l0HfZWulWO0SwehX_NlOh8WU5zkli2yQ8ycR8ud-qg,3209
328
328
  yowasp_yosys/share/xilinx/mux_map.v,sha256=HxnY4T58qJMVEzkyIJDmmVxuB3wO9qpMm-vQgfaB_aY,2498
329
- yowasp_yosys/share/xilinx/urams.txt,sha256=R61kLYJgzve7rAgu0WWXvg84Q3pGjSE1RNcDGaKHgxQ,617
330
- yowasp_yosys/share/xilinx/urams_map.v,sha256=33-6b2_76ythf8ytBNUA25PtGR7rZtaFFb4kLHaIgLM,3552
329
+ yowasp_yosys/share/xilinx/urams.txt,sha256=mhw-IbAw4ahqUbGDYY97D1udmNdDH9h8VnMw4zvgWC4,972
330
+ yowasp_yosys/share/xilinx/urams_map.v,sha256=KJC143s0dvLgyMYQ1Wg2yK-11R9Zz3WFIzSZKp0HUFo,6890
331
331
  yowasp_yosys/share/xilinx/xc3s_mult_map.v,sha256=t21-0gcNlN6zIdMi1SdRThV7zySFp34GzFsGlJVsOWo,266
332
332
  yowasp_yosys/share/xilinx/xc3sda_dsp_map.v,sha256=IgMaSZ6Szy-QCcV97qfTjEGDJMEgradPCg6vIH8JYTg,560
333
333
  yowasp_yosys/share/xilinx/xc4v_dsp_map.v,sha256=7WiKJMJmY4SGhKjbf_Uf6u1lY_dvjmttQVVC5qP-H1Q,661
@@ -335,8 +335,8 @@ yowasp_yosys/share/xilinx/xc5v_dsp_map.v,sha256=I4lg0RQ54fBBba_7NNvUgwS4tQ1yLIsU
335
335
  yowasp_yosys/share/xilinx/xc6s_dsp_map.v,sha256=gTxHocB-Dn5G4BplWgri_tLhT6DIO2S0X-yu4iBKYyk,562
336
336
  yowasp_yosys/share/xilinx/xc7_dsp_map.v,sha256=zrzreQi7mElrAMtrayxtiO_Bw00S6zsjSjSVcjmJPH0,884
337
337
  yowasp_yosys/share/xilinx/xcu_dsp_map.v,sha256=gzCgl1emrHGcigVmU0nP0pW7dlhQ01SaWwXzHHcqt-o,882
338
- yowasp_yosys-0.53.0.0.post912.dist-info/METADATA,sha256=onz8gMX7UBRxs5U4tHUGbFenBTL_o3vHKtXmzVhpNeE,2558
339
- yowasp_yosys-0.53.0.0.post912.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
340
- yowasp_yosys-0.53.0.0.post912.dist-info/entry_points.txt,sha256=p_9sIVi2ZqsqgYYo14PywYkwHYTa76fMEq3LxweXJpc,220
341
- yowasp_yosys-0.53.0.0.post912.dist-info/top_level.txt,sha256=_yiNT8kLYkcD1TEuUCzQ_MkON1c3xuIRV59zXds4zd4,13
342
- yowasp_yosys-0.53.0.0.post912.dist-info/RECORD,,
338
+ yowasp_yosys-0.54.0.0.post930.dist-info/METADATA,sha256=oX2lj5HvNdcysiKhH3r7pm79qvYZFe59w8u6JMSwo8Q,2558
339
+ yowasp_yosys-0.54.0.0.post930.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
340
+ yowasp_yosys-0.54.0.0.post930.dist-info/entry_points.txt,sha256=p_9sIVi2ZqsqgYYo14PywYkwHYTa76fMEq3LxweXJpc,220
341
+ yowasp_yosys-0.54.0.0.post930.dist-info/top_level.txt,sha256=_yiNT8kLYkcD1TEuUCzQ_MkON1c3xuIRV59zXds4zd4,13
342
+ yowasp_yosys-0.54.0.0.post930.dist-info/RECORD,,