You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hierarchy reader converted 6 instances of blackboxes.
291
-
The network was strashed and balanced before FPGA mapping.
292
-
Hierarchy writer reintroduced 6 instances of blackboxes.
293
-
294
-
If we now inspect the produced BLIF file (``blink.abc_no_clock.blif``) we see that ABC was able to significantly simplify and optimize the circuit's logic (compared to ``blink.parmys.blif``):
295
-
296
-
.. literalinclude:: blink.abc_no_clock.blif
297
-
:linenos:
298
-
:emphasize-lines: 6-10,13-18,21-38
299
-
:caption: blink.abc_no_clock.blif
300
-
301
-
ABC has kept the ``.latch`` and ``.subckt adder`` primitives, but has significantly simplified the other logic (``.names``).
302
-
303
-
304
-
However, there is an issue with the above BLIF produced by ABC: the latches (rising edge Flip-Flops) do not have any clocks or edge sensitivity specified, which is information required by VPR.
305
-
306
-
Re-inserting clocks
307
-
^^^^^^^^^^^^^^^^^^^
308
-
We will restore the clock information by running a script which will transfer that information from the original Parmys BLIF file (writing it to the new file ``blink.pre-vpr.blif``):
If we inspect ``blink.pre-vpr.blif`` we now see that the clock (``blink^clk``) has been restored to the Flip-Flops:
318
-
319
-
.. code-block:: bash
320
-
321
-
> grep 'latch' blink.pre-vpr.blif
322
-
323
-
.latch n19 blink^r_counter~0_FF re blink^clk 3
324
-
.latch n24 blink^r_counter~4_FF re blink^clk 3
325
-
.latch n29 blink^r_counter~3_FF re blink^clk 3
326
-
.latch n34 blink^r_counter~2_FF re blink^clk 3
327
-
.latch n39 blink^r_counter~1_FF re blink^clk 3
328
-
329
-
330
263
Implementing the circuit with VPR
331
264
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
332
-
Now that we have the optimized and technology mapped netlist (``blink.pre-vpr.blif``), we can invoke VPR to implement it onto the ``EArch`` FPGA architecture (in the same way we did with the ``tseng`` design earlier).
265
+
Now that we have the optimized and technology mapped netlist (``blink.parmys.blif``), we can invoke VPR to implement it onto the ``EArch`` FPGA architecture (in the same way we did with the ``tseng`` design earlier).
333
266
However, since our BLIF file doesn't match the design name we explicitly specify:
Hierarchy reader converted 6 instances of blackboxes.
482
+
The network was strashed and balanced before FPGA mapping.
483
+
Hierarchy writer reintroduced 6 instances of blackboxes.
484
+
485
+
If we now inspect the produced BLIF file (``blink.abc_no_clock.blif``) we see that ABC was able to significantly simplify and optimize the circuit's logic (compared to ``blink.odin.blif``):
486
+
487
+
.. literalinclude:: blink.abc_no_clock.blif
488
+
:linenos:
489
+
:emphasize-lines: 6-10,13-18,21-38
490
+
:caption: blink.abc_no_clock.blif
491
+
492
+
ABC has kept the ``.latch`` and ``.subckt adder`` primitives, but has significantly simplified the other logic (``.names``).
493
+
494
+
495
+
However, there is an issue with the above BLIF produced by ABC: the latches (rising edge Flip-Flops) do not have any clocks or edge sensitivity specified, which is information required by VPR.
496
+
497
+
Re-inserting clocks
498
+
^^^^^^^^^^^^^^^^^^^
499
+
We will restore the clock information by running a script which will transfer that information from the original ODIN BLIF file (writing it to the new file ``blink.pre-vpr.blif``):
If we inspect ``blink.pre-vpr.blif`` we now see that the clock (``blink^clk``) has been restored to the Flip-Flops:
509
+
510
+
.. code-block:: bash
511
+
512
+
> grep 'latch' blink.pre-vpr.blif
513
+
514
+
.latch n19 blink^r_counter~0_FF re blink^clk 3
515
+
.latch n24 blink^r_counter~4_FF re blink^clk 3
516
+
.latch n29 blink^r_counter~3_FF re blink^clk 3
517
+
.latch n34 blink^r_counter~2_FF re blink^clk 3
518
+
.latch n39 blink^r_counter~1_FF re blink^clk 3
519
+
520
520
521
-
After synthesizing the netlist, you can proceed to follow the steps outlined in the section titled :ref:'Optimizing and Technology Mapping with ABC' using the generated `blink.odin.blif` file instead of `blink.parmys.blif`.
521
+
After optimizing the netlist, we can proceed to follow the steps outlined in the section titled :ref:'Implementing the circuit with VPR' using the genrated `blink.pre-vpr.blif` instead of `blink.parmys.blif`.
0 commit comments