najaeda 0.2.9__cp311-cp311-macosx_11_0_arm64.whl → 0.2.10__cp311-cp311-macosx_11_0_arm64.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.

Potentially problematic release.


This version of najaeda might be problematic. Click here for more details.

najaeda/libnaja_nl.dylib CHANGED
Binary file
Binary file
najaeda/naja.so CHANGED
Binary file
@@ -6,6 +6,20 @@ import logging
6
6
  from najaeda import naja
7
7
 
8
8
 
9
+ def constructSequentialPrimitive(design, clk):
10
+ input_terms = []
11
+ output_terms = []
12
+ for term in design.getBitTerms():
13
+ if term == clk:
14
+ pass
15
+ if term.getDirection() == naja.SNLTerm.Direction.Input:
16
+ input_terms.append(term)
17
+ elif term.getDirection() == naja.SNLTerm.Direction.Output:
18
+ output_terms.append(term)
19
+ naja.SNLDesign.addClockToOutputsArcs(clk, output_terms)
20
+ naja.SNLDesign.addInputsToClockArcs(input_terms, clk)
21
+
22
+
9
23
  def constructIBUF(lib):
10
24
  ibuf = naja.SNLDesign.createPrimitive(lib, "IBUF")
11
25
  i = naja.SNLScalarTerm.create(ibuf, naja.SNLTerm.Direction.Input, "I")
@@ -47,7 +61,7 @@ def constructDSP48E1(lib):
47
61
  naja.SNLBusTerm.create(dsp48e1, naja.SNLTerm.Direction.Input, 47, 0, "PCIN")
48
62
  naja.SNLBusTerm.create(dsp48e1, naja.SNLTerm.Direction.Input, 3, 0, "ALUMODE")
49
63
  naja.SNLBusTerm.create(dsp48e1, naja.SNLTerm.Direction.Input, 2, 0, "CARRYINSEL")
50
- naja.SNLScalarTerm.create(dsp48e1, naja.SNLTerm.Direction.Input, "CLK")
64
+ clk = naja.SNLScalarTerm.create(dsp48e1, naja.SNLTerm.Direction.Input, "CLK")
51
65
  naja.SNLBusTerm.create(dsp48e1, naja.SNLTerm.Direction.Input, 4, 0, "INMODE")
52
66
  naja.SNLBusTerm.create(dsp48e1, naja.SNLTerm.Direction.Input, 6, 0, "OPMODE")
53
67
  naja.SNLBusTerm.create(dsp48e1, naja.SNLTerm.Direction.Input, 29, 0, "A")
@@ -97,6 +111,7 @@ def constructDSP48E1(lib):
97
111
  naja.SNLParameter.create_boolean(dsp48e1, "USE_DPORT", False)
98
112
  naja.SNLParameter.create_string(dsp48e1, "USE_MULT", "MULTIPLY")
99
113
  naja.SNLParameter.create_string(dsp48e1, "USE_SIMD", "ONE48")
114
+ constructSequentialPrimitive(dsp48e1, clk)
100
115
 
101
116
 
102
117
  def constructINV(lib):
@@ -281,20 +296,25 @@ def constructFDSE(lib):
281
296
 
282
297
  def constructRAM32M(lib):
283
298
  ram32m = naja.SNLDesign.createPrimitive(lib, "RAM32M")
284
- naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Output, 1, 0, "DOA")
285
- naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Output, 1, 0, "DOB")
286
- naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Output, 1, 0, "DOC")
287
- naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Output, 1, 0, "DOD")
288
- naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 4, 0, "ADDRA")
289
- naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 4, 0, "ADDRB")
290
- naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 4, 0, "ADDRC")
291
- naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 4, 0, "ADDRD")
292
- naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 1, 0, "DIA")
293
- naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 1, 0, "DIB")
294
- naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 1, 0, "DIC")
295
- naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 1, 0, "DID")
296
- naja.SNLScalarTerm.create(ram32m, naja.SNLTerm.Direction.Input, "WCLK")
297
- naja.SNLScalarTerm.create(ram32m, naja.SNLTerm.Direction.Input, "WE")
299
+ doa = naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Output, 1, 0, "DOA")
300
+ dob = naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Output, 1, 0, "DOB")
301
+ doc = naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Output, 1, 0, "DOC")
302
+ dod = naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Output, 1, 0, "DOD")
303
+ addra = naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 4, 0, "ADDRA")
304
+ addrb = naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 4, 0, "ADDRB")
305
+ addrc = naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 4, 0, "ADDRC")
306
+ addrd = naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 4, 0, "ADDRD")
307
+ naja.SNLDesign.addCombinatorialArcs(doa, list(addra.getBits()))
308
+ naja.SNLDesign.addCombinatorialArcs(dob, list(addrb.getBits()))
309
+ naja.SNLDesign.addCombinatorialArcs(doc, list(addrc.getBits()))
310
+ naja.SNLDesign.addCombinatorialArcs(dod, list(addrd.getBits()))
311
+ dia = naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 1, 0, "DIA")
312
+ dib = naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 1, 0, "DIB")
313
+ dic = naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 1, 0, "DIC")
314
+ did = naja.SNLBusTerm.create(ram32m, naja.SNLTerm.Direction.Input, 1, 0, "DID")
315
+ wclk = naja.SNLScalarTerm.create(ram32m, naja.SNLTerm.Direction.Input, "WCLK")
316
+ we = naja.SNLScalarTerm.create(ram32m, naja.SNLTerm.Direction.Input, "WE")
317
+ naja.SNLDesign.addInputsToClockArcs([dia, dib, dic, did, we], wclk)
298
318
  naja.SNLParameter.create_binary(ram32m, "INIT_A", 64, 0)
299
319
  naja.SNLParameter.create_binary(ram32m, "INIT_B", 64, 0)
300
320
  naja.SNLParameter.create_binary(ram32m, "INIT_C", 64, 0)
@@ -303,50 +323,80 @@ def constructRAM32M(lib):
303
323
 
304
324
  def constructRAM64M(lib):
305
325
  ram64m = naja.SNLDesign.createPrimitive(lib, "RAM64M")
306
- naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Output, "DOA")
307
- naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Output, "DOB")
308
- naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Output, "DOC")
309
- naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Output, "DOD")
310
- naja.SNLBusTerm.create(ram64m, naja.SNLTerm.Direction.Input, 5, 0, "ADDRA")
311
- naja.SNLBusTerm.create(ram64m, naja.SNLTerm.Direction.Input, 5, 0, "ADDRB")
312
- naja.SNLBusTerm.create(ram64m, naja.SNLTerm.Direction.Input, 5, 0, "ADDRC")
313
- naja.SNLBusTerm.create(ram64m, naja.SNLTerm.Direction.Input, 5, 0, "ADDRD")
314
- naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Input, "DIA")
315
- naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Input, "DIB")
316
- naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Input, "DIC")
317
- naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Input, "DID")
318
- naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Input, "WCLK")
319
- naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Input, "WE")
326
+ doa = naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Output, "DOA")
327
+ dob = naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Output, "DOB")
328
+ doc = naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Output, "DOC")
329
+ dod = naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Output, "DOD")
330
+ addra = naja.SNLBusTerm.create(ram64m, naja.SNLTerm.Direction.Input, 5, 0, "ADDRA")
331
+ addrb = naja.SNLBusTerm.create(ram64m, naja.SNLTerm.Direction.Input, 5, 0, "ADDRB")
332
+ addrc = naja.SNLBusTerm.create(ram64m, naja.SNLTerm.Direction.Input, 5, 0, "ADDRC")
333
+ addrd = naja.SNLBusTerm.create(ram64m, naja.SNLTerm.Direction.Input, 5, 0, "ADDRD")
334
+ naja.SNLDesign.addCombinatorialArcs(doa, list(addra.getBits()))
335
+ naja.SNLDesign.addCombinatorialArcs(dob, list(addrb.getBits()))
336
+ naja.SNLDesign.addCombinatorialArcs(doc, list(addrc.getBits()))
337
+ naja.SNLDesign.addCombinatorialArcs(dod, list(addrd.getBits()))
338
+ dia = naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Input, "DIA")
339
+ dib = naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Input, "DIB")
340
+ dic = naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Input, "DIC")
341
+ did = naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Input, "DID")
342
+ wclk = naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Input, "WCLK")
343
+ we = naja.SNLScalarTerm.create(ram64m, naja.SNLTerm.Direction.Input, "WE")
344
+ naja.SNLDesign.addInputsToClockArcs([dia, dib, dic, did, we], wclk)
320
345
  naja.SNLParameter.create_binary(ram64m, "INIT_A", 64, 0)
321
346
  naja.SNLParameter.create_binary(ram64m, "INIT_B", 64, 0)
322
347
  naja.SNLParameter.create_binary(ram64m, "INIT_C", 64, 0)
323
348
  naja.SNLParameter.create_binary(ram64m, "INIT_D", 64, 0)
349
+ naja.SNLParameter.create_binary(ram64m, "IS_WCLK_INVERTED", 1, 0)
324
350
 
325
351
 
326
352
  def constructRAMB18E1(lib):
353
+ a_inputs = []
354
+ b_inputs = []
355
+ a_outputs = []
356
+ b_outputs = []
327
357
  ramb18e1 = naja.SNLDesign.createPrimitive(lib, "RAMB18E1")
328
- naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 13, 0, "ADDRARDADDR")
329
- naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 13, 0, "ADDRBWRADDR")
330
- naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "CLKARDCLK")
331
- naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "CLKBWRCLK")
332
- naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 15, 0, "DIADI")
333
- naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 15, 0, "DIBDI")
334
- naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 1, 0, "DIPADIP")
335
- naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 1, 0, "DIPBDIP")
336
- naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Output, 15, 0, "DOADO")
337
- naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Output, 15, 0, "DOBDO")
338
- naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Output, 1, 0, "DOPADOP")
339
- naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Output, 1, 0, "DOPBDOP")
340
- naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "ENARDEN")
341
- naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "ENBWREN")
342
- naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "REGCEAREGCE")
343
- naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "REGCEB")
344
- naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "RSTRAMARSTRAM")
345
- naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "RSTRAMB")
346
- naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "RSTREGARSTREG")
347
- naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "RSTREGB")
348
- naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 1, 0, "WEA")
349
- naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 3, 0, "WEBWE")
358
+ addra = naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 13, 0, "ADDRARDADDR")
359
+ a_inputs.extend(list(addra.getBits()))
360
+ addrb = naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 13, 0, "ADDRBWRADDR")
361
+ b_inputs.extend(list(addrb.getBits()))
362
+ clka = naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "CLKARDCLK")
363
+ clkb = naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "CLKBWRCLK")
364
+ diadi = naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 15, 0, "DIADI")
365
+ a_inputs.extend(list(diadi.getBits()))
366
+ dibdi = naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 15, 0, "DIBDI")
367
+ b_inputs.extend(list(dibdi.getBits()))
368
+ dipadip = naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 1, 0, "DIPADIP")
369
+ a_inputs.extend(list(dipadip.getBits()))
370
+ dipbdip = naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 1, 0, "DIPBDIP")
371
+ b_inputs.extend(list(dipbdip.getBits()))
372
+ doado = naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Output, 15, 0, "DOADO")
373
+ a_outputs.extend(list(doado.getBits()))
374
+ dobdo = naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Output, 15, 0, "DOBDO")
375
+ b_outputs.extend(list(dobdo.getBits()))
376
+ dopadop = naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Output, 1, 0, "DOPADOP")
377
+ a_outputs.extend(list(dopadop.getBits()))
378
+ dopbdop = naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Output, 1, 0, "DOPBDOP")
379
+ b_outputs.extend(list(dopbdop.getBits()))
380
+ enarden = naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "ENARDEN")
381
+ a_inputs.append(enarden)
382
+ enbwren = naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "ENBWREN")
383
+ b_inputs.append(enbwren)
384
+ regcear = naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "REGCEAREGCE")
385
+ a_inputs.append(regcear)
386
+ regceb = naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "REGCEB")
387
+ b_inputs.append(regceb)
388
+ rstrama = naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "RSTRAMARSTRAM")
389
+ a_inputs.append(rstrama)
390
+ rstramb = naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "RSTRAMB")
391
+ b_inputs.append(rstramb)
392
+ rstregar = naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "RSTREGARSTREG")
393
+ a_inputs.append(rstregar)
394
+ rstregb = naja.SNLScalarTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, "RSTREGB")
395
+ b_inputs.append(rstregb)
396
+ wea = naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 1, 0, "WEA")
397
+ a_inputs.extend(list(wea.getBits()))
398
+ webwe = naja.SNLBusTerm.create(ramb18e1, naja.SNLTerm.Direction.Input, 3, 0, "WEBWE")
399
+ b_inputs.extend(list(webwe.getBits()))
350
400
  naja.SNLParameter.create_decimal(ramb18e1, "DOA_REG", 0)
351
401
  naja.SNLParameter.create_decimal(ramb18e1, "DOB_REG", 0)
352
402
  naja.SNLParameter.create_binary(ramb18e1, "INIT_A", 18, 0x00000)
@@ -366,43 +416,93 @@ def constructRAMB18E1(lib):
366
416
  naja.SNLParameter.create_string(ramb18e1, "WRITE_MODE_B", "WRITE_FIRST")
367
417
  naja.SNLParameter.create_decimal(ramb18e1, "WRITE_WIDTH_A", 0)
368
418
  naja.SNLParameter.create_decimal(ramb18e1, "WRITE_WIDTH_B", 0)
419
+ naja.SNLDesign.addInputsToClockArcs(a_inputs, clka)
420
+ naja.SNLDesign.addInputsToClockArcs(b_inputs, clkb)
421
+ naja.SNLDesign.addClockToOutputsArcs(clka, a_outputs)
422
+ naja.SNLDesign.addClockToOutputsArcs(clkb, b_outputs)
369
423
 
370
424
 
371
425
  def constructRAMB36E1(lib):
426
+ a_inputs = []
427
+ b_inputs = []
428
+ a_outputs = []
429
+ b_outputs = []
372
430
  ramb36e1 = naja.SNLDesign.createPrimitive(lib, "RAMB36E1")
373
- naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 15, 0, "ADDRARDADDR")
374
- naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 15, 0, "ADDRBWRADDR")
375
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "CASCADEINA")
376
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "CASCADEINB")
377
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, "CASCADEOUTA")
378
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, "CASCADEOUTB")
379
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "CLKARDCLK")
380
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "CLKBWRCLK")
381
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, "DBITERR")
382
- naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 31, 0, "DIADI")
383
- naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 31, 0, "DIBDI")
384
- naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 3, 0, "DIPADIP")
385
- naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 3, 0, "DIPBDIP")
386
- naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, 31, 0, "DOADO")
387
- naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, 31, 0, "DOBDO")
388
- naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, 3, 0, "DOPADOP")
389
- naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, 3, 0, "DOPBDOP")
390
- naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, 7, 0, "ECCPARITY")
391
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "ENARDEN")
392
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "ENBWREN")
393
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "INJECTDBITERR")
394
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "INJECTSBITERR")
395
- naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, 8, 0, "RDADDRECC")
396
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "REGCEAREGCE")
397
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "REGCEB")
398
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "RSTRAMARSTRAM")
399
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "RSTRAMB")
400
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "RSTREGARSTREG")
401
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "RSTREGB")
402
- naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, "SBITERR")
403
- naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 3, 0, "WEA")
404
- naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 7, 0, "WEBWE")
405
-
431
+ addra = naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 15, 0, "ADDRARDADDR")
432
+ a_inputs.extend(list(addra.getBits()))
433
+ addrb = naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 15, 0, "ADDRBWRADDR")
434
+ b_inputs.extend(list(addrb.getBits()))
435
+ cascadeina = naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "CASCADEINA")
436
+ a_inputs.append(cascadeina)
437
+ cascadeinb = naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "CASCADEINB")
438
+ b_inputs.append(cascadeinb)
439
+ cascadeouta = naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, "CASCADEOUTA")
440
+ a_outputs.append(cascadeouta)
441
+ cascadeoutb = naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, "CASCADEOUTB")
442
+ b_outputs.append(cascadeoutb)
443
+ clka = naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "CLKARDCLK")
444
+ clkb = naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "CLKBWRCLK")
445
+ dbiterr = naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, "DBITERR")
446
+ a_outputs.append(dbiterr) # not sure about which kind of modeling to put here...
447
+ diadi = naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 31, 0, "DIADI")
448
+ a_inputs.extend(list(diadi.getBits()))
449
+ dibdi = naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 31, 0, "DIBDI")
450
+ b_inputs.extend(list(dibdi.getBits()))
451
+ dipadip = naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 3, 0, "DIPADIP")
452
+ a_inputs.extend(list(dipadip.getBits()))
453
+ dipbdip = naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 3, 0, "DIPBDIP")
454
+ b_inputs.extend(list(dipbdip.getBits()))
455
+ doado = naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, 31, 0, "DOADO")
456
+ a_outputs.extend(list(doado.getBits()))
457
+ dobdo = naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, 31, 0, "DOBDO")
458
+ b_outputs.extend(list(dobdo.getBits()))
459
+ dopadop = naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, 3, 0, "DOPADOP")
460
+ a_outputs.extend(list(dopadop.getBits()))
461
+ dopbdop = naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, 3, 0, "DOPBDOP")
462
+ b_outputs.extend(list(dopbdop.getBits()))
463
+ eccparity = naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, 7, 0, "ECCPARITY")
464
+ # not sure about which kind of modeling to put here.
465
+ a_outputs.extend(list(eccparity.getBits()))
466
+ enarden = naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "ENARDEN")
467
+ a_inputs.append(enarden)
468
+ enbwren = naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "ENBWREN")
469
+ b_inputs.append(enbwren)
470
+ injectdbiterr = naja.SNLScalarTerm.create(
471
+ ramb36e1, naja.SNLTerm.Direction.Input, "INJECTDBITERR"
472
+ )
473
+ injectsbiterr = naja.SNLScalarTerm.create(
474
+ ramb36e1, naja.SNLTerm.Direction.Input, "INJECTSBITERR"
475
+ )
476
+ a_inputs.append(injectdbiterr) # not sure about which kind of modeling to put here.
477
+ a_inputs.append(injectsbiterr) # not sure about which kind of modeling to put here.
478
+ rdaddrecc = naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, 8, 0, "RDADDRECC")
479
+ a_outputs.extend(list(rdaddrecc.getBits()))
480
+ regcearegce = naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "REGCEAREGCE")
481
+ a_inputs.append(regcearegce)
482
+ regceb = naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "REGCEB")
483
+ b_inputs.append(regceb)
484
+ rstramarstram = naja.SNLScalarTerm.create(
485
+ ramb36e1, naja.SNLTerm.Direction.Input, "RSTRAMARSTRAM"
486
+ )
487
+ a_inputs.append(rstramarstram)
488
+ rstramb = naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "RSTRAMB")
489
+ b_inputs.append(rstramb)
490
+ rstregarstreg = naja.SNLScalarTerm.create(
491
+ ramb36e1, naja.SNLTerm.Direction.Input, "RSTREGARSTREG"
492
+ )
493
+ a_inputs.append(rstregarstreg)
494
+ rstregb = naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, "RSTREGB")
495
+ b_inputs.append(rstregb)
496
+ sbiterr = naja.SNLScalarTerm.create(ramb36e1, naja.SNLTerm.Direction.Output, "SBITERR")
497
+ a_outputs.append(sbiterr) # not sure about which kind of modeling to put here.
498
+ wea = naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 3, 0, "WEA")
499
+ a_inputs.extend(list(wea.getBits()))
500
+ webwe = naja.SNLBusTerm.create(ramb36e1, naja.SNLTerm.Direction.Input, 7, 0, "WEBWE")
501
+ b_inputs.extend(list(webwe.getBits()))
502
+ naja.SNLDesign.addInputsToClockArcs(a_inputs, clka)
503
+ naja.SNLDesign.addInputsToClockArcs(b_inputs, clkb)
504
+ naja.SNLDesign.addClockToOutputsArcs(clka, a_outputs)
505
+ naja.SNLDesign.addClockToOutputsArcs(clkb, b_outputs)
406
506
  naja.SNLParameter.create_decimal(ramb36e1, "DOA_REG", 0)
407
507
  naja.SNLParameter.create_decimal(ramb36e1, "DOB_REG", 0)
408
508
  naja.SNLParameter.create_binary(ramb36e1, "INIT_A", 36, 0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: najaeda
3
- Version: 0.2.9
3
+ Version: 0.2.10
4
4
  Summary: Naja EDA Python package
5
5
  Author-Email: Naja Authors <contact@keplertech.io>
6
6
  License: Apache License 2.0
@@ -1,17 +1,17 @@
1
- najaeda-0.2.9.dist-info/RECORD,,
2
- najaeda-0.2.9.dist-info/WHEEL,sha256=J4k32aYfy8FqV_eDPQK88Q49UIff400pvjsv-be8I-M,114
3
- najaeda-0.2.9.dist-info/METADATA,sha256=GMUJC6rYW2tPNfdLcHNehuXdBa5yuOhnFaSFa8gwbek,3655
4
- najaeda-0.2.9.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
5
- najaeda-0.2.9.dist-info/licenses/AUTHORS,sha256=7NYEGDAX_1QZvCCHfq8YVXC5ZbwH_pbNI8DcSmm70GU,377
1
+ najaeda-0.2.10.dist-info/RECORD,,
2
+ najaeda-0.2.10.dist-info/WHEEL,sha256=J4k32aYfy8FqV_eDPQK88Q49UIff400pvjsv-be8I-M,114
3
+ najaeda-0.2.10.dist-info/METADATA,sha256=-9uJNNWWDpC0ofYCIvFlQgusbbd5iMvBmz60oz5HspE,3656
4
+ najaeda-0.2.10.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
5
+ najaeda-0.2.10.dist-info/licenses/AUTHORS,sha256=7NYEGDAX_1QZvCCHfq8YVXC5ZbwH_pbNI8DcSmm70GU,377
6
6
  najaeda/netlist.py,sha256=iDaELvPq9irnAPmk6F7LqjP0W6w9uUpb3b_UG900Q-g,63744
7
- najaeda/libnaja_nl.dylib,sha256=5ATBPPpP1qXR6a81JgfZdQrFuz4LmzSIfL-wEINDD0g,774416
7
+ najaeda/libnaja_nl.dylib,sha256=G0kN6sg7R5sLwPFDL2jPZHjUPFbzA-CWycVTuYLowoo,774400
8
8
  najaeda/pandas_stats.py,sha256=yOb4ka965U7rN4D6AwvSGmRyeT_O7Ed-5cmT8BFbfeo,1070
9
9
  najaeda/_version.py,sha256=c-4hT20dyE-3BcdzOqR0vd92E7ydR5u2c-VmCc6oU8A,332
10
10
  najaeda/__init__.py,sha256=6QrOzlqTfd558FH9Zm6ve54IzkHaDJ8ZO8hTCaEwsL8,218
11
- najaeda/naja.so,sha256=PmhtMh32m5AU0AD91AT8K0VpTpvQ-XI4GuXVKskKuGs,99440
11
+ najaeda/naja.so,sha256=InUjeTwg_gRulIBrVozhkA6jgP6DScuzWu1eqQwQiiU,99440
12
12
  najaeda/net_visitor.py,sha256=P_esjibYb-wBDuF-AyF7es9sJYw1Ha8RhTPu-qKe7G4,1940
13
13
  najaeda/libnaja_opt.dylib,sha256=vW8P49UplpYdjSxqU3TeaV2s9ck75Spq5ZcrN3ET0f4,212720
14
- najaeda/libnaja_python.dylib,sha256=Nj4aM2qG3Lin2l46SE-08NBwRRthliXz9OfhLp3aKb8,962128
14
+ najaeda/libnaja_python.dylib,sha256=cj1G9ahh70nIUZexZmLq2VBCSoToMe97X1jToM3l2dQ,962128
15
15
  najaeda/stats.py,sha256=g1F1CEBNVvGgzINOI7sK83123cCbclLDmyUjuep3-EU,16107
16
16
  najaeda/instance_visitor.py,sha256=JMsPSQaWNiDjxS05rxg83a0PIsrOIuTi9G35hkwdibs,1530
17
17
  najaeda/libnaja_bne.dylib,sha256=pLbGUnDr5PSGXbA8wKD-pqEyQIWHbiCb1icPpxRYrWE,136416
@@ -40,4 +40,4 @@ najaeda/.dylibs/libtbb.12.15.dylib,sha256=MGGmYnvwo6PQYq7aVv_m2gKHBbOkAdwjPLJtYZ
40
40
  najaeda/.dylibs/libkj-1.1.0.dylib,sha256=pB7dMks8b8ybJ6xKWqFR_hHjKsmpf7wzbcunZaS7gO4,578320
41
41
  najaeda/primitives/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
42
  najaeda/primitives/yosys.py,sha256=g1L70AUJoPCkd9B-b9aW4Pzc1AeR9KyIHoXvneW_UEU,8584
43
- najaeda/primitives/xilinx.py,sha256=Ka-jlu-OxixEZ_yR_niXLHtaUL8HxT1Bg9H9Kpnr4ns,26551
43
+ najaeda/primitives/xilinx.py,sha256=dBzS0bDF9e3kGqadwJDW2H3LmvNfh-AZCU7Hup9ScQQ,31401