yowasp-yosys 0.37.0.0.post648__py3-none-any.whl → 0.38.0.0.post669__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/__init__.py +1 -5
- yowasp_yosys/share/gowin/brams.txt +0 -6
- yowasp_yosys/share/gowin/brams_map.v +42 -51
- yowasp_yosys/share/include/backends/cxxrtl/runtime/cxxrtl/cxxrtl.h +202 -129
- yowasp_yosys/share/include/kernel/celltypes.h +1 -0
- yowasp_yosys/share/include/kernel/constids.inc +1 -0
- yowasp_yosys/share/include/kernel/fmt.h +6 -5
- yowasp_yosys/share/include/kernel/hashlib.h +2 -0
- yowasp_yosys/share/include/kernel/register.h +1 -0
- yowasp_yosys/share/include/kernel/rtlil.h +1 -0
- yowasp_yosys/share/include/kernel/yosys.h +4 -0
- yowasp_yosys/share/python3/sby_core.py +3 -0
- yowasp_yosys/share/python3/sby_design.py +32 -1
- yowasp_yosys/share/quicklogic/qlf_k6n10f/bram_types_sim.v +1 -1
- yowasp_yosys/share/simlib.v +23 -1
- yowasp_yosys/yosys.wasm +0 -0
- {yowasp_yosys-0.37.0.0.post648.dist-info → yowasp_yosys-0.38.0.0.post669.dist-info}/METADATA +1 -1
- {yowasp_yosys-0.37.0.0.post648.dist-info → yowasp_yosys-0.38.0.0.post669.dist-info}/RECORD +21 -22
- yowasp_yosys/ywio.py +0 -432
- {yowasp_yosys-0.37.0.0.post648.dist-info → yowasp_yosys-0.38.0.0.post669.dist-info}/WHEEL +0 -0
- {yowasp_yosys-0.37.0.0.post648.dist-info → yowasp_yosys-0.38.0.0.post669.dist-info}/entry_points.txt +0 -0
- {yowasp_yosys-0.37.0.0.post648.dist-info → yowasp_yosys-0.38.0.0.post669.dist-info}/top_level.txt +0 -0
yowasp_yosys/__init__.py
CHANGED
|
@@ -8,7 +8,7 @@ except (ImportError, AttributeError):
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
def run_yosys(argv):
|
|
11
|
-
return yowasp_runtime.run_wasm(__package__, "yosys.wasm", resources=["share"],
|
|
11
|
+
return yowasp_runtime.run_wasm(__package__, "yosys.wasm", resources=["share"],
|
|
12
12
|
argv=["yowasp-yosys", *argv])
|
|
13
13
|
|
|
14
14
|
|
|
@@ -28,10 +28,6 @@ def _run_yosys_smtbmc_argv():
|
|
|
28
28
|
def _run_yosys_witness_argv():
|
|
29
29
|
prefix = importlib_resources.files(__package__)
|
|
30
30
|
sys.path[0:0] = [str(prefix / "share" / "python3")]
|
|
31
|
-
ywio_py = prefix / "ywio.py"
|
|
32
|
-
with open(ywio_py) as f:
|
|
33
|
-
globals = {}
|
|
34
|
-
exec(compile(f.read(), ywio_py, "exec"), globals, globals)
|
|
35
31
|
witness_py = prefix / "witness.py"
|
|
36
32
|
with open(witness_py) as f:
|
|
37
33
|
globals = {"__name__": "__main__"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
ram block $__GOWIN_SP_ {
|
|
2
2
|
abits 14;
|
|
3
3
|
widths 1 2 4 9 18 36 per_port;
|
|
4
|
-
byte 9;
|
|
5
4
|
cost 128;
|
|
6
5
|
init no_undef;
|
|
7
6
|
port srsw "A" {
|
|
8
7
|
clock posedge;
|
|
9
8
|
clken;
|
|
10
|
-
wrbe_separate;
|
|
11
9
|
option "RESET_MODE" "SYNC" {
|
|
12
10
|
rdsrst zero ungated;
|
|
13
11
|
}
|
|
@@ -30,13 +28,11 @@ ram block $__GOWIN_SP_ {
|
|
|
30
28
|
ram block $__GOWIN_DP_ {
|
|
31
29
|
abits 14;
|
|
32
30
|
widths 1 2 4 9 18 per_port;
|
|
33
|
-
byte 9;
|
|
34
31
|
cost 128;
|
|
35
32
|
init no_undef;
|
|
36
33
|
port srsw "A" "B" {
|
|
37
34
|
clock posedge;
|
|
38
35
|
clken;
|
|
39
|
-
wrbe_separate;
|
|
40
36
|
option "RESET_MODE" "SYNC" {
|
|
41
37
|
rdsrst zero ungated;
|
|
42
38
|
}
|
|
@@ -59,7 +55,6 @@ ram block $__GOWIN_DP_ {
|
|
|
59
55
|
ram block $__GOWIN_SDP_ {
|
|
60
56
|
abits 14;
|
|
61
57
|
widths 1 2 4 9 18 36 per_port;
|
|
62
|
-
byte 9;
|
|
63
58
|
cost 128;
|
|
64
59
|
init no_undef;
|
|
65
60
|
port sr "R" {
|
|
@@ -76,6 +71,5 @@ ram block $__GOWIN_SDP_ {
|
|
|
76
71
|
port sw "W" {
|
|
77
72
|
clock posedge;
|
|
78
73
|
clken;
|
|
79
|
-
wrbe_separate;
|
|
80
74
|
}
|
|
81
75
|
}
|
|
@@ -14,8 +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
|
|
18
|
-
`define addrbe(width, addr, wr_be) (width < 18 ? addr : {addr[13:4], wr_be})
|
|
17
|
+
`define addrbe_always(width, addr) (width < 18 ? addr : width == 18 ? {addr[13:4], 4'b0011} : {addr[13:5], 5'b01111})
|
|
19
18
|
|
|
20
19
|
|
|
21
20
|
`define INIT(func) \
|
|
@@ -90,7 +89,6 @@ parameter INIT = 0;
|
|
|
90
89
|
parameter OPTION_RESET_MODE = "SYNC";
|
|
91
90
|
|
|
92
91
|
parameter PORT_A_WIDTH = 36;
|
|
93
|
-
parameter PORT_A_WR_BE_WIDTH = 4;
|
|
94
92
|
parameter PORT_A_OPTION_WRITE_MODE = 0;
|
|
95
93
|
|
|
96
94
|
input PORT_A_CLK;
|
|
@@ -99,15 +97,13 @@ input PORT_A_WR_EN;
|
|
|
99
97
|
input PORT_A_RD_SRST;
|
|
100
98
|
input PORT_A_RD_ARST;
|
|
101
99
|
input [13:0] PORT_A_ADDR;
|
|
102
|
-
input [PORT_A_WR_BE_WIDTH-1:0] PORT_A_WR_BE;
|
|
103
100
|
input [PORT_A_WIDTH-1:0] PORT_A_WR_DATA;
|
|
104
101
|
output [PORT_A_WIDTH-1:0] PORT_A_RD_DATA;
|
|
105
102
|
|
|
106
103
|
`DEF_FUNCS
|
|
107
104
|
|
|
108
105
|
wire RST = OPTION_RESET_MODE == "SYNC" ? PORT_A_RD_SRST : PORT_A_RD_ARST;
|
|
109
|
-
wire
|
|
110
|
-
wire [13:0] AD = `addrbe(PORT_A_WIDTH, PORT_A_ADDR, PORT_A_WR_BE);
|
|
106
|
+
wire [13:0] AD = `addrbe_always(PORT_A_WIDTH, PORT_A_ADDR);
|
|
111
107
|
|
|
112
108
|
generate
|
|
113
109
|
|
|
@@ -129,9 +125,9 @@ if (PORT_A_WIDTH < 9) begin
|
|
|
129
125
|
.BLKSEL(3'b000),
|
|
130
126
|
.CLK(PORT_A_CLK),
|
|
131
127
|
.CE(PORT_A_CLK_EN),
|
|
132
|
-
.WRE(
|
|
128
|
+
.WRE(PORT_A_WR_EN),
|
|
133
129
|
.RESET(RST),
|
|
134
|
-
.OCE(1'
|
|
130
|
+
.OCE(1'b1),
|
|
135
131
|
.AD(AD),
|
|
136
132
|
.DI(DI),
|
|
137
133
|
.DO(DO),
|
|
@@ -155,9 +151,9 @@ end else begin
|
|
|
155
151
|
.BLKSEL(3'b000),
|
|
156
152
|
.CLK(PORT_A_CLK),
|
|
157
153
|
.CE(PORT_A_CLK_EN),
|
|
158
|
-
.WRE(
|
|
154
|
+
.WRE(PORT_A_WR_EN),
|
|
159
155
|
.RESET(RST),
|
|
160
|
-
.OCE(1'
|
|
156
|
+
.OCE(1'b1),
|
|
161
157
|
.AD(AD),
|
|
162
158
|
.DI(DI),
|
|
163
159
|
.DO(DO),
|
|
@@ -176,11 +172,9 @@ parameter INIT = 0;
|
|
|
176
172
|
parameter OPTION_RESET_MODE = "SYNC";
|
|
177
173
|
|
|
178
174
|
parameter PORT_A_WIDTH = 18;
|
|
179
|
-
parameter PORT_A_WR_BE_WIDTH = 2;
|
|
180
175
|
parameter PORT_A_OPTION_WRITE_MODE = 0;
|
|
181
176
|
|
|
182
177
|
parameter PORT_B_WIDTH = 18;
|
|
183
|
-
parameter PORT_B_WR_BE_WIDTH = 2;
|
|
184
178
|
parameter PORT_B_OPTION_WRITE_MODE = 0;
|
|
185
179
|
|
|
186
180
|
input PORT_A_CLK;
|
|
@@ -189,7 +183,6 @@ input PORT_A_WR_EN;
|
|
|
189
183
|
input PORT_A_RD_SRST;
|
|
190
184
|
input PORT_A_RD_ARST;
|
|
191
185
|
input [13:0] PORT_A_ADDR;
|
|
192
|
-
input [PORT_A_WR_BE_WIDTH-1:0] PORT_A_WR_BE;
|
|
193
186
|
input [PORT_A_WIDTH-1:0] PORT_A_WR_DATA;
|
|
194
187
|
output [PORT_A_WIDTH-1:0] PORT_A_RD_DATA;
|
|
195
188
|
|
|
@@ -199,7 +192,6 @@ input PORT_B_WR_EN;
|
|
|
199
192
|
input PORT_B_RD_SRST;
|
|
200
193
|
input PORT_B_RD_ARST;
|
|
201
194
|
input [13:0] PORT_B_ADDR;
|
|
202
|
-
input [PORT_A_WR_BE_WIDTH-1:0] PORT_B_WR_BE;
|
|
203
195
|
input [PORT_A_WIDTH-1:0] PORT_B_WR_DATA;
|
|
204
196
|
output [PORT_A_WIDTH-1:0] PORT_B_RD_DATA;
|
|
205
197
|
|
|
@@ -207,10 +199,8 @@ output [PORT_A_WIDTH-1:0] PORT_B_RD_DATA;
|
|
|
207
199
|
|
|
208
200
|
wire RSTA = OPTION_RESET_MODE == "SYNC" ? PORT_A_RD_SRST : PORT_A_RD_ARST;
|
|
209
201
|
wire RSTB = OPTION_RESET_MODE == "SYNC" ? PORT_B_RD_SRST : PORT_B_RD_ARST;
|
|
210
|
-
wire
|
|
211
|
-
wire
|
|
212
|
-
wire [13:0] ADA = `addrbe(PORT_A_WIDTH, PORT_A_ADDR, PORT_A_WR_BE);
|
|
213
|
-
wire [13:0] ADB = `addrbe(PORT_B_WIDTH, PORT_B_ADDR, PORT_B_WR_BE);
|
|
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);
|
|
214
204
|
|
|
215
205
|
generate
|
|
216
206
|
|
|
@@ -224,7 +214,7 @@ if (PORT_A_WIDTH < 9 || PORT_B_WIDTH < 9) begin
|
|
|
224
214
|
assign PORT_A_RD_DATA = `x8_rd_data(DOA);
|
|
225
215
|
assign PORT_B_RD_DATA = `x8_rd_data(DOB);
|
|
226
216
|
|
|
227
|
-
|
|
217
|
+
DPB #(
|
|
228
218
|
`INIT(init_slice_x8)
|
|
229
219
|
.READ_MODE0(1'b0),
|
|
230
220
|
.READ_MODE1(1'b0),
|
|
@@ -232,25 +222,27 @@ if (PORT_A_WIDTH < 9 || PORT_B_WIDTH < 9) begin
|
|
|
232
222
|
.WRITE_MODE1(PORT_B_OPTION_WRITE_MODE),
|
|
233
223
|
.BIT_WIDTH_0(`x8_width(PORT_A_WIDTH)),
|
|
234
224
|
.BIT_WIDTH_1(`x8_width(PORT_B_WIDTH)),
|
|
235
|
-
.
|
|
225
|
+
.BLK_SEL_0(3'b000),
|
|
226
|
+
.BLK_SEL_1(3'b000),
|
|
236
227
|
.RESET_MODE(OPTION_RESET_MODE),
|
|
237
228
|
) _TECHMAP_REPLACE_ (
|
|
238
|
-
.
|
|
229
|
+
.BLKSELA(3'b000),
|
|
230
|
+
.BLKSELB(3'b000),
|
|
239
231
|
|
|
240
232
|
.CLKA(PORT_A_CLK),
|
|
241
233
|
.CEA(PORT_A_CLK_EN),
|
|
242
|
-
.WREA(
|
|
234
|
+
.WREA(PORT_A_WR_EN),
|
|
243
235
|
.RESETA(RSTA),
|
|
244
|
-
.OCEA(1'
|
|
236
|
+
.OCEA(1'b1),
|
|
245
237
|
.ADA(ADA),
|
|
246
238
|
.DIA(DIA),
|
|
247
239
|
.DOA(DOA),
|
|
248
240
|
|
|
249
241
|
.CLKB(PORT_B_CLK),
|
|
250
242
|
.CEB(PORT_B_CLK_EN),
|
|
251
|
-
.WREB(
|
|
243
|
+
.WREB(PORT_B_WR_EN),
|
|
252
244
|
.RESETB(RSTB),
|
|
253
|
-
.OCEB(1'
|
|
245
|
+
.OCEB(1'b1),
|
|
254
246
|
.ADB(ADB),
|
|
255
247
|
.DIB(DIB),
|
|
256
248
|
.DOB(DOB),
|
|
@@ -266,7 +258,7 @@ end else begin
|
|
|
266
258
|
assign PORT_A_RD_DATA = DOA;
|
|
267
259
|
assign PORT_B_RD_DATA = DOB;
|
|
268
260
|
|
|
269
|
-
|
|
261
|
+
DPX9B #(
|
|
270
262
|
`INIT(init_slice_x9)
|
|
271
263
|
.READ_MODE0(1'b0),
|
|
272
264
|
.READ_MODE1(1'b0),
|
|
@@ -274,25 +266,27 @@ end else begin
|
|
|
274
266
|
.WRITE_MODE1(PORT_B_OPTION_WRITE_MODE),
|
|
275
267
|
.BIT_WIDTH_0(PORT_A_WIDTH),
|
|
276
268
|
.BIT_WIDTH_1(PORT_B_WIDTH),
|
|
277
|
-
.
|
|
269
|
+
.BLK_SEL_0(3'b000),
|
|
270
|
+
.BLK_SEL_1(3'b000),
|
|
278
271
|
.RESET_MODE(OPTION_RESET_MODE),
|
|
279
272
|
) _TECHMAP_REPLACE_ (
|
|
280
|
-
.
|
|
273
|
+
.BLKSELA(3'b000),
|
|
274
|
+
.BLKSELB(3'b000),
|
|
281
275
|
|
|
282
276
|
.CLKA(PORT_A_CLK),
|
|
283
277
|
.CEA(PORT_A_CLK_EN),
|
|
284
|
-
.WREA(
|
|
278
|
+
.WREA(PORT_A_WR_EN),
|
|
285
279
|
.RESETA(RSTA),
|
|
286
|
-
.OCEA(1'
|
|
280
|
+
.OCEA(1'b1),
|
|
287
281
|
.ADA(ADA),
|
|
288
282
|
.DIA(DIA),
|
|
289
283
|
.DOA(DOA),
|
|
290
284
|
|
|
291
285
|
.CLKB(PORT_B_CLK),
|
|
292
286
|
.CEB(PORT_B_CLK_EN),
|
|
293
|
-
.WREB(
|
|
287
|
+
.WREB(PORT_B_WR_EN),
|
|
294
288
|
.RESETB(RSTB),
|
|
295
|
-
.OCEB(1'
|
|
289
|
+
.OCEB(1'b1),
|
|
296
290
|
.ADB(ADB),
|
|
297
291
|
.DIB(DIB),
|
|
298
292
|
.DOB(DOB),
|
|
@@ -311,9 +305,7 @@ parameter INIT = 0;
|
|
|
311
305
|
parameter OPTION_RESET_MODE = "SYNC";
|
|
312
306
|
|
|
313
307
|
parameter PORT_R_WIDTH = 18;
|
|
314
|
-
|
|
315
308
|
parameter PORT_W_WIDTH = 18;
|
|
316
|
-
parameter PORT_W_WR_BE_WIDTH = 2;
|
|
317
309
|
|
|
318
310
|
input PORT_R_CLK;
|
|
319
311
|
input PORT_R_CLK_EN;
|
|
@@ -326,14 +318,13 @@ input PORT_W_CLK;
|
|
|
326
318
|
input PORT_W_CLK_EN;
|
|
327
319
|
input PORT_W_WR_EN;
|
|
328
320
|
input [13:0] PORT_W_ADDR;
|
|
329
|
-
input [PORT_W_WR_BE_WIDTH-1:0] PORT_W_WR_BE;
|
|
330
321
|
input [PORT_W_WIDTH-1:0] PORT_W_WR_DATA;
|
|
331
322
|
|
|
332
323
|
`DEF_FUNCS
|
|
333
324
|
|
|
334
325
|
wire RST = OPTION_RESET_MODE == "SYNC" ? PORT_R_RD_SRST : PORT_R_RD_ARST;
|
|
335
|
-
wire
|
|
336
|
-
wire
|
|
326
|
+
wire [13:0] ADW = `addrbe_always(PORT_W_WIDTH, PORT_W_ADDR);
|
|
327
|
+
wire WRE = PORT_W_CLK_EN & PORT_W_WR_EN;
|
|
337
328
|
|
|
338
329
|
generate
|
|
339
330
|
|
|
@@ -344,28 +335,28 @@ if (PORT_W_WIDTH < 9 || PORT_R_WIDTH < 9) begin
|
|
|
344
335
|
|
|
345
336
|
assign PORT_R_RD_DATA = `x8_rd_data(DO);
|
|
346
337
|
|
|
347
|
-
|
|
338
|
+
SDPB #(
|
|
348
339
|
`INIT(init_slice_x8)
|
|
349
340
|
.READ_MODE(1'b0),
|
|
350
341
|
.BIT_WIDTH_0(`x8_width(PORT_W_WIDTH)),
|
|
351
342
|
.BIT_WIDTH_1(`x8_width(PORT_R_WIDTH)),
|
|
352
|
-
.
|
|
343
|
+
.BLK_SEL_0(3'b000),
|
|
344
|
+
.BLK_SEL_1(3'b000),
|
|
353
345
|
.RESET_MODE(OPTION_RESET_MODE),
|
|
354
346
|
) _TECHMAP_REPLACE_ (
|
|
355
|
-
.
|
|
347
|
+
.BLKSELA(3'b000),
|
|
348
|
+
.BLKSELB(3'b000),
|
|
356
349
|
|
|
357
350
|
.CLKA(PORT_W_CLK),
|
|
358
|
-
.CEA(
|
|
359
|
-
.WREA(WRE),
|
|
351
|
+
.CEA(WRE),
|
|
360
352
|
.RESETA(1'b0),
|
|
361
353
|
.ADA(ADW),
|
|
362
354
|
.DI(DI),
|
|
363
355
|
|
|
364
356
|
.CLKB(PORT_R_CLK),
|
|
365
357
|
.CEB(PORT_R_CLK_EN),
|
|
366
|
-
.WREB(1'b0),
|
|
367
358
|
.RESETB(RST),
|
|
368
|
-
.OCE(1'
|
|
359
|
+
.OCE(1'b1),
|
|
369
360
|
.ADB(PORT_R_ADDR),
|
|
370
361
|
.DO(DO),
|
|
371
362
|
);
|
|
@@ -377,28 +368,28 @@ end else begin
|
|
|
377
368
|
|
|
378
369
|
assign PORT_R_RD_DATA = DO;
|
|
379
370
|
|
|
380
|
-
|
|
371
|
+
SDPX9B #(
|
|
381
372
|
`INIT(init_slice_x9)
|
|
382
373
|
.READ_MODE(1'b0),
|
|
383
374
|
.BIT_WIDTH_0(PORT_W_WIDTH),
|
|
384
375
|
.BIT_WIDTH_1(PORT_R_WIDTH),
|
|
385
|
-
.
|
|
376
|
+
.BLK_SEL_0(3'b000),
|
|
377
|
+
.BLK_SEL_1(3'b000),
|
|
386
378
|
.RESET_MODE(OPTION_RESET_MODE),
|
|
387
379
|
) _TECHMAP_REPLACE_ (
|
|
388
|
-
.
|
|
380
|
+
.BLKSELA(3'b000),
|
|
381
|
+
.BLKSELB(3'b000),
|
|
389
382
|
|
|
390
383
|
.CLKA(PORT_W_CLK),
|
|
391
|
-
.CEA(
|
|
392
|
-
.WREA(WRE),
|
|
384
|
+
.CEA(WRE),
|
|
393
385
|
.RESETA(1'b0),
|
|
394
386
|
.ADA(ADW),
|
|
395
387
|
.DI(DI),
|
|
396
388
|
|
|
397
389
|
.CLKB(PORT_R_CLK),
|
|
398
390
|
.CEB(PORT_R_CLK_EN),
|
|
399
|
-
.WREB(1'b0),
|
|
400
391
|
.RESETB(RST),
|
|
401
|
-
.OCE(1'
|
|
392
|
+
.OCE(1'b1),
|
|
402
393
|
.ADB(PORT_R_ADDR),
|
|
403
394
|
.DO(DO),
|
|
404
395
|
);
|