yowasp-yosys 0.60.0.0.post1055__py3-none-any.whl → 0.61.0.0.post1073__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.
@@ -2,6 +2,7 @@ ram block $__GOWIN_SP_ {
2
2
  abits 14;
3
3
  widths 1 2 4 9 18 36 per_port;
4
4
  cost 128;
5
+ byte 9;
5
6
  init no_undef;
6
7
  port srsw "A" {
7
8
  clock posedge;
@@ -24,6 +25,7 @@ ram block $__GOWIN_SP_ {
24
25
  rdwr old;
25
26
  }
26
27
  }
28
+ wrbe_separate;
27
29
  }
28
30
  }
29
31
 
@@ -31,6 +33,7 @@ ram block $__GOWIN_DP_ {
31
33
  abits 14;
32
34
  widths 1 2 4 9 18 per_port;
33
35
  cost 128;
36
+ byte 9;
34
37
  init no_undef;
35
38
  port srsw "A" "B" {
36
39
  clock posedge;
@@ -53,6 +56,7 @@ ram block $__GOWIN_DP_ {
53
56
  rdwr old;
54
57
  }
55
58
  }
59
+ wrbe_separate;
56
60
  }
57
61
  }
58
62
 
@@ -60,6 +64,7 @@ ram block $__GOWIN_SDP_ {
60
64
  abits 14;
61
65
  widths 1 2 4 9 18 36 per_port;
62
66
  cost 128;
67
+ byte 9;
63
68
  init no_undef;
64
69
  port sr "R" {
65
70
  clock posedge;
@@ -75,5 +80,6 @@ ram block $__GOWIN_SDP_ {
75
80
  port sw "W" {
76
81
  clock posedge;
77
82
  clken;
83
+ wrbe_separate;
78
84
  }
79
85
  }
@@ -14,7 +14,7 @@
14
14
  `define x8_width(width) (width / 9 * 8 + width % 9)
15
15
  `define x8_rd_data(data) {1'bx, data[31:24], 1'bx, data[23:16], 1'bx, data[15:8], 1'bx, data[7:0]}
16
16
  `define x8_wr_data(data) {data[34:27], data[25:18], data[16:9], data[7:0]}
17
- `define addrbe_always(width, addr) (width < 18 ? addr : width == 18 ? {addr[13:4], 4'b0011} : {addr[13:5], 5'b01111})
17
+ `define addrbe(width, addr, w_be) (width < 18 ? addr : width == 18 ? {addr[13:4], 2'b00, w_be[1:0]} : {addr[13:5], 1'b0, w_be[3:0]})
18
18
 
19
19
 
20
20
  `define INIT(func) \
@@ -90,6 +90,7 @@ parameter OPTION_RESET_MODE = "SYNC";
90
90
 
91
91
  parameter PORT_A_WIDTH = 36;
92
92
  parameter PORT_A_OPTION_WRITE_MODE = 0;
93
+ parameter PORT_A_WR_BE_WIDTH = 4;
93
94
 
94
95
  input PORT_A_CLK;
95
96
  input PORT_A_CLK_EN;
@@ -97,13 +98,14 @@ input PORT_A_WR_EN;
97
98
  input PORT_A_RD_SRST;
98
99
  input PORT_A_RD_ARST;
99
100
  input [13:0] PORT_A_ADDR;
101
+ input [PORT_A_WR_BE_WIDTH-1:0] PORT_A_WR_BE;
100
102
  input [PORT_A_WIDTH-1:0] PORT_A_WR_DATA;
101
103
  output [PORT_A_WIDTH-1:0] PORT_A_RD_DATA;
102
104
 
103
105
  `DEF_FUNCS
104
106
 
105
107
  wire RST = OPTION_RESET_MODE == "SYNC" ? PORT_A_RD_SRST : PORT_A_RD_ARST;
106
- wire [13:0] AD = `addrbe_always(PORT_A_WIDTH, PORT_A_ADDR);
108
+ wire [13:0] AD = `addrbe(PORT_A_WIDTH, PORT_A_ADDR, PORT_A_WR_BE);
107
109
 
108
110
  generate
109
111
 
@@ -173,9 +175,11 @@ parameter OPTION_RESET_MODE = "SYNC";
173
175
 
174
176
  parameter PORT_A_WIDTH = 18;
175
177
  parameter PORT_A_OPTION_WRITE_MODE = 0;
178
+ parameter PORT_A_WR_BE_WIDTH = 4;
176
179
 
177
180
  parameter PORT_B_WIDTH = 18;
178
181
  parameter PORT_B_OPTION_WRITE_MODE = 0;
182
+ parameter PORT_B_WR_BE_WIDTH = 4;
179
183
 
180
184
  input PORT_A_CLK;
181
185
  input PORT_A_CLK_EN;
@@ -183,6 +187,7 @@ input PORT_A_WR_EN;
183
187
  input PORT_A_RD_SRST;
184
188
  input PORT_A_RD_ARST;
185
189
  input [13:0] PORT_A_ADDR;
190
+ input [PORT_A_WR_BE_WIDTH-1:0] PORT_A_WR_BE;
186
191
  input [PORT_A_WIDTH-1:0] PORT_A_WR_DATA;
187
192
  output [PORT_A_WIDTH-1:0] PORT_A_RD_DATA;
188
193
 
@@ -192,6 +197,7 @@ input PORT_B_WR_EN;
192
197
  input PORT_B_RD_SRST;
193
198
  input PORT_B_RD_ARST;
194
199
  input [13:0] PORT_B_ADDR;
200
+ input [PORT_B_WR_BE_WIDTH-1:0] PORT_B_WR_BE;
195
201
  input [PORT_A_WIDTH-1:0] PORT_B_WR_DATA;
196
202
  output [PORT_A_WIDTH-1:0] PORT_B_RD_DATA;
197
203
 
@@ -199,8 +205,8 @@ output [PORT_A_WIDTH-1:0] PORT_B_RD_DATA;
199
205
 
200
206
  wire RSTA = OPTION_RESET_MODE == "SYNC" ? PORT_A_RD_SRST : PORT_A_RD_ARST;
201
207
  wire RSTB = OPTION_RESET_MODE == "SYNC" ? PORT_B_RD_SRST : PORT_B_RD_ARST;
202
- wire [13:0] ADA = `addrbe_always(PORT_A_WIDTH, PORT_A_ADDR);
203
- wire [13:0] ADB = `addrbe_always(PORT_B_WIDTH, PORT_B_ADDR);
208
+ wire [13:0] ADA = `addrbe(PORT_A_WIDTH, PORT_A_ADDR, PORT_B_WR_BE);
209
+ wire [13:0] ADB = `addrbe(PORT_B_WIDTH, PORT_B_ADDR, PORT_B_WR_BE);
204
210
 
205
211
  generate
206
212
 
@@ -306,6 +312,7 @@ parameter OPTION_RESET_MODE = "SYNC";
306
312
 
307
313
  parameter PORT_R_WIDTH = 18;
308
314
  parameter PORT_W_WIDTH = 18;
315
+ parameter PORT_W_WR_BE_WIDTH = 4;
309
316
 
310
317
  input PORT_R_CLK;
311
318
  input PORT_R_CLK_EN;
@@ -318,12 +325,13 @@ input PORT_W_CLK;
318
325
  input PORT_W_CLK_EN;
319
326
  input PORT_W_WR_EN;
320
327
  input [13:0] PORT_W_ADDR;
328
+ input [PORT_W_WR_BE_WIDTH-1:0] PORT_W_WR_BE;
321
329
  input [PORT_W_WIDTH-1:0] PORT_W_WR_DATA;
322
330
 
323
331
  `DEF_FUNCS
324
332
 
325
333
  wire RST = OPTION_RESET_MODE == "SYNC" ? PORT_R_RD_SRST : PORT_R_RD_ARST;
326
- wire [13:0] ADW = `addrbe_always(PORT_W_WIDTH, PORT_W_ADDR);
334
+ wire [13:0] ADW = `addrbe(PORT_W_WIDTH, PORT_W_ADDR, PORT_W_WR_BE);
327
335
  wire WRE = PORT_W_CLK_EN & PORT_W_WR_EN;
328
336
 
329
337
  generate
@@ -14,7 +14,7 @@
14
14
  `define x8_width(width) (width / 9 * 8 + width % 9)
15
15
  `define x8_rd_data(data) {1'bx, data[31:24], 1'bx, data[23:16], 1'bx, data[15:8], 1'bx, data[7:0]}
16
16
  `define x8_wr_data(data) {data[34:27], data[25:18], data[16:9], data[7:0]}
17
- `define addrbe_always(width, addr) (width < 18 ? addr : width == 18 ? {addr[13:4], 4'b0011} : {addr[13:5], 5'b01111})
17
+ `define addrbe(width, addr, w_be) (width < 18 ? addr : width == 18 ? {addr[13:4], 2'b00, w_be[1:0]} : {addr[13:5], 1'b0, w_be[3:0]})
18
18
 
19
19
 
20
20
  `define INIT(func) \
@@ -90,6 +90,7 @@ parameter OPTION_RESET_MODE = "SYNC";
90
90
 
91
91
  parameter PORT_A_WIDTH = 36;
92
92
  parameter PORT_A_OPTION_WRITE_MODE = 0;
93
+ parameter PORT_A_WR_BE_WIDTH = 4;
93
94
 
94
95
  input PORT_A_CLK;
95
96
  input PORT_A_CLK_EN;
@@ -97,13 +98,14 @@ input PORT_A_WR_EN;
97
98
  input PORT_A_RD_SRST;
98
99
  input PORT_A_RD_ARST;
99
100
  input [13:0] PORT_A_ADDR;
101
+ input [PORT_A_WR_BE_WIDTH-1:0] PORT_A_WR_BE;
100
102
  input [PORT_A_WIDTH-1:0] PORT_A_WR_DATA;
101
103
  output [PORT_A_WIDTH-1:0] PORT_A_RD_DATA;
102
104
 
103
105
  `DEF_FUNCS
104
106
 
105
107
  wire RST = OPTION_RESET_MODE == "SYNC" ? PORT_A_RD_SRST : PORT_A_RD_ARST;
106
- wire [13:0] AD = `addrbe_always(PORT_A_WIDTH, PORT_A_ADDR);
108
+ wire [13:0] AD = `addrbe(PORT_A_WIDTH, PORT_A_ADDR, PORT_A_WR_BE);
107
109
 
108
110
  generate
109
111
 
@@ -173,9 +175,11 @@ parameter OPTION_RESET_MODE = "SYNC";
173
175
 
174
176
  parameter PORT_A_WIDTH = 18;
175
177
  parameter PORT_A_OPTION_WRITE_MODE = 0;
178
+ parameter PORT_A_WR_BE_WIDTH = 4;
176
179
 
177
180
  parameter PORT_B_WIDTH = 18;
178
181
  parameter PORT_B_OPTION_WRITE_MODE = 0;
182
+ parameter PORT_B_WR_BE_WIDTH = 4;
179
183
 
180
184
  input PORT_A_CLK;
181
185
  input PORT_A_CLK_EN;
@@ -183,6 +187,7 @@ input PORT_A_WR_EN;
183
187
  input PORT_A_RD_SRST;
184
188
  input PORT_A_RD_ARST;
185
189
  input [13:0] PORT_A_ADDR;
190
+ input [PORT_A_WR_BE_WIDTH-1:0] PORT_A_WR_BE;
186
191
  input [PORT_A_WIDTH-1:0] PORT_A_WR_DATA;
187
192
  output [PORT_A_WIDTH-1:0] PORT_A_RD_DATA;
188
193
 
@@ -192,6 +197,7 @@ input PORT_B_WR_EN;
192
197
  input PORT_B_RD_SRST;
193
198
  input PORT_B_RD_ARST;
194
199
  input [13:0] PORT_B_ADDR;
200
+ input [PORT_B_WR_BE_WIDTH-1:0] PORT_B_WR_BE;
195
201
  input [PORT_A_WIDTH-1:0] PORT_B_WR_DATA;
196
202
  output [PORT_A_WIDTH-1:0] PORT_B_RD_DATA;
197
203
 
@@ -199,8 +205,8 @@ output [PORT_A_WIDTH-1:0] PORT_B_RD_DATA;
199
205
 
200
206
  wire RSTA = OPTION_RESET_MODE == "SYNC" ? PORT_A_RD_SRST : PORT_A_RD_ARST;
201
207
  wire RSTB = OPTION_RESET_MODE == "SYNC" ? PORT_B_RD_SRST : PORT_B_RD_ARST;
202
- wire [13:0] ADA = `addrbe_always(PORT_A_WIDTH, PORT_A_ADDR);
203
- wire [13:0] ADB = `addrbe_always(PORT_B_WIDTH, PORT_B_ADDR);
208
+ wire [13:0] ADA = `addrbe(PORT_A_WIDTH, PORT_A_ADDR, PORT_B_WR_BE);
209
+ wire [13:0] ADB = `addrbe(PORT_B_WIDTH, PORT_B_ADDR, PORT_B_WR_BE);
204
210
 
205
211
  generate
206
212
 
@@ -306,6 +312,7 @@ parameter OPTION_RESET_MODE = "SYNC";
306
312
 
307
313
  parameter PORT_R_WIDTH = 18;
308
314
  parameter PORT_W_WIDTH = 18;
315
+ parameter PORT_W_WR_BE_WIDTH = 4;
309
316
 
310
317
  input PORT_R_CLK;
311
318
  input PORT_R_CLK_EN;
@@ -318,12 +325,13 @@ input PORT_W_CLK;
318
325
  input PORT_W_CLK_EN;
319
326
  input PORT_W_WR_EN;
320
327
  input [13:0] PORT_W_ADDR;
328
+ input [PORT_W_WR_BE_WIDTH-1:0] PORT_W_WR_BE;
321
329
  input [PORT_W_WIDTH-1:0] PORT_W_WR_DATA;
322
330
 
323
331
  `DEF_FUNCS
324
332
 
325
333
  wire RST = OPTION_RESET_MODE == "SYNC" ? PORT_R_RD_SRST : PORT_R_RD_ARST;
326
- wire [13:0] ADW = `addrbe_always(PORT_W_WIDTH, PORT_W_ADDR);
334
+ wire [13:0] ADW = `addrbe(PORT_W_WIDTH, PORT_W_ADDR, PORT_W_WR_BE);
327
335
  wire WRE = PORT_W_CLK_EN & PORT_W_WR_EN;
328
336
 
329
337
  generate
@@ -305,18 +305,18 @@ struct CellTypes
305
305
  cell_types.clear();
306
306
  }
307
307
 
308
- bool cell_known(const RTLIL::IdString &type) const
308
+ bool cell_known(RTLIL::IdString type) const
309
309
  {
310
310
  return cell_types.count(type) != 0;
311
311
  }
312
312
 
313
- bool cell_output(const RTLIL::IdString &type, const RTLIL::IdString &port) const
313
+ bool cell_output(RTLIL::IdString type, RTLIL::IdString port) const
314
314
  {
315
315
  auto it = cell_types.find(type);
316
316
  return it != cell_types.end() && it->second.outputs.count(port) != 0;
317
317
  }
318
318
 
319
- bool cell_input(const RTLIL::IdString &type, const RTLIL::IdString &port) const
319
+ bool cell_input(RTLIL::IdString type, RTLIL::IdString port) const
320
320
  {
321
321
  auto it = cell_types.find(type);
322
322
  return it != cell_types.end() && it->second.inputs.count(port) != 0;
@@ -332,7 +332,7 @@ struct CellTypes
332
332
  return RTLIL::PortDir(is_input + is_output * 2);
333
333
  }
334
334
 
335
- bool cell_evaluable(const RTLIL::IdString &type) const
335
+ bool cell_evaluable(RTLIL::IdString type) const
336
336
  {
337
337
  auto it = cell_types.find(type);
338
338
  return it != cell_types.end() && it->second.is_evaluable;
@@ -1321,6 +1321,12 @@ public:
1321
1321
  return i < 0 ? 0 : 1;
1322
1322
  }
1323
1323
 
1324
+ int lookup(const K &key) const
1325
+ {
1326
+ Hasher::hash_t hash = database.do_hash(key);
1327
+ return database.do_lookup_no_rehash(key, hash);
1328
+ }
1329
+
1324
1330
  void expect(const K &key, int i)
1325
1331
  {
1326
1332
  int j = (*this)(key);
@@ -291,54 +291,6 @@ void log_abort_internal(const char *file, int line);
291
291
  #define log_ping() YOSYS_NAMESPACE_PREFIX log("-- %s:%d %s --\n", __FILE__, __LINE__, __PRETTY_FUNCTION__)
292
292
 
293
293
 
294
- // ---------------------------------------------------
295
- // This is the magic behind the code coverage counters
296
- // ---------------------------------------------------
297
-
298
- #if defined(YOSYS_ENABLE_COVER) && (defined(__linux__) || defined(__FreeBSD__))
299
-
300
- #define cover(_id) do { \
301
- static CoverData __d __attribute__((section("yosys_cover_list"), aligned(1), used)) = { __FILE__, __FUNCTION__, _id, __LINE__, 0 }; \
302
- __d.counter.fetch_add(1, std::memory_order_relaxed); \
303
- } while (0)
304
-
305
- struct CoverData {
306
- const char *file, *func, *id;
307
- int line;
308
- std::atomic<int> counter;
309
- };
310
-
311
- // this two symbols are created by the linker __start_yosys_cover_listfor the "yosys_cover_list" ELF section
312
- extern "C" struct CoverData __start_yosys_cover_list[];
313
- extern "C" struct CoverData __stop_yosys_cover_list[];
314
-
315
- extern dict<std::string, std::pair<std::string, int>> extra_coverage_data;
316
-
317
- void cover_extra(std::string parent, std::string id, bool increment = true);
318
- dict<std::string, std::pair<std::string, int>> get_coverage_data();
319
-
320
- #define cover_list(_id, ...) do { cover(_id); \
321
- std::string r = cover_list_worker(_id, __VA_ARGS__); \
322
- log_assert(r.empty()); \
323
- } while (0)
324
-
325
- static inline std::string cover_list_worker(std::string, std::string last) {
326
- return last;
327
- }
328
-
329
- template<typename... T>
330
- std::string cover_list_worker(std::string prefix, std::string first, T... rest) {
331
- std::string selected = cover_list_worker(prefix, rest...);
332
- cover_extra(prefix, prefix + "." + first, first == selected);
333
- return first == selected ? "" : selected;
334
- }
335
-
336
- #else
337
- # define cover(...) do { } while (0)
338
- # define cover_list(...) do { } while (0)
339
- #endif
340
-
341
-
342
294
  // ------------------------------------------------------------
343
295
  // everything below this line are utilities for troubleshooting
344
296
  // ------------------------------------------------------------
@@ -161,7 +161,7 @@ struct ModIndex : public RTLIL::Monitor
161
161
  #endif
162
162
  }
163
163
 
164
- void notify_connect(RTLIL::Cell *cell, const RTLIL::IdString &port, const RTLIL::SigSpec &old_sig, const RTLIL::SigSpec &sig) override
164
+ void notify_connect(RTLIL::Cell *cell, RTLIL::IdString port, const RTLIL::SigSpec &old_sig, const RTLIL::SigSpec &sig) override
165
165
  {
166
166
  log_assert(module == cell->module);
167
167
 
@@ -223,8 +223,8 @@ struct RTLIL::IdString
223
223
 
224
224
  constexpr inline IdString() : index_(0) { }
225
225
  inline IdString(const char *str) : index_(insert(std::string_view(str))) { }
226
- constexpr inline IdString(const IdString &str) : index_(str.index_) { }
227
- inline IdString(IdString &&str) : index_(str.index_) { str.index_ = 0; }
226
+ constexpr IdString(const IdString &str) = default;
227
+ IdString(IdString &&str) = default;
228
228
  inline IdString(const std::string &str) : index_(insert(std::string_view(str))) { }
229
229
  inline IdString(std::string_view str) : index_(insert(str)) { }
230
230
  constexpr inline IdString(StaticId id) : index_(static_cast<short>(id)) {}
@@ -241,8 +241,6 @@ struct RTLIL::IdString
241
241
  *this = id;
242
242
  }
243
243
 
244
- constexpr inline const IdString &id_string() const { return *this; }
245
-
246
244
  inline const char *c_str() const {
247
245
  if (index_ >= 0)
248
246
  return global_id_storage_.at(index_).buf;
@@ -372,7 +370,7 @@ struct RTLIL::IdString
372
370
  return Substrings(global_autoidx_id_storage_.at(index_).prefix, -index_);
373
371
  }
374
372
 
375
- inline bool lt_by_name(const IdString &rhs) const {
373
+ inline bool lt_by_name(IdString rhs) const {
376
374
  Substrings lhs_it = substrings();
377
375
  Substrings rhs_it = rhs.substrings();
378
376
  std::string_view lhs_substr = lhs_it.first();
@@ -399,12 +397,12 @@ struct RTLIL::IdString
399
397
  }
400
398
  }
401
399
 
402
- inline bool operator<(const IdString &rhs) const {
400
+ inline bool operator<(IdString rhs) const {
403
401
  return index_ < rhs.index_;
404
402
  }
405
403
 
406
- inline bool operator==(const IdString &rhs) const { return index_ == rhs.index_; }
407
- inline bool operator!=(const IdString &rhs) const { return index_ != rhs.index_; }
404
+ inline bool operator==(IdString rhs) const { return index_ == rhs.index_; }
405
+ inline bool operator!=(IdString rhs) const { return index_ != rhs.index_; }
408
406
 
409
407
  // The methods below are just convenience functions for better compatibility with std::string.
410
408
 
@@ -528,7 +526,7 @@ struct RTLIL::IdString
528
526
  return (... || in(args));
529
527
  }
530
528
 
531
- bool in(const IdString &rhs) const { return *this == rhs; }
529
+ bool in(IdString rhs) const { return *this == rhs; }
532
530
  bool in(const char *rhs) const { return *this == rhs; }
533
531
  bool in(const std::string &rhs) const { return *this == rhs; }
534
532
  inline bool in(const pool<IdString> &rhs) const;
@@ -646,13 +644,13 @@ private:
646
644
  namespace hashlib {
647
645
  template <>
648
646
  struct hash_ops<RTLIL::IdString> {
649
- static inline bool cmp(const RTLIL::IdString &a, const RTLIL::IdString &b) {
647
+ static inline bool cmp(RTLIL::IdString a, RTLIL::IdString b) {
650
648
  return a == b;
651
649
  }
652
- [[nodiscard]] static inline Hasher hash(const RTLIL::IdString &id) {
650
+ [[nodiscard]] static inline Hasher hash(RTLIL::IdString id) {
653
651
  return id.hash_top();
654
652
  }
655
- [[nodiscard]] static inline Hasher hash_into(const RTLIL::IdString &id, Hasher h) {
653
+ [[nodiscard]] static inline Hasher hash_into(RTLIL::IdString id, Hasher h) {
656
654
  return id.hash_into(h);
657
655
  }
658
656
  };
@@ -759,11 +757,11 @@ namespace RTLIL {
759
757
  return str.substr(1);
760
758
  }
761
759
 
762
- static inline std::string unescape_id(const RTLIL::IdString &str) {
760
+ static inline std::string unescape_id(RTLIL::IdString str) {
763
761
  return unescape_id(str.str());
764
762
  }
765
763
 
766
- static inline const char *id2cstr(const RTLIL::IdString &str) {
764
+ static inline const char *id2cstr(RTLIL::IdString str) {
767
765
  return log_id(str);
768
766
  }
769
767
 
@@ -780,7 +778,7 @@ namespace RTLIL {
780
778
  };
781
779
 
782
780
  struct sort_by_id_str {
783
- bool operator()(const RTLIL::IdString &a, const RTLIL::IdString &b) const {
781
+ bool operator()(RTLIL::IdString a, RTLIL::IdString b) const {
784
782
  return a.lt_by_name(b);
785
783
  }
786
784
  };
@@ -1246,22 +1244,22 @@ struct RTLIL::AttrObject
1246
1244
  {
1247
1245
  dict<RTLIL::IdString, RTLIL::Const> attributes;
1248
1246
 
1249
- bool has_attribute(const RTLIL::IdString &id) const;
1247
+ bool has_attribute(RTLIL::IdString id) const;
1250
1248
 
1251
- void set_bool_attribute(const RTLIL::IdString &id, bool value=true);
1252
- bool get_bool_attribute(const RTLIL::IdString &id) const;
1249
+ void set_bool_attribute(RTLIL::IdString id, bool value=true);
1250
+ bool get_bool_attribute(RTLIL::IdString id) const;
1253
1251
 
1254
1252
  [[deprecated("Use Module::get_blackbox_attribute() instead.")]]
1255
1253
  bool get_blackbox_attribute(bool ignore_wb=false) const {
1256
1254
  return get_bool_attribute(ID::blackbox) || (!ignore_wb && get_bool_attribute(ID::whitebox));
1257
1255
  }
1258
1256
 
1259
- void set_string_attribute(const RTLIL::IdString& id, string value);
1260
- string get_string_attribute(const RTLIL::IdString &id) const;
1257
+ void set_string_attribute(RTLIL::IdString id, string value);
1258
+ string get_string_attribute(RTLIL::IdString id) const;
1261
1259
 
1262
- void set_strpool_attribute(const RTLIL::IdString& id, const pool<string> &data);
1263
- void add_strpool_attribute(const RTLIL::IdString& id, const pool<string> &data);
1264
- pool<string> get_strpool_attribute(const RTLIL::IdString &id) const;
1260
+ void set_strpool_attribute(RTLIL::IdString id, const pool<string> &data);
1261
+ void add_strpool_attribute(RTLIL::IdString id, const pool<string> &data);
1262
+ pool<string> get_strpool_attribute(RTLIL::IdString id) const;
1265
1263
 
1266
1264
  void set_src_attribute(const std::string &src) {
1267
1265
  set_string_attribute(ID::src, src);
@@ -1273,8 +1271,8 @@ struct RTLIL::AttrObject
1273
1271
  void set_hdlname_attribute(const vector<string> &hierarchy);
1274
1272
  vector<string> get_hdlname_attribute() const;
1275
1273
 
1276
- void set_intvec_attribute(const RTLIL::IdString& id, const vector<int> &data);
1277
- vector<int> get_intvec_attribute(const RTLIL::IdString &id) const;
1274
+ void set_intvec_attribute(RTLIL::IdString id, const vector<int> &data);
1275
+ vector<int> get_intvec_attribute(RTLIL::IdString id) const;
1278
1276
  };
1279
1277
 
1280
1278
  struct RTLIL::NamedObject : public RTLIL::AttrObject
@@ -1781,18 +1779,18 @@ struct RTLIL::Selection
1781
1779
 
1782
1780
  // checks if the given module exists in the current design and is a
1783
1781
  // boxed module, warning the user if the current design is not set
1784
- bool boxed_module(const RTLIL::IdString &mod_name) const;
1782
+ bool boxed_module(RTLIL::IdString mod_name) const;
1785
1783
 
1786
1784
  // checks if the given module is included in this selection
1787
- bool selected_module(const RTLIL::IdString &mod_name) const;
1785
+ bool selected_module(RTLIL::IdString mod_name) const;
1788
1786
 
1789
1787
  // checks if the given module is wholly included in this selection,
1790
1788
  // i.e. not partially selected
1791
- bool selected_whole_module(const RTLIL::IdString &mod_name) const;
1789
+ bool selected_whole_module(RTLIL::IdString mod_name) const;
1792
1790
 
1793
1791
  // checks if the given member from the given module is included in this
1794
1792
  // selection
1795
- bool selected_member(const RTLIL::IdString &mod_name, const RTLIL::IdString &memb_name) const;
1793
+ bool selected_member(RTLIL::IdString mod_name, RTLIL::IdString memb_name) const;
1796
1794
 
1797
1795
  // optimizes this selection for the given design by:
1798
1796
  // - removing non-existent modules and members, any boxed modules and
@@ -1862,7 +1860,7 @@ struct RTLIL::Monitor
1862
1860
  virtual ~Monitor() { }
1863
1861
  virtual void notify_module_add(RTLIL::Module*) { }
1864
1862
  virtual void notify_module_del(RTLIL::Module*) { }
1865
- virtual void notify_connect(RTLIL::Cell*, const RTLIL::IdString&, const RTLIL::SigSpec&, const RTLIL::SigSpec&) { }
1863
+ virtual void notify_connect(RTLIL::Cell*, RTLIL::IdString, const RTLIL::SigSpec&, const RTLIL::SigSpec&) { }
1866
1864
  virtual void notify_connect(RTLIL::Module*, const RTLIL::SigSig&) { }
1867
1865
  virtual void notify_connect(RTLIL::Module*, const std::vector<RTLIL::SigSig>&) { }
1868
1866
  virtual void notify_blackout(RTLIL::Module*) { }
@@ -1897,11 +1895,11 @@ struct RTLIL::Design
1897
1895
  ~Design();
1898
1896
 
1899
1897
  RTLIL::ObjRange<RTLIL::Module*> modules();
1900
- RTLIL::Module *module(const RTLIL::IdString &name);
1901
- const RTLIL::Module *module(const RTLIL::IdString &name) const;
1898
+ RTLIL::Module *module(RTLIL::IdString name);
1899
+ const RTLIL::Module *module(RTLIL::IdString name) const;
1902
1900
  RTLIL::Module *top_module() const;
1903
1901
 
1904
- bool has(const RTLIL::IdString &id) const {
1902
+ bool has(RTLIL::IdString id) const {
1905
1903
  return modules_.count(id) != 0;
1906
1904
  }
1907
1905
 
@@ -1928,15 +1926,15 @@ struct RTLIL::Design
1928
1926
  void optimize();
1929
1927
 
1930
1928
  // checks if the given module is included in the current selection
1931
- bool selected_module(const RTLIL::IdString &mod_name) const;
1929
+ bool selected_module(RTLIL::IdString mod_name) const;
1932
1930
 
1933
1931
  // checks if the given module is wholly included in the current
1934
1932
  // selection, i.e. not partially selected
1935
- bool selected_whole_module(const RTLIL::IdString &mod_name) const;
1933
+ bool selected_whole_module(RTLIL::IdString mod_name) const;
1936
1934
 
1937
1935
  // checks if the given member from the given module is included in the
1938
1936
  // current selection
1939
- bool selected_member(const RTLIL::IdString &mod_name, const RTLIL::IdString &memb_name) const;
1937
+ bool selected_member(RTLIL::IdString mod_name, RTLIL::IdString memb_name) const;
1940
1938
 
1941
1939
  // checks if the given module is included in the current selection
1942
1940
  bool selected_module(RTLIL::Module *mod) const;
@@ -2068,7 +2066,7 @@ public:
2068
2066
  virtual ~Module();
2069
2067
  virtual RTLIL::IdString derive(RTLIL::Design *design, const dict<RTLIL::IdString, RTLIL::Const> &parameters, bool mayfail = false);
2070
2068
  virtual RTLIL::IdString derive(RTLIL::Design *design, const dict<RTLIL::IdString, RTLIL::Const> &parameters, const dict<RTLIL::IdString, RTLIL::Module*> &interfaces, const dict<RTLIL::IdString, RTLIL::IdString> &modports, bool mayfail = false);
2071
- virtual size_t count_id(const RTLIL::IdString& id);
2069
+ virtual size_t count_id(RTLIL::IdString id);
2072
2070
  virtual void expand_interfaces(RTLIL::Design *design, const dict<RTLIL::IdString, RTLIL::Module *> &local_interfaces);
2073
2071
  virtual bool reprocess_if_necessary(RTLIL::Design *design);
2074
2072
 
@@ -2120,32 +2118,37 @@ public:
2120
2118
  return design->selected_member(name, member->name);
2121
2119
  }
2122
2120
 
2123
- RTLIL::Wire* wire(const RTLIL::IdString &id) {
2121
+ RTLIL::Wire* wire(RTLIL::IdString id) {
2124
2122
  auto it = wires_.find(id);
2125
2123
  return it == wires_.end() ? nullptr : it->second;
2126
2124
  }
2127
- RTLIL::Cell* cell(const RTLIL::IdString &id) {
2125
+ RTLIL::Cell* cell(RTLIL::IdString id) {
2128
2126
  auto it = cells_.find(id);
2129
2127
  return it == cells_.end() ? nullptr : it->second;
2130
2128
  }
2131
2129
 
2132
- const RTLIL::Wire* wire(const RTLIL::IdString &id) const{
2130
+ const RTLIL::Wire* wire(RTLIL::IdString id) const{
2133
2131
  auto it = wires_.find(id);
2134
2132
  return it == wires_.end() ? nullptr : it->second;
2135
2133
  }
2136
- const RTLIL::Cell* cell(const RTLIL::IdString &id) const {
2134
+ const RTLIL::Cell* cell(RTLIL::IdString id) const {
2137
2135
  auto it = cells_.find(id);
2138
2136
  return it == cells_.end() ? nullptr : it->second;
2139
2137
  }
2140
2138
 
2141
2139
  RTLIL::ObjRange<RTLIL::Wire*> wires() { return RTLIL::ObjRange<RTLIL::Wire*>(&wires_, &refcount_wires_); }
2140
+ int wires_size() const { return wires_.size(); }
2141
+ RTLIL::Wire* wire_at(int index) const { return wires_.element(index)->second; }
2142
2142
  RTLIL::ObjRange<RTLIL::Cell*> cells() { return RTLIL::ObjRange<RTLIL::Cell*>(&cells_, &refcount_cells_); }
2143
+ int cells_size() const { return cells_.size(); }
2144
+ RTLIL::Cell* cell_at(int index) const { return cells_.element(index)->second; }
2143
2145
 
2144
2146
  void add(RTLIL::Binding *binding);
2145
2147
 
2146
2148
  // Removing wires is expensive. If you have to remove wires, remove them all at once.
2147
2149
  void remove(const pool<RTLIL::Wire*> &wires);
2148
2150
  void remove(RTLIL::Cell *cell);
2151
+ void remove(RTLIL::Memory *memory);
2149
2152
  void remove(RTLIL::Process *process);
2150
2153
 
2151
2154
  void rename(RTLIL::Wire *wire, RTLIL::IdString new_name);
@@ -2490,23 +2493,23 @@ public:
2490
2493
  dict<RTLIL::IdString, RTLIL::Const> parameters;
2491
2494
 
2492
2495
  // access cell ports
2493
- bool hasPort(const RTLIL::IdString &portname) const;
2494
- void unsetPort(const RTLIL::IdString &portname);
2495
- void setPort(const RTLIL::IdString &portname, RTLIL::SigSpec signal);
2496
- const RTLIL::SigSpec &getPort(const RTLIL::IdString &portname) const;
2496
+ bool hasPort(RTLIL::IdString portname) const;
2497
+ void unsetPort(RTLIL::IdString portname);
2498
+ void setPort(RTLIL::IdString portname, RTLIL::SigSpec signal);
2499
+ const RTLIL::SigSpec &getPort(RTLIL::IdString portname) const;
2497
2500
  const dict<RTLIL::IdString, RTLIL::SigSpec> &connections() const;
2498
2501
 
2499
2502
  // information about cell ports
2500
2503
  bool known() const;
2501
- bool input(const RTLIL::IdString &portname) const;
2502
- bool output(const RTLIL::IdString &portname) const;
2503
- PortDir port_dir(const RTLIL::IdString &portname) const;
2504
+ bool input(RTLIL::IdString portname) const;
2505
+ bool output(RTLIL::IdString portname) const;
2506
+ PortDir port_dir(RTLIL::IdString portname) const;
2504
2507
 
2505
2508
  // access cell parameters
2506
- bool hasParam(const RTLIL::IdString &paramname) const;
2507
- void unsetParam(const RTLIL::IdString &paramname);
2508
- void setParam(const RTLIL::IdString &paramname, RTLIL::Const value);
2509
- const RTLIL::Const &getParam(const RTLIL::IdString &paramname) const;
2509
+ bool hasParam(RTLIL::IdString paramname) const;
2510
+ void unsetParam(RTLIL::IdString paramname);
2511
+ void setParam(RTLIL::IdString paramname, RTLIL::Const value);
2512
+ const RTLIL::Const &getParam(RTLIL::IdString paramname) const;
2510
2513
 
2511
2514
  void sort();
2512
2515
  void check();
@@ -433,10 +433,10 @@ enum class ScopeinfoAttrs {
433
433
  };
434
434
 
435
435
  // Check whether the flattened module or flattened cell corresponding to a $scopeinfo cell had a specific attribute.
436
- bool scopeinfo_has_attribute(const RTLIL::Cell *scopeinfo, ScopeinfoAttrs attrs, const RTLIL::IdString &id);
436
+ bool scopeinfo_has_attribute(const RTLIL::Cell *scopeinfo, ScopeinfoAttrs attrs, RTLIL::IdString id);
437
437
 
438
438
  // Get a specific attribute from the flattened module or flattened cell corresponding to a $scopeinfo cell.
439
- RTLIL::Const scopeinfo_get_attribute(const RTLIL::Cell *scopeinfo, ScopeinfoAttrs attrs, const RTLIL::IdString &id);
439
+ RTLIL::Const scopeinfo_get_attribute(const RTLIL::Cell *scopeinfo, ScopeinfoAttrs attrs, RTLIL::IdString id);
440
440
 
441
441
  // Get all attribute from the flattened module or flattened cell corresponding to a $scopeinfo cell.
442
442
  dict<RTLIL::IdString, RTLIL::Const> scopeinfo_attributes(const RTLIL::Cell *scopeinfo, ScopeinfoAttrs attrs);
@@ -127,9 +127,9 @@ class ThreadPool
127
127
  public:
128
128
  // Computes the number of worker threads to use.
129
129
  // `reserved_cores` cores are set aside for other threads (e.g. work on the main thread).
130
- // `max_threads` --- don't return more workers than this.
130
+ // `max_worker_threads` --- don't return more workers than this.
131
131
  // The result may be 0.
132
- static int pool_size(int reserved_cores, int max_threads);
132
+ static int pool_size(int reserved_cores, int max_worker_threads);
133
133
 
134
134
  // Create a pool of threads running the given closure (parameterized by thread number).
135
135
  // `pool_size` must be the result of a `pool_size()` call.
@@ -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
+ extern const char *yosys_git_hash_str;
84
85
  const char* yosys_maybe_version();
85
86
 
86
87
  // from passes/cmds/design.cc
@@ -299,8 +299,8 @@ RTLIL::IdString new_id_suffix(std::string_view file, int line, std::string_view
299
299
 
300
300
  #define NEW_ID \
301
301
  YOSYS_NAMESPACE_PREFIX RTLIL::IdString::new_autoidx_with_prefix([](std::string_view func) -> const std::string * { \
302
- static const std::string *prefix = YOSYS_NAMESPACE_PREFIX create_id_prefix(__FILE__, __LINE__, func); \
303
- return prefix; \
302
+ static std::unique_ptr<const std::string> prefix(YOSYS_NAMESPACE_PREFIX create_id_prefix(__FILE__, __LINE__, func)); \
303
+ return prefix.get(); \
304
304
  }(__FUNCTION__))
305
305
  #define NEW_ID_SUFFIX(suffix) \
306
306
  YOSYS_NAMESPACE_PREFIX new_id_suffix(__FILE__, __LINE__, __FUNCTION__, suffix)
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.60.0.0.post1055
3
+ Version: 0.61.0.0.post1073
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=cxu6bMlZ6zRpCzKp2wdFs7LNt5-btnJD6ghvdkDs6Y0,1189
2
2
  yowasp_yosys/sby.py,sha256=BZwSqLk064cKvGITogDi3OqlQtRJJ-8J4_KG5Z7ktoc,19736
3
3
  yowasp_yosys/smtbmc.py,sha256=kFTdW-sYuRU0f4YxRJuwYNIB1b9AFJeXM1sIIBdPJW0,74358
4
4
  yowasp_yosys/witness.py,sha256=m3iV2Nydm0p4G79VRaaX3lGul-nGnuxeKnx20MCJgi0,17279
5
- yowasp_yosys/yosys.wasm,sha256=8x-WIGlfuAP07MDDJRSAmMWVFIbJ_yG__bZC8CKulbA,38249085
5
+ yowasp_yosys/yosys.wasm,sha256=VzvDKtS1s2MRE9p4FnQjQmZijOZjvK7Kh0a9GBCOLj8,38525292
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
@@ -71,9 +71,9 @@ yowasp_yosys/share/gatemate/mul_map.v,sha256=K18Fz6kC9mYhBcn0wwGG-K7i84sf_eCE9D8
71
71
  yowasp_yosys/share/gatemate/mux_map.v,sha256=nbJ3z5o19Z4Qe5Ts7VRmlhSKpBVB5lLpDzPCRIF0y94,1493
72
72
  yowasp_yosys/share/gatemate/reg_map.v,sha256=X9cGplW-ChE81RemEi4t8WsSTadzTV297S78OmH5KUc,1871
73
73
  yowasp_yosys/share/gowin/arith_map.v,sha256=zZFw-f2IypjF0RUHVxuY-bsB0BE_0aADYhUAB841jn0,2104
74
- yowasp_yosys/share/gowin/brams.txt,sha256=oYWuv7DOKabN7_0ITRlW3xDbzyw5NfyoWAiTK19v31w,1193
75
- yowasp_yosys/share/gowin/brams_map.v,sha256=detpD8qAIJYjyPRYgiWUw4oYVIWGlt70itO5xpgeEOs,8602
76
- yowasp_yosys/share/gowin/brams_map_gw5a.v,sha256=NbwB-Uq7iOqfpW8cCfXc2CTYavqA0dW0USUjIulm1GQ,8566
74
+ yowasp_yosys/share/gowin/brams.txt,sha256=avNmdWgyelxa2pftPMfyzvm8V7uxooadDTEcukGLXWY,1271
75
+ yowasp_yosys/share/gowin/brams_map.v,sha256=7l1X2NEJX7BRHJuZtNjrRWK64VChsutWbNjZKg9c3vQ,8961
76
+ yowasp_yosys/share/gowin/brams_map_gw5a.v,sha256=5vjsdOUKfUPjsKdVwozOKCO6_JJQtKI69qqSvODlWYA,8925
77
77
  yowasp_yosys/share/gowin/cells_map.v,sha256=Zmq2VlZOFBHhUN65j3DOWdgKpKBMoSTiqgYBpx9-j_k,6100
78
78
  yowasp_yosys/share/gowin/cells_sim.v,sha256=YkA_QnUhZSQ6albnTBpCVS3nJxgbuRBEd7803XKRGe8,47291
79
79
  yowasp_yosys/share/gowin/cells_xtra_gw1n.v,sha256=vg3Aj2q4O32ycnNIH6P-7QHuhm49VoNlnRpkeiSh9rM,63441
@@ -116,7 +116,7 @@ yowasp_yosys/share/include/kernel/binding.h,sha256=BKfMhNf_HflihwCXEqyZuB1zp9xzV
116
116
  yowasp_yosys/share/include/kernel/bitpattern.h,sha256=rRRttYNswPAdX9uCvQDXLvtt5CXwINPnv7szPl_Obzc,5499
117
117
  yowasp_yosys/share/include/kernel/cellaigs.h,sha256=CdYos67IpmAgLvBbJ8EC3hWg6WhBIBy9jmhdoZ36HVE,1391
118
118
  yowasp_yosys/share/include/kernel/celledges.h,sha256=fF_sHJOpN_qQ1P0x8KKoJE9ulDMusfjkF0dBpTMs19E,2216
119
- yowasp_yosys/share/include/kernel/celltypes.h,sha256=wO-YpmQMvOzSk-sX06kmND3TfsODAbYeqPIfH13uX5A,19355
119
+ yowasp_yosys/share/include/kernel/celltypes.h,sha256=UW-H_c2RAthQrCv1_gYbIRMnQqSB5kQBKl5o8uD2yu0,19313
120
120
  yowasp_yosys/share/include/kernel/consteval.h,sha256=lPo6CAW42gdhVLBTd-nBiIp25UrWIzR0f2R0JQo3Dzk,11038
121
121
  yowasp_yosys/share/include/kernel/constids.inc,sha256=AaGaUMW3jnbdKfG3RvgrXkQ0aM7M3Y3Wh6FzuzpWwLo,12927
122
122
  yowasp_yosys/share/include/kernel/cost.h,sha256=TRW3KGPVLv5MxAmNbSh1mnzwTc-QHvZXSh9Wfc6mw3U,2921
@@ -126,25 +126,25 @@ yowasp_yosys/share/include/kernel/ffinit.h,sha256=3O8XfLnskgmxpMUn9te-HI9XAa_Bab
126
126
  yowasp_yosys/share/include/kernel/ffmerge.h,sha256=xl1_h88ZmLIxpli7vpiiU35R_Y4cZq728-A72abuzMg,6309
127
127
  yowasp_yosys/share/include/kernel/fmt.h,sha256=0UT-aDVX7_KnzlaNyK3iMsSzoICa4Q0HhqsFIrwHBMw,2790
128
128
  yowasp_yosys/share/include/kernel/gzip.h,sha256=wpAZ9hA13HEpWgZnth46JHvVLSA_qdS-JZB5gh83-QA,1847
129
- yowasp_yosys/share/include/kernel/hashlib.h,sha256=fPOd7Sy-ZAjWOOl2JNEg-f2BB2dobns9OENzZUhefGI,39598
129
+ yowasp_yosys/share/include/kernel/hashlib.h,sha256=-OKaWi9X3NcBbiUwXfSLx9uRtXmLlzNmnNk6qjOLTH8,39734
130
130
  yowasp_yosys/share/include/kernel/io.h,sha256=7f9YHpRlplk9cskEYF4ZN7BahXq831McRkuHZ4-PeV4,15791
131
131
  yowasp_yosys/share/include/kernel/json.h,sha256=i2wmIMZ2SCE5zc6IIIVLx4XZ2-HQiZEFJ0ao_cMInK0,2849
132
- yowasp_yosys/share/include/kernel/log.h,sha256=pB-dTx-quNH64wgF9pFKWRDSrqg8M2CwsbDzE27WFbI,17020
132
+ yowasp_yosys/share/include/kernel/log.h,sha256=1OqUlMHuy5SVc1Q9_tuUKAp7279nCnn0LUhyYOrkwGI,15394
133
133
  yowasp_yosys/share/include/kernel/macc.h,sha256=pBdSo9tnjpOC77UUqFDzgQMzZCjixdhmOrLnSi9QUeI,8918
134
134
  yowasp_yosys/share/include/kernel/mem.h,sha256=2mCPY8QygVoDI1NC-cG0a0xaMwSihpcjfaGEyEDN7vs,15498
135
- yowasp_yosys/share/include/kernel/modtools.h,sha256=mRnzc5TIsdIbHlFSTk2Yc0y85ttknhK-dAlti3neSI8,14388
135
+ yowasp_yosys/share/include/kernel/modtools.h,sha256=NV-7n9bjHiCCAVJNQiOhJ8_C-6uDryIBAJ1tszd0Byg,14381
136
136
  yowasp_yosys/share/include/kernel/qcsat.h,sha256=ibhpJRu0youjDXPllXrDJi851VpwW1kbJ_y94_X6JhU,2804
137
137
  yowasp_yosys/share/include/kernel/register.h,sha256=RY6IBb9hTKx9dY11He7eiCBmOEiyGenoD3qof6dJH_I,7987
138
- yowasp_yosys/share/include/kernel/rtlil.h,sha256=09Q1hJEkq_XD-_1K750JOymES_7B_idU2ZHftFcH27c,116926
138
+ yowasp_yosys/share/include/kernel/rtlil.h,sha256=6PmfMBY3nHo9BRZ4Ygrx6-zHgcKfYUwqlGlTg-OETYo,116736
139
139
  yowasp_yosys/share/include/kernel/satgen.h,sha256=KcGW7ofH4_oTw0TtT22-azGaOOc_2yCTsz6N1-AeDiY,10535
140
- yowasp_yosys/share/include/kernel/scopeinfo.h,sha256=EAU3vSTIwH1RrbSC7HVoTWh4SLfHMSIoidQPvT1Mo7g,11797
140
+ yowasp_yosys/share/include/kernel/scopeinfo.h,sha256=jTvWovLxC7RFGcrMCw6Jj49JqAhEo0kmBHRIsIgLbLo,11783
141
141
  yowasp_yosys/share/include/kernel/sexpr.h,sha256=CUDKFehVoGmakYBYLpEKUtlM0Dd3oI6TNW_cKz-qe0g,4720
142
142
  yowasp_yosys/share/include/kernel/sigtools.h,sha256=5s1qkeGjV2pbwrWRNaNgay8qHfKzk7TgK1jQM-C2Dco,10652
143
- yowasp_yosys/share/include/kernel/threading.h,sha256=OidU8rY1QCeTdMR6DD_heUg8BUOj3NjsiQ6cl0A1be0,4656
143
+ yowasp_yosys/share/include/kernel/threading.h,sha256=wUiqdbkcrRPzDJDrMLmzdVP07w8SXZfaG4YM9xXGmEg,4670
144
144
  yowasp_yosys/share/include/kernel/timinginfo.h,sha256=JNRktUWp7ow_wn4P5BxlOkv7hNS7qKbws7Gjs6VSUx8,7367
145
145
  yowasp_yosys/share/include/kernel/utils.h,sha256=6WTFqPm117PbGUDjQVhFlzSnkuE8N2LfO2RXungS1xo,7925
146
- yowasp_yosys/share/include/kernel/yosys.h,sha256=g-tNpYJFkJtChmou9eVZxM7BFplJWra7WZ_y7hdRR_o,3454
147
- yowasp_yosys/share/include/kernel/yosys_common.h,sha256=fPQxbE7bjqcUl5nmHx7DH9uGbtBWe_vjOpQOOeNTJgw,8642
146
+ yowasp_yosys/share/include/kernel/yosys.h,sha256=bZ3-68AzdfhE750rImxzXypMmpl9vHCV29hWZIH9U0c,3493
147
+ yowasp_yosys/share/include/kernel/yosys_common.h,sha256=-CpIYF3XOGZrLBrjV1dAgUFBSVE1r5bZIGzVFYTIrEo,8663
148
148
  yowasp_yosys/share/include/kernel/yw.h,sha256=Gr5zqBNUSKXOKhdw7tl9-KcCiZg3xFcK9Msj7LMawdI,5470
149
149
  yowasp_yosys/share/include/libs/ezsat/ezminisat.h,sha256=bSrDL6VRinpXdULoR8P9lQaT1Dy4kAEZfTcKjRKOdjg,2098
150
150
  yowasp_yosys/share/include/libs/ezsat/ezsat.h,sha256=eggeGwS9pFyxSYGT0RtOqX189pbXFAKDfPZzIYTmqIk,14523
@@ -334,8 +334,8 @@ yowasp_yosys/share/xilinx/xc5v_dsp_map.v,sha256=I4lg0RQ54fBBba_7NNvUgwS4tQ1yLIsU
334
334
  yowasp_yosys/share/xilinx/xc6s_dsp_map.v,sha256=gTxHocB-Dn5G4BplWgri_tLhT6DIO2S0X-yu4iBKYyk,562
335
335
  yowasp_yosys/share/xilinx/xc7_dsp_map.v,sha256=zrzreQi7mElrAMtrayxtiO_Bw00S6zsjSjSVcjmJPH0,884
336
336
  yowasp_yosys/share/xilinx/xcu_dsp_map.v,sha256=gzCgl1emrHGcigVmU0nP0pW7dlhQ01SaWwXzHHcqt-o,882
337
- yowasp_yosys-0.60.0.0.post1055.dist-info/METADATA,sha256=gGpDRSrohNQfGxdjcwyc84sHRv4vpGVbHNjAT81D41g,2523
338
- yowasp_yosys-0.60.0.0.post1055.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
339
- yowasp_yosys-0.60.0.0.post1055.dist-info/entry_points.txt,sha256=p_9sIVi2ZqsqgYYo14PywYkwHYTa76fMEq3LxweXJpc,220
340
- yowasp_yosys-0.60.0.0.post1055.dist-info/top_level.txt,sha256=_yiNT8kLYkcD1TEuUCzQ_MkON1c3xuIRV59zXds4zd4,13
341
- yowasp_yosys-0.60.0.0.post1055.dist-info/RECORD,,
337
+ yowasp_yosys-0.61.0.0.post1073.dist-info/METADATA,sha256=5ntw83w-zBVuQAGcHkbof_zeAIeGFgd3K2I2V0e6tFc,2523
338
+ yowasp_yosys-0.61.0.0.post1073.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
339
+ yowasp_yosys-0.61.0.0.post1073.dist-info/entry_points.txt,sha256=p_9sIVi2ZqsqgYYo14PywYkwHYTa76fMEq3LxweXJpc,220
340
+ yowasp_yosys-0.61.0.0.post1073.dist-info/top_level.txt,sha256=_yiNT8kLYkcD1TEuUCzQ_MkON1c3xuIRV59zXds4zd4,13
341
+ yowasp_yosys-0.61.0.0.post1073.dist-info/RECORD,,