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.
- yowasp_yosys/share/gowin/brams.txt +6 -0
- yowasp_yosys/share/gowin/brams_map.v +13 -5
- yowasp_yosys/share/gowin/brams_map_gw5a.v +13 -5
- yowasp_yosys/share/include/kernel/celltypes.h +4 -4
- yowasp_yosys/share/include/kernel/hashlib.h +6 -0
- yowasp_yosys/share/include/kernel/log.h +0 -48
- yowasp_yosys/share/include/kernel/modtools.h +1 -1
- yowasp_yosys/share/include/kernel/rtlil.h +55 -52
- yowasp_yosys/share/include/kernel/scopeinfo.h +2 -2
- yowasp_yosys/share/include/kernel/threading.h +2 -2
- yowasp_yosys/share/include/kernel/yosys.h +1 -0
- yowasp_yosys/share/include/kernel/yosys_common.h +2 -2
- yowasp_yosys/yosys.wasm +0 -0
- {yowasp_yosys-0.60.0.0.post1055.dist-info → yowasp_yosys-0.61.0.0.post1073.dist-info}/METADATA +1 -1
- {yowasp_yosys-0.60.0.0.post1055.dist-info → yowasp_yosys-0.61.0.0.post1073.dist-info}/RECORD +18 -18
- {yowasp_yosys-0.60.0.0.post1055.dist-info → yowasp_yosys-0.61.0.0.post1073.dist-info}/WHEEL +0 -0
- {yowasp_yosys-0.60.0.0.post1055.dist-info → yowasp_yosys-0.61.0.0.post1073.dist-info}/entry_points.txt +0 -0
- {yowasp_yosys-0.60.0.0.post1055.dist-info → yowasp_yosys-0.61.0.0.post1073.dist-info}/top_level.txt +0 -0
|
@@ -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
|
|
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 = `
|
|
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 = `
|
|
203
|
-
wire [13:0] ADB = `
|
|
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 = `
|
|
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
|
|
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 = `
|
|
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 = `
|
|
203
|
-
wire [13:0] ADB = `
|
|
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 = `
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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,
|
|
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
|
|
227
|
-
|
|
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(
|
|
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<(
|
|
400
|
+
inline bool operator<(IdString rhs) const {
|
|
403
401
|
return index_ < rhs.index_;
|
|
404
402
|
}
|
|
405
403
|
|
|
406
|
-
inline bool operator==(
|
|
407
|
-
inline bool operator!=(
|
|
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(
|
|
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(
|
|
647
|
+
static inline bool cmp(RTLIL::IdString a, RTLIL::IdString b) {
|
|
650
648
|
return a == b;
|
|
651
649
|
}
|
|
652
|
-
[[nodiscard]] static inline Hasher hash(
|
|
650
|
+
[[nodiscard]] static inline Hasher hash(RTLIL::IdString id) {
|
|
653
651
|
return id.hash_top();
|
|
654
652
|
}
|
|
655
|
-
[[nodiscard]] static inline Hasher hash_into(
|
|
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(
|
|
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(
|
|
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()(
|
|
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(
|
|
1247
|
+
bool has_attribute(RTLIL::IdString id) const;
|
|
1250
1248
|
|
|
1251
|
-
void set_bool_attribute(
|
|
1252
|
-
bool get_bool_attribute(
|
|
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(
|
|
1260
|
-
string get_string_attribute(
|
|
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(
|
|
1263
|
-
void add_strpool_attribute(
|
|
1264
|
-
pool<string> get_strpool_attribute(
|
|
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(
|
|
1277
|
-
vector<int> get_intvec_attribute(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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*,
|
|
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(
|
|
1901
|
-
const RTLIL::Module *module(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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> ¶meters, bool mayfail = false);
|
|
2070
2068
|
virtual RTLIL::IdString derive(RTLIL::Design *design, const dict<RTLIL::IdString, RTLIL::Const> ¶meters, const dict<RTLIL::IdString, RTLIL::Module*> &interfaces, const dict<RTLIL::IdString, RTLIL::IdString> &modports, bool mayfail = false);
|
|
2071
|
-
virtual size_t count_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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
2494
|
-
void unsetPort(
|
|
2495
|
-
void setPort(
|
|
2496
|
-
const RTLIL::SigSpec &getPort(
|
|
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(
|
|
2502
|
-
bool output(
|
|
2503
|
-
PortDir port_dir(
|
|
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(
|
|
2507
|
-
void unsetParam(
|
|
2508
|
-
void setParam(
|
|
2509
|
-
const RTLIL::Const &getParam(
|
|
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,
|
|
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,
|
|
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
|
-
// `
|
|
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
|
|
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
|
|
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
|
{yowasp_yosys-0.60.0.0.post1055.dist-info → yowasp_yosys-0.61.0.0.post1073.dist-info}/RECORD
RENAMED
|
@@ -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=
|
|
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=
|
|
75
|
-
yowasp_yosys/share/gowin/brams_map.v,sha256=
|
|
76
|
-
yowasp_yosys/share/gowin/brams_map_gw5a.v,sha256=
|
|
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=
|
|
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
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
147
|
-
yowasp_yosys/share/include/kernel/yosys_common.h,sha256
|
|
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.
|
|
338
|
-
yowasp_yosys-0.
|
|
339
|
-
yowasp_yosys-0.
|
|
340
|
-
yowasp_yosys-0.
|
|
341
|
-
yowasp_yosys-0.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
{yowasp_yosys-0.60.0.0.post1055.dist-info → yowasp_yosys-0.61.0.0.post1073.dist-info}/top_level.txt
RENAMED
|
File without changes
|