ANKI REDDY SAI PRAVEEN
09/12/2023, 1:25 AMiverilog fsm_adder.v adder_fsm_tb.v sky130_sram_1kbyte_1rw1r_32x256_8.v sky130_fd_sc_hd.v primitives.v
vvp a.out
gtkwave dump.vcd
Leo Moser
09/12/2023, 6:39 AMFUNCTIONAL
models, but the timing models. These contain specify blocks so that the timings from your hardened design can be back-annotated via an SDF file. Your version of Icarus Verilog does not yet connect the delayed signals from the $recrem
and $setuphold
timing checks. Consequently, the output for these cells will be x
, which may cause your design not to work.
You have two options:
- Build the newest version of iverilog from here https://github.com/steveicarus/iverilog
- Pass -DFUNCTIONAL
to iverilog so that the functional models are used (backannotation is not possible in this case)ANKI REDDY SAI PRAVEEN
09/12/2023, 4:20 PMLeo Moser
09/13/2023, 7:59 AMalways_comb
and always_ff
, these helped me a lot :)
If you use those, you need to pass -g2012
to iverilog for RTL simulation.
As a last step, use a linter (Verilator does a good job) to check your RTL code for undesired patterns.
I hope this helps!ANKI REDDY SAI PRAVEEN
09/13/2023, 8:57 AMLeo Moser
09/13/2023, 11:17 AMANKI REDDY SAI PRAVEEN
09/13/2023, 1:10 PMANKI REDDY SAI PRAVEEN
09/18/2023, 6:41 PMANKI REDDY SAI PRAVEEN
09/19/2023, 12:33 AMiverilog -DFUNCTIONAL -DUNIT_DELAY=#1 fsm_adder.v sky130_sram_1kbyte_1rw1r_32x256_8.v sky130_fd_sc_hd.v primitives.v adder_fsm_tb.v
vvp a.out
gtkwave dump.vcd
please look into this @Leo Moser @Matt Venn @donnMatt Venn
09/19/2023, 10:04 AMMatt Venn
09/19/2023, 10:05 AMMatt Venn
09/19/2023, 10:06 AMMatt Venn
09/19/2023, 10:06 AMMatt Venn
09/19/2023, 10:07 AMANKI REDDY SAI PRAVEEN
09/19/2023, 10:10 AMfsm_adder
files are here. One is before synthesis and other after synthesis. @Matt VennMatt Venn
09/19/2023, 5:07 PMANKI REDDY SAI PRAVEEN
09/19/2023, 5:27 PMfsm_adder
this time and figure out problem.