1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
|
/* Verilog for cell 'chip_core{sch}' from library 'toplevel' */
/* Created on Thu Dec 04, 2025 14:22:13 */
/* Last revised on Thu Dec 04, 2025 21:10:21 */
/* Written on Thu Dec 04, 2025 21:10:31 by Electric VLSI Design System, version 9.08 */
module stdcells__inv(x, y);
input x;
output y;
assign y = ~x;
endmodule /* stdcells__inv */
module stdcells__nand2(x, y, z);
input x;
input y;
output z;
assign z = ~(x & y);
endmodule /* stdcells__nand2 */
module stdcells__mux2(i, s, z);
input [1:0] i;
input s;
output z;
supply1 vdd;
supply0 gnd;
wire net_28, net_32, net_36;
stdcells__inv inv2_4(.x(s), .y(net_36));
stdcells__nand2 nand2_0(.x(i[1]), .y(s), .z(net_28));
stdcells__nand2 nand2_1(.x(i[0]), .y(net_36), .z(net_32));
stdcells__nand2 nand2_2(.x(net_28), .y(net_32), .z(z));
endmodule /* stdcells__mux2 */
module stdcells__tielow(y);
output y;
assign y = 0;
endmodule /* stdcells__tielow */
module stdcells__dff(clk, d, rst, q);
input clk;
input d;
input rst;
output reg q; // 'reg' is needed for behavioral assignment
always @(posedge clk or posedge rst) begin
if (rst) begin
q <= 1'b0; // Async Reset (Active High)
end else begin
q <= d; // Data Capture
end
end
endmodule
module memory__dffe(clk, d, en, rst, q);
input clk;
input d;
input en;
input rst;
output q;
supply1 vdd;
supply0 gnd;
wire net_5;
stdcells__dff dff_0(.clk(clk), .d(net_5), .rst(rst), .q(q));
stdcells__mux2 mux2_0(.i({d, q}), .s(en), .z(net_5));
endmodule /* memory__dffe */
module stdcells__xor2(x, y, z);
input x;
input y;
output z;
supply1 vdd;
supply0 gnd;
wire net_17, net_24, net_25;
stdcells__nand2 nand2_0(.x(x), .y(y), .z(net_17));
stdcells__nand2 nand2_1(.x(x), .y(net_17), .z(net_24));
stdcells__nand2 nand2_2(.x(net_24), .y(net_25), .z(z));
stdcells__nand2 nand2_3(.x(y), .y(net_17), .z(net_25));
endmodule /* stdcells__xor2 */
module memory__bumpallocator(clk, inc_en, rst, ptr);
input clk;
input inc_en;
input rst;
output [3:0] ptr;
supply1 vdd;
supply0 gnd;
wire net_27, net_34, net_57, net_59, net_68;
memory__dffe dffe_0(.clk(clk), .d(ptr[0]), .en(inc_en), .rst(rst),
.q(ptr[0]));
memory__dffe dffe_1(.clk(clk), .d(net_27), .en(inc_en), .rst(rst),
.q(ptr[1]));
memory__dffe dffe_2(.clk(clk), .d(net_34), .en(inc_en), .rst(rst),
.q(ptr[2]));
memory__dffe dffe_3(.clk(clk), .d(net_68), .en(inc_en), .rst(rst),
.q(ptr[3]));
stdcells__inv inv_2(.x(ptr[1]), .y(net_27));
stdcells__inv inv_3(.x(net_57), .y(net_59));
stdcells__nand2 nand2_1(.x(ptr[1]), .y(ptr[2]), .z(net_57));
stdcells__xor2 xor2_2(.x(ptr[2]), .y(ptr[1]), .z(net_34));
stdcells__xor2 xor2_3(.x(ptr[3]), .y(net_59), .z(net_68));
endmodule /* memory__bumpallocator */
module stdcells__nor2(x, y, z);
input x;
input y;
output z;
assign z = ~(x | y);
endmodule /* stdcells__nor2 */
module datapath__eq_8bit(a, b, eq);
input [7:0] a;
input [7:0] b;
output eq;
supply1 vdd;
supply0 gnd;
wire net_4, net_5, net_6, net_7, net_8, net_9, net_10, net_12, net_14, net_16;
wire net_18, net_21, net_24, net_26;
stdcells__nand2 nand2_0(.x(net_4), .y(net_5), .z(net_24));
stdcells__nand2 nand2_1(.x(net_6), .y(net_7), .z(net_26));
stdcells__nor2 nor2_0(.x(net_21), .y(net_16), .z(net_4));
stdcells__nor2 nor2_1(.x(net_14), .y(net_8), .z(net_5));
stdcells__nor2 nor2_2(.x(net_9), .y(net_10), .z(net_6));
stdcells__nor2 nor2_3(.x(net_12), .y(net_18), .z(net_7));
stdcells__nor2 nor2_4(.x(net_24), .y(net_26), .z(eq));
stdcells__xor2 xor2_1(.x(a[0]), .y(b[0]), .z(net_21));
stdcells__xor2 xor2_2(.x(a[1]), .y(b[1]), .z(net_16));
stdcells__xor2 xor2_3(.x(a[2]), .y(b[2]), .z(net_14));
stdcells__xor2 xor2_4(.x(a[3]), .y(b[3]), .z(net_8));
stdcells__xor2 xor2_5(.x(a[4]), .y(b[4]), .z(net_9));
stdcells__xor2 xor2_6(.x(a[5]), .y(b[5]), .z(net_10));
stdcells__xor2 xor2_7(.x(a[6]), .y(b[6]), .z(net_12));
stdcells__xor2 xor2_8(.x(a[7]), .y(b[7]), .z(net_18));
endmodule /* datapath__eq_8bit */
module stdcells__nand3(w, x, y, z);
input w;
input x;
input y;
output z;
assign z = ~(w & x & y);
endmodule /* stdcells__nand3 */
module control__fsm(a, clk, cs, op, rst, rw, alu_en, busy, heap_wen,
q_exec_cdr, reg_wen);
input [2:0] a;
input clk;
input cs;
input [2:0] op;
input rst;
input rw;
output alu_en;
output busy;
output heap_wen;
output q_exec_cdr;
output reg_wen;
supply1 vdd;
supply0 gnd;
wire _all_zeros, _stay, cons_first_half, net_24, net_26, net_31, net_33;
wire net_35, net_37, net_38, net_40, net_42, net_53, net_59, net_70, net_79;
wire net_108, net_134, net_142, net_144, net_161, net_172, net_228, net_229;
wire q_decode, q_idle;
stdcells__dff dff_1(.clk(clk), .d(net_108), .rst(rst), .q(q_idle));
stdcells__dff dff_2(.clk(clk), .d(net_161), .rst(rst), .q(reg_wen));
stdcells__dff dff_3(.clk(clk), .d(cons_first_half), .rst(rst),
.q(q_exec_cdr));
stdcells__dff dff_4(.clk(clk), .d(net_59), .rst(rst), .q(q_decode));
stdcells__dff dff_5(.clk(clk), .d(q_decode), .rst(rst), .q(alu_en));
stdcells__inv inv_0(.x(rw), .y(net_31));
stdcells__inv inv_1(.x(a[0]), .y(net_35));
stdcells__inv inv_2(.x(a[1]), .y(net_37));
stdcells__inv inv_3(.x(a[2]), .y(net_33));
stdcells__inv inv_5(.x(net_53), .y(net_59));
stdcells__inv inv_6(.x(net_38), .y(net_70));
stdcells__inv inv_7(.x(reg_wen), .y(net_79));
stdcells__inv inv_8(.x(q_idle), .y(busy));
stdcells__inv inv_11(.x(alu_en), .y(net_134));
stdcells__inv inv_12(.x(q_exec_cdr), .y(net_144));
stdcells__inv inv_13(.x(net_172), .y(heap_wen));
stdcells__nand2 nand2_0(.x(net_35), .y(net_37), .z(net_26));
stdcells__nand2 nand2_1(.x(net_42), .y(net_40), .z(_all_zeros));
stdcells__nand2 nand2_2(.x(net_38), .y(q_idle), .z(net_53));
stdcells__nand2 nand2_3(.x(net_70), .y(q_idle), .z(_stay));
stdcells__nand2 nand2_4(.x(net_228), .y(alu_en), .z(net_142));
stdcells__nand2 nand2_5(.x(net_142), .y(net_144), .z(net_161));
stdcells__nand2 nand2_6(.x(op[0]), .y(net_229), .z(net_228));
stdcells__nand3 nand3_0(.w(cs), .x(net_31), .y(net_33), .z(net_24));
stdcells__nand3 nand3_1(.w(_stay), .x(net_79), .y(_all_zeros), .z(net_108));
stdcells__nor2 nor2_0(.x(net_24), .y(net_26), .z(net_38));
stdcells__nor2 nor2_1(.x(reg_wen), .y(alu_en), .z(net_42));
stdcells__nor2 nor2_2(.x(q_decode), .y(q_idle), .z(net_40));
stdcells__nor2 nor2_3(.x(net_134), .y(net_228), .z(cons_first_half));
stdcells__nor2 nor2_4(.x(cons_first_half), .y(q_exec_cdr), .z(net_172));
stdcells__nor2 nor2_5(.x(op[1]), .y(op[2]), .z(net_229));
endmodule /* control__fsm */
module stdcells__dec2(a0, a1, en, _q0, _q1, _q2, _q3);
input a0;
input a1;
input en;
output _q0;
output _q1;
output _q2;
output _q3;
supply1 vdd;
supply0 gnd;
wire net_20, net_24;
stdcells__inv inv_0(.x(a0), .y(net_20));
stdcells__inv inv_1(.x(a1), .y(net_24));
stdcells__nand3 nand3_0(.w(net_20), .x(net_24), .y(en), .z(_q0));
stdcells__nand3 nand3_1(.w(net_20), .x(a1), .y(en), .z(_q1));
stdcells__nand3 nand3_2(.w(a0), .x(net_24), .y(en), .z(_q2));
stdcells__nand3 nand3_3(.w(a0), .x(a1), .y(en), .z(_q3));
endmodule /* stdcells__dec2 */
module datapath__mux2_8bit(i0, i1, s, z);
input [7:0] i0;
input [7:0] i1;
input s;
output [7:0] z;
supply1 vdd;
supply0 gnd;
stdcells__mux2 mux2_0(.i({i1[0], i0[0]}), .s(s), .z(z[0]));
stdcells__mux2 mux2_1(.i({i1[1], i0[1]}), .s(s), .z(z[1]));
stdcells__mux2 mux2_2(.i({i1[2], i0[2]}), .s(s), .z(z[2]));
stdcells__mux2 mux2_3(.i({i1[3], i0[3]}), .s(s), .z(z[3]));
stdcells__mux2 mux2_4(.i({i1[4], i0[4]}), .s(s), .z(z[4]));
stdcells__mux2 mux2_5(.i({i1[5], i0[5]}), .s(s), .z(z[5]));
stdcells__mux2 mux2_6(.i({i1[6], i0[6]}), .s(s), .z(z[6]));
stdcells__mux2 mux2_7(.i({i1[7], i0[7]}), .s(s), .z(z[7]));
endmodule /* datapath__mux2_8bit */
module datapath__mux4(i, s, z);
input [3:0] i;
input [1:0] s;
output z;
supply1 vdd;
supply0 gnd;
wire net_1, net_4;
stdcells__mux2 mux2_0(.i(i[1:0]), .s(s[0]), .z(net_1));
stdcells__mux2 mux2_1(.i(i[3:2]), .s(s[0]), .z(net_4));
stdcells__mux2 mux2_2(.i({net_4, net_1}), .s(s[1]), .z(z));
endmodule /* datapath__mux4 */
module datapath__mux4_8bit(i0, i1, i2, i3, s, z);
input [7:0] i0;
input [7:0] i1;
input [7:0] i2;
input [7:0] i3;
input [1:0] s;
output [7:0] z;
supply1 vdd;
supply0 gnd;
datapath__mux4 mux4_0(.i({i3[0], i2[0], i1[0], i0[0]}), .s(s[1:0]),
.z(z[0]));
datapath__mux4 mux4_1(.i({i3[1], i2[1], i1[1], i0[1]}), .s(s[1:0]),
.z(z[1]));
datapath__mux4 mux4_2(.i({i3[2], i2[2], i1[2], i0[2]}), .s(s[1:0]),
.z(z[2]));
datapath__mux4 mux4_3(.i({i3[3], i2[3], i1[3], i0[3]}), .s(s[1:0]),
.z(z[3]));
datapath__mux4 mux4_4(.i({i3[4], i2[4], i1[4], i0[4]}), .s(s[1:0]),
.z(z[4]));
datapath__mux4 mux4_5(.i({i3[5], i2[5], i1[5], i0[5]}), .s(s[1:0]),
.z(z[5]));
datapath__mux4 mux4_6(.i({i3[6], i2[6], i1[6], i0[6]}), .s(s[1:0]),
.z(z[6]));
datapath__mux4 mux4_7(.i({i3[7], i2[7], i1[7], i0[7]}), .s(s[1:0]),
.z(z[7]));
endmodule /* datapath__mux4_8bit */
module memory__reg8(clk, d, en, rst, q);
input clk;
input [7:0] d;
input en;
input rst;
output [7:0] q;
supply1 vdd;
supply0 gnd;
memory__dffe dffe_2(.clk(clk), .d(d[7]), .en(en), .rst(rst), .q(q[7]));
memory__dffe dffe_8(.clk(clk), .d(d[6]), .en(en), .rst(rst), .q(q[6]));
memory__dffe dffe_9(.clk(clk), .d(d[5]), .en(en), .rst(rst), .q(q[5]));
memory__dffe dffe_10(.clk(clk), .d(d[4]), .en(en), .rst(rst), .q(q[4]));
memory__dffe dffe_11(.clk(clk), .d(d[3]), .en(en), .rst(rst), .q(q[3]));
memory__dffe dffe_12(.clk(clk), .d(d[2]), .en(en), .rst(rst), .q(q[2]));
memory__dffe dffe_13(.clk(clk), .d(d[1]), .en(en), .rst(rst), .q(q[1]));
memory__dffe dffe_14(.clk(clk), .d(d[0]), .en(en), .rst(rst), .q(q[0]));
endmodule /* memory__reg8 */
module stdcells__tiehigh(y);
output y;
assign y = 1;
endmodule /* stdcells__tiehigh */
module memory__ioreg5(a, clk, data_in, global_en, reg_wen, result_in, rst,
status_busy, status_carry, status_err_heap, status_err_type, status_zero,
data_out, q_arg1, q_arg2, q_opcode);
input [2:0] a;
input clk;
input [7:0] data_in;
input global_en;
input reg_wen;
input [7:0] result_in;
input rst;
input status_busy;
input status_carry;
input status_err_heap;
input status_err_type;
input status_zero;
output [7:0] data_out;
output [7:0] q_arg1;
output [7:0] q_arg2;
output [7:0] q_opcode;
supply1 vdd;
supply0 gnd;
wire net_35, net_36, net_37, net_44, net_45, net_52, net_73, net_75, net_76;
wire net_145, net_147, net_148, net_314, net_345, net_346, net_517, net_520;
wire net_523, net_526, net_529, net_532, net_535, net_617, net_619, net_621;
wire net_623, net_625, net_627, net_629, net_631, net_778, net_780, net_783;
wire net_786, net_789, net_792, net_795, net_869, net_1080, net_1328;
wire net_1330, net_1334, net_1338, net_1342, net_1346, net_1350, net_1354;
stdcells__dec2 dec2_0(.a0(a[0]), .a1(a[1]), .en(net_76), ._q0(net_52),
._q1(net_314), ._q2(net_45), ._q3(net_44));
stdcells__inv inv_2(.x(net_45), .y(net_37));
stdcells__inv inv_3(.x(net_314), .y(net_36));
stdcells__inv inv_4(.x(net_52), .y(net_35));
stdcells__inv inv_5(.x(a[2]), .y(net_75));
stdcells__inv inv_6(.x(net_73), .y(net_76));
stdcells__inv inv_8(.x(net_147), .y(net_148));
stdcells__inv inv_9(.x(net_44), .y(net_145));
datapath__mux2_8bit mux2_8bi_0(.i0({net_1080, net_795, net_792, net_789,
net_786, net_783, net_780, net_778}), .i1({net_617, net_619, net_621,
net_623, net_625, net_627, net_629, net_631}), .s(a[2]),
.z(data_out[7:0]));
datapath__mux2_8bit mux2_8bi_1(.i0(data_in[7:0]), .i1(result_in[7:0]),
.s(reg_wen), .z({net_1328, net_1330, net_1334, net_1338, net_1342,
net_1346, net_1350, net_1354}));
datapath__mux4_8bit mux4_8bi_1(.i0(q_opcode[7:0]), .i1(q_arg1[7:0]),
.i2(q_arg2[7:0]), .i3({net_535, net_532, net_529, net_526, net_523,
net_520, net_517, net_869}), .s(a[1:0]), .z({net_1080, net_795, net_792,
net_789, net_786, net_783, net_780, net_778}));
stdcells__nand2 nand2_0(.x(net_75), .y(global_en), .z(net_73));
stdcells__nor2 nor2_0(.x(reg_wen), .y(net_145), .z(net_147));
memory__reg8 reg8_0(.clk(clk), .d({net_346, net_346, net_346, status_zero,
status_carry, status_err_type, status_err_heap, status_busy}),
.en(net_345), .rst(rst), .q({net_617, net_619, net_621, net_623, net_625,
net_627, net_629, net_631}));
memory__reg8 reg8_1(.clk(clk), .d({net_1328, net_1330, net_1334, net_1338,
net_1342, net_1346, net_1350, net_1354}), .en(net_148), .rst(rst),
.q({net_535, net_532, net_529, net_526, net_523, net_520, net_517,
net_869}));
memory__reg8 reg8_2(.clk(clk), .d(data_in[7:0]), .en(net_37), .rst(rst),
.q(q_arg2[7:0]));
memory__reg8 reg8_3(.clk(clk), .d(data_in[7:0]), .en(net_36), .rst(rst),
.q(q_arg1[7:0]));
memory__reg8 reg8_4(.clk(clk), .d(data_in[7:0]), .en(net_35), .rst(rst),
.q(q_opcode[7:0]));
stdcells__tiehigh tiehigh_0(.y(net_345));
stdcells__tielow tielow_0(.y(net_346));
endmodule /* memory__ioreg5 */
module datapath__mux3(i, s, z);
input [2:0] i;
input [1:0] s;
output z;
supply1 vdd;
supply0 gnd;
wire net_5;
stdcells__mux2 mux2_0(.i(i[1:0]), .s(s[0]), .z(net_5));
stdcells__mux2 mux2_1(.i({i[2], net_5}), .s(s[1]), .z(z));
endmodule /* datapath__mux3 */
module datapath__mux3_4bit(i0, i1, i2, s, z);
input [3:0] i0;
input [3:0] i1;
input [3:0] i2;
input [1:0] s;
output [3:0] z;
supply1 vdd;
supply0 gnd;
datapath__mux3 mux3_0(.i({i2[0], i1[0], i0[0]}), .s(s[1:0]), .z(z[0]));
datapath__mux3 mux3_1(.i({i2[1], i1[1], i0[1]}), .s(s[1:0]), .z(z[1]));
datapath__mux3 mux3_2(.i({i2[2], i1[2], i0[2]}), .s(s[1:0]), .z(z[2]));
datapath__mux3 mux3_3(.i({i2[3], i1[3], i0[3]}), .s(s[1:0]), .z(z[3]));
endmodule /* datapath__mux3_4bit */
module stdcells__fa(a, b, cin, cout, s);
input a;
input b;
input cin;
output cout;
output s;
supply1 vdd;
supply0 gnd;
wire net_4;
stdcells__mux2 mux2_0(.i({cin, a}), .s(net_4), .z(cout));
stdcells__xor2 xor2_0(.x(a), .y(b), .z(net_4));
stdcells__xor2 xor2_1(.x(net_4), .y(cin), .z(s));
endmodule /* stdcells__fa */
module datapath__rca_6bit(a, b, cin, cout, s);
input [5:0] a;
input [5:0] b;
input cin;
output cout;
output [5:0] s;
supply1 vdd;
supply0 gnd;
wire net_2, net_3, net_4, net_5, net_10;
stdcells__fa fa_0_(.a(a[0]), .b(b[0]), .cin(cin), .cout(net_5), .s(s[0]));
stdcells__fa fa_1_(.a(a[1]), .b(b[1]), .cin(net_5), .cout(net_4), .s(s[1]));
stdcells__fa fa_2_(.a(a[2]), .b(b[2]), .cin(net_4), .cout(net_3), .s(s[2]));
stdcells__fa fa_3_(.a(a[3]), .b(b[3]), .cin(net_3), .cout(net_10),
.s(s[3]));
stdcells__fa fa_4_(.a(a[4]), .b(b[4]), .cin(net_10), .cout(net_2),
.s(s[4]));
stdcells__fa fa_5_(.a(a[5]), .b(b[5]), .cin(net_2), .cout(cout), .s(s[5]));
endmodule /* datapath__rca_6bit */
module memory__dec4(a, en, q);
input [3:0] a;
input en;
output [15:0] q;
supply1 vdd;
supply0 gnd;
wire net_5, net_17, net_20, net_23, net_62, net_76, net_88, net_89;
stdcells__dec2 dec2_0(.a0(a[3]), .a1(a[2]), .en(en), ._q0(net_5),
._q1(net_17), ._q2(net_20), ._q3(net_23));
stdcells__dec2 dec2_1(.a0(a[1]), .a1(a[0]), .en(en), ._q0(net_62),
._q1(net_76), ._q2(net_88), ._q3(net_89));
stdcells__nor2 nor2_0(.x(net_5), .y(net_62), .z(q[0]));
stdcells__nor2 nor2_1(.x(net_5), .y(net_76), .z(q[1]));
stdcells__nor2 nor2_2(.x(net_5), .y(net_88), .z(q[2]));
stdcells__nor2 nor2_3(.x(net_5), .y(net_89), .z(q[3]));
stdcells__nor2 nor2_4(.x(net_17), .y(net_62), .z(q[4]));
stdcells__nor2 nor2_5(.x(net_17), .y(net_76), .z(q[5]));
stdcells__nor2 nor2_6(.x(net_17), .y(net_88), .z(q[6]));
stdcells__nor2 nor2_7(.x(net_17), .y(net_89), .z(q[7]));
stdcells__nor2 nor2_8(.x(net_20), .y(net_62), .z(q[8]));
stdcells__nor2 nor2_9(.x(net_20), .y(net_76), .z(q[9]));
stdcells__nor2 nor2_10(.x(net_20), .y(net_88), .z(q[10]));
stdcells__nor2 nor2_11(.x(net_20), .y(net_89), .z(q[11]));
stdcells__nor2 nor2_12(.x(net_23), .y(net_62), .z(q[12]));
stdcells__nor2 nor2_13(.x(net_23), .y(net_76), .z(q[13]));
stdcells__nor2 nor2_14(.x(net_23), .y(net_88), .z(q[14]));
stdcells__nor2 nor2_15(.x(net_23), .y(net_89), .z(q[15]));
endmodule /* memory__dec4 */
module memory__mux16(i, s, z);
input [15:0] i;
input [3:0] s;
output z;
supply1 vdd;
supply0 gnd;
wire net_65, net_67, net_70, net_72, net_75, net_77, net_80, net_82, net_85;
wire net_87, net_88, net_90, net_95, net_97;
stdcells__mux2 mux2_0(.i(i[1:0]), .s(s[0]), .z(net_65));
stdcells__mux2 mux2_1(.i({i[2], i[3]}), .s(s[0]), .z(net_67));
stdcells__mux2 mux2_2(.i(i[5:4]), .s(s[0]), .z(net_72));
stdcells__mux2 mux2_3(.i({i[6], i[7]}), .s(s[0]), .z(net_70));
stdcells__mux2 mux2_4(.i(i[9:8]), .s(s[0]), .z(net_75));
stdcells__mux2 mux2_5(.i({i[10], i[11]}), .s(s[0]), .z(net_77));
stdcells__mux2 mux2_6(.i(i[13:12]), .s(s[0]), .z(net_80));
stdcells__mux2 mux2_7(.i({i[14], i[15]}), .s(s[0]), .z(net_82));
stdcells__mux2 mux2_8(.i({net_67, net_65}), .s(s[1]), .z(net_85));
stdcells__mux2 mux2_9(.i({net_70, net_72}), .s(s[1]), .z(net_87));
stdcells__mux2 mux2_10(.i({net_77, net_75}), .s(s[1]), .z(net_88));
stdcells__mux2 mux2_11(.i({net_82, net_80}), .s(s[1]), .z(net_90));
stdcells__mux2 mux2_12(.i({net_87, net_85}), .s(s[2]), .z(net_97));
stdcells__mux2 mux2_13(.i({net_90, net_88}), .s(s[2]), .z(net_95));
stdcells__mux2 mux2_14(.i({net_95, net_97}), .s(s[3]), .z(z));
endmodule /* memory__mux16 */
module memory__regfile16(clk, r_addr, rst, w_addr, w_data, w_en, r_data);
input clk;
input [3:0] r_addr;
input rst;
input [3:0] w_addr;
input [7:0] w_data;
input w_en;
output [7:0] r_data;
supply1 vdd;
supply0 gnd;
wire net_0, net_99, net_102, net_103, net_104, net_105, net_106, net_107;
wire net_108, net_109, net_110, net_111, net_112, net_113, net_114, net_115;
wire net_413, net_414, net_415, net_416, net_417, net_418, net_419, net_420;
wire net_424, net_425, net_426, net_427, net_428, net_429, net_430, net_431;
wire net_432, net_433, net_434, net_435, net_436, net_437, net_438, net_439;
wire net_440, net_441, net_442, net_443, net_444, net_445, net_446, net_447;
wire net_448, net_449, net_450, net_451, net_452, net_453, net_454, net_455;
wire net_456, net_457, net_458, net_459, net_460, net_461, net_462, net_463;
wire net_464, net_465, net_466, net_467, net_468, net_469, net_470, net_471;
wire net_472, net_473, net_474, net_475, net_476, net_477, net_478, net_479;
wire net_480, net_481, net_482, net_483, net_484, net_485, net_486, net_487;
wire net_488, net_489, net_490, net_491, net_492, net_493, net_494, net_495;
wire net_496, net_497, net_498, net_499, net_500, net_501, net_502, net_503;
wire net_504, net_505, net_506, net_507, net_508, net_509, net_510, net_511;
wire net_512, net_513, net_514, net_515, net_516, net_517, net_518, net_519;
wire net_520, net_521, net_522, net_523, net_524, net_525, net_526, net_527;
wire net_528, net_529, net_530, net_531, net_532, net_533, net_534, net_535;
wire net_536, net_537, net_538, net_539, net_540, net_541, net_542, net_543;
memory__dec4 dec4_0(.a(w_addr[3:0]), .en(w_en), .q({net_115, net_114,
net_113, net_112, net_111, net_110, net_109, net_108, net_107, net_106,
net_105, net_104, net_103, net_102, net_99, net_0}));
memory__mux16 mux16_0(.i({net_413, net_431, net_439, net_447, net_455,
net_463, net_471, net_479, net_487, net_495, net_503, net_511, net_519,
net_527, net_535, net_543}), .s(r_addr[3:0]), .z(r_data[7]));
memory__mux16 mux16_1(.i({net_414, net_430, net_438, net_446, net_454,
net_462, net_470, net_478, net_486, net_494, net_502, net_510, net_518,
net_526, net_534, net_542}), .s(r_addr[3:0]), .z(r_data[6]));
memory__mux16 mux16_2(.i({net_415, net_429, net_437, net_445, net_453,
net_461, net_469, net_477, net_485, net_493, net_501, net_509, net_517,
net_525, net_533, net_541}), .s(r_addr[3:0]), .z(r_data[5]));
memory__mux16 mux16_3(.i({net_416, net_428, net_436, net_444, net_452,
net_460, net_468, net_476, net_484, net_492, net_500, net_508, net_516,
net_524, net_532, net_540}), .s(r_addr[3:0]), .z(r_data[4]));
memory__mux16 mux16_4(.i({net_417, net_427, net_435, net_443, net_451,
net_459, net_467, net_475, net_483, net_491, net_499, net_507, net_515,
net_523, net_531, net_539}), .s(r_addr[3:0]), .z(r_data[3]));
memory__mux16 mux16_5(.i({net_418, net_426, net_434, net_442, net_450,
net_458, net_466, net_474, net_482, net_490, net_498, net_506, net_514,
net_522, net_530, net_538}), .s(r_addr[3:0]), .z(r_data[2]));
memory__mux16 mux16_6(.i({net_419, net_425, net_433, net_441, net_449,
net_457, net_465, net_473, net_481, net_489, net_497, net_505, net_513,
net_521, net_529, net_537}), .s(r_addr[3:0]), .z(r_data[1]));
memory__mux16 mux16_7(.i({net_420, net_424, net_432, net_440, net_448,
net_456, net_464, net_472, net_480, net_488, net_496, net_504, net_512,
net_520, net_528, net_536}), .s(r_addr[3:0]), .z(r_data[0]));
memory__reg8 reg8_0(.clk(clk), .d(w_data[7:0]), .en(net_0), .rst(rst),
.q({net_543, net_542, net_541, net_540, net_539, net_538, net_537,
net_536}));
memory__reg8 reg8_1(.clk(clk), .d(w_data[7:0]), .en(net_99), .rst(rst),
.q({net_535, net_534, net_533, net_532, net_531, net_530, net_529,
net_528}));
memory__reg8 reg8_2(.clk(clk), .d(w_data[7:0]), .en(net_102), .rst(rst),
.q({net_527, net_526, net_525, net_524, net_523, net_522, net_521,
net_520}));
memory__reg8 reg8_3(.clk(clk), .d(w_data[7:0]), .en(net_103), .rst(rst),
.q({net_519, net_518, net_517, net_516, net_515, net_514, net_513,
net_512}));
memory__reg8 reg8_4(.clk(clk), .d(w_data[7:0]), .en(net_104), .rst(rst),
.q({net_511, net_510, net_509, net_508, net_507, net_506, net_505,
net_504}));
memory__reg8 reg8_5(.clk(clk), .d(w_data[7:0]), .en(net_105), .rst(rst),
.q({net_503, net_502, net_501, net_500, net_499, net_498, net_497,
net_496}));
memory__reg8 reg8_6(.clk(clk), .d(w_data[7:0]), .en(net_106), .rst(rst),
.q({net_495, net_494, net_493, net_492, net_491, net_490, net_489,
net_488}));
memory__reg8 reg8_7(.clk(clk), .d(w_data[7:0]), .en(net_107), .rst(rst),
.q({net_487, net_486, net_485, net_484, net_483, net_482, net_481,
net_480}));
memory__reg8 reg8_8(.clk(clk), .d(w_data[7:0]), .en(net_108), .rst(rst),
.q({net_479, net_478, net_477, net_476, net_475, net_474, net_473,
net_472}));
memory__reg8 reg8_9(.clk(clk), .d(w_data[7:0]), .en(net_109), .rst(rst),
.q({net_471, net_470, net_469, net_468, net_467, net_466, net_465,
net_464}));
memory__reg8 reg8_10(.clk(clk), .d(w_data[7:0]), .en(net_110), .rst(rst),
.q({net_463, net_462, net_461, net_460, net_459, net_458, net_457,
net_456}));
memory__reg8 reg8_11(.clk(clk), .d(w_data[7:0]), .en(net_111), .rst(rst),
.q({net_455, net_454, net_453, net_452, net_451, net_450, net_449,
net_448}));
memory__reg8 reg8_12(.clk(clk), .d(w_data[7:0]), .en(net_112), .rst(rst),
.q({net_447, net_446, net_445, net_444, net_443, net_442, net_441,
net_440}));
memory__reg8 reg8_13(.clk(clk), .d(w_data[7:0]), .en(net_113), .rst(rst),
.q({net_439, net_438, net_437, net_436, net_435, net_434, net_433,
net_432}));
memory__reg8 reg8_14(.clk(clk), .d(w_data[7:0]), .en(net_114), .rst(rst),
.q({net_431, net_430, net_429, net_428, net_427, net_426, net_425,
net_424}));
memory__reg8 reg8_15(.clk(clk), .d(w_data[7:0]), .en(net_115), .rst(rst),
.q({net_413, net_414, net_415, net_416, net_417, net_418, net_419,
net_420}));
endmodule /* memory__regfile16 */
module chip_core(addr, clk, cs, data_in, rst, rw, data_out);
input [2:0] addr;
input clk;
input cs;
input [7:0] data_in;
input rst;
input rw;
output [7:0] data_out;
supply1 vdd;
supply0 gnd;
wire fsm_1_alu_en, net_31, net_68, net_69, net_70, net_143, net_145, net_151;
wire net_155, net_159, net_162, net_165, net_207, net_242, net_259, net_260;
wire net_261, net_262, net_263, net_264, net_265, net_266, net_267, net_268;
wire net_269, net_286, net_287, net_288, net_289, net_290, net_378, net_380;
wire net_411, net_416, net_421, net_422, net_425, net_426, net_427, net_428;
wire net_429, net_430, net_431, net_474, net_475, net_476, net_477, net_504;
wire net_507, net_509, net_510, net_513, net_515, net_539, net_571, net_637;
wire net_642, net_646, net_649, net_652, net_668, net_670, net_672, net_674;
wire net_676, net_777, net_916, net_1054, net_1084, net_1098, net_1129;
wire net_1130, net_1143, net_1147, net_1165;
wire [7:3] ioreg5_1_q_opcode;
memory__bumpallocator bumpallo_0(.clk(clk), .inc_en(net_1143), .rst(rst),
.ptr({net_474, net_475, net_476, net_477}));
datapath__eq_8bit eq_8bit_0(.a({net_267, net_268, net_269, net_286, net_287,
net_288, net_289, net_290}), .b({net_259, net_260, net_261, net_262,
net_263, net_264, net_265, net_266}), .eq(net_380));
control__fsm fsm_1(.a(addr[2:0]), .clk(clk), .cs(cs), .op({net_70, net_69,
net_68}), .rst(rst), .rw(rw), .alu_en(fsm_1_alu_en), .busy(net_421),
.heap_wen(net_31), .q_exec_cdr(net_416), .reg_wen(net_207));
stdcells__inv inv_0(.x(net_70), .y(net_1130));
stdcells__inv inv_1(.x(net_1129), .y(net_1143));
stdcells__inv inv_2(.x(net_1147), .y(net_539));
stdcells__inv inv_3(.x(net_69), .y(net_1165));
memory__ioreg5 ioreg5_1(.a(addr[2:0]), .clk(clk), .data_in(data_in[7:0]),
.global_en(cs), .reg_wen(net_207), .result_in({net_165, net_162, net_159,
net_242, net_155, net_151, net_145, net_143}), .rst(rst),
.status_busy(net_421), .status_carry(net_504), .status_err_heap(net_378),
.status_err_type(net_378), .status_zero(net_380),
.data_out(data_out[7:0]), .q_arg1({net_267, net_268, net_269, net_286,
net_287, net_288, net_289, net_290}), .q_arg2({net_259, net_260, net_261,
net_262, net_263, net_264, net_265, net_266}),
.q_opcode({ioreg5_1_q_opcode[7], ioreg5_1_q_opcode[6],
ioreg5_1_q_opcode[5], ioreg5_1_q_opcode[4], ioreg5_1_q_opcode[3], net_70,
net_69, net_68}));
stdcells__mux2 mux2_0(.i({net_380, net_571}), .s(net_68), .z(net_1084));
datapath__mux2_8bit mux2_8bi_0(.i0({net_267, net_268, net_269, net_286,
net_287, net_288, net_289, net_290}), .i1({net_259, net_260, net_261,
net_262, net_263, net_264, net_265, net_266}), .s(net_416), .z({net_676,
net_674, net_672, net_670, net_668, net_652, net_649, net_646}));
datapath__mux3_4bit mux3_4bi_0(.i0({net_287, net_288, net_289, net_290}),
.i1({net_474, net_475, net_476, net_477}), .i2({net_474, net_475,
net_476, net_477}), .s({net_416, net_31}), .z({net_411, net_642, net_777,
net_637}));
datapath__mux4_8bit mux4_8bi_0(.i0({net_431, net_430, net_429, net_428,
net_427, net_426, net_425, net_422}), .i1({net_1054, net_1054, net_916,
net_916, net_474, net_475, net_476, net_477}), .i2({net_1054, net_916,
net_515, net_513, net_510, net_509, net_507, net_1098}), .i3({net_916,
net_1084, net_916, net_916, net_916, net_916, net_916, net_1084}),
.s({net_70, net_539}), .z({net_165, net_162, net_159, net_242, net_155,
net_151, net_145, net_143}));
stdcells__nand2 nand2_0(.x(net_268), .y(net_267), .z(net_571));
stdcells__nand2 nand2_1(.x(net_68), .y(net_1165), .z(net_1147));
stdcells__nand3 nand3_0(.w(net_207), .x(net_1130), .y(net_68),
.z(net_1129));
datapath__rca_6bit rca_6bit_0(.a({net_269, net_286, net_287, net_288,
net_289, net_290}), .b({net_261, net_262, net_263, net_264, net_265,
net_266}), .cin(net_916), .cout(net_504), .s({net_515, net_513, net_510,
net_509, net_507, net_1098}));
memory__regfile16 regfile1_1(.clk(clk), .r_addr({net_287, net_288, net_289,
net_290}), .rst(rst), .w_addr({net_411, net_642, net_777, net_637}),
.w_data({net_676, net_674, net_672, net_670, net_668, net_652, net_649,
net_646}), .w_en(net_31), .r_data({net_431, net_430, net_429, net_428,
net_427, net_426, net_425, net_422}));
stdcells__tiehigh tiehigh_0(.y(net_1054));
stdcells__tielow tielow_3(.y(net_916));
stdcells__tielow tielow_4(.y(net_378));
endmodule /* chip_core */
|