From ce25fc0a91e81fa507cf97f7048cbbce546a8364 Mon Sep 17 00:00:00 2001 From: "mickael@pcys" <mickael.fiorentino@polymtl.ca> Date: Wed, 2 Oct 2019 18:54:12 -0400 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20du=20flot=20de=20concept?= =?UTF-8?q?ion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- compteur/constraints/compteur.syn.sdc | 35 + compteur/constraints/mmmc.tcl | 43 +- compteur/constraints/timing.sdc | 30 +- compteur/implementation/.gitignore | 16 + compteur/implementation/.powerAnalysis.pinfo | 8 + compteur/implementation/cds.lib | 15 + compteur/implementation/pnr/.gitignore | 11 - compteur/implementation/pnr/cds.lib | 15 - .../pnr/netlist/compteur.cts.sdf | 375 +++ .../implementation/pnr/netlist/compteur.cts.v | 123 + .../pnr/netlist/compteur.place.sdf | 287 +++ .../pnr/netlist/compteur.place.v | 99 + .../pnr/netlist/compteur.pnr.phy.v | 565 ----- .../pnr/netlist/compteur.pnr.sdf | 477 ---- .../implementation/pnr/netlist/compteur.pnr.v | 147 -- .../pnr/netlist/compteur.route.sdf | 375 +++ .../pnr/netlist/compteur.route.v | 123 + .../pnr/reports/compteur.con.rpt | 12 +- .../pnr/reports/compteur.drc.rpt | 6 +- .../pnr/reports/compteur.dyn.rpt | 40 +- .../pnr/reports/compteur.stat.rpt | 34 +- .../pnr/reports/compteur.timing.rpt | 47 +- .../pnr/timing/compteur_postCTS.cap.gz | Bin 0 -> 447 bytes .../pnr/timing/compteur_postCTS.fanout.gz | Bin 0 -> 326 bytes .../pnr/timing/compteur_postCTS.length.gz | Bin 0 -> 241 bytes .../pnr/timing/compteur_postCTS.summary.gz | Bin 0 -> 548 bytes .../pnr/timing/compteur_postCTS.tran.gz | Bin 0 -> 497 bytes .../pnr/timing/compteur_postCTS_all.tarpt.gz | Bin 0 -> 4535 bytes .../timing/compteur_postCTS_default.tarpt.gz | Bin 0 -> 2775 bytes .../timing/compteur_postCTS_reg2reg.tarpt.gz | Bin 0 -> 3720 bytes .../compteur_postRoute.SI_Glitches.rpt.gz | Bin 0 -> 90 bytes .../pnr/timing/compteur_postRoute.cap.gz | Bin 0 -> 449 bytes .../pnr/timing/compteur_postRoute.fanout.gz | Bin 0 -> 327 bytes .../pnr/timing/compteur_postRoute.length.gz | Bin 0 -> 243 bytes .../pnr/timing/compteur_postRoute.summary.gz | Bin 0 -> 566 bytes .../pnr/timing/compteur_postRoute.tran.gz | Bin 0 -> 499 bytes .../timing/compteur_postRoute_all.tarpt.gz | Bin 0 -> 4711 bytes .../compteur_postRoute_default.tarpt.gz | Bin 0 -> 2808 bytes .../compteur_postRoute_reg2reg.tarpt.gz | Bin 0 -> 3891 bytes .../pnr/timing/compteur_prePlace.summary.gz | Bin 0 -> 393 bytes .../pnr/timing/compteur_prePlace_all.tarpt.gz | Bin 0 -> 3931 bytes .../timing/compteur_prePlace_default.tarpt.gz | Bin 0 -> 2518 bytes .../timing/compteur_prePlace_reg2reg.tarpt.gz | Bin 0 -> 3219 bytes compteur/implementation/syn/.gitignore | 4 - .../syn/netlist/compteur.elab.v | 154 ++ .../syn/netlist/compteur.syn.sdf | 286 ++- .../implementation/syn/netlist/compteur.syn.v | 57 +- .../syn/reports/compteur.check.rpt | 615 +++++ .../syn/reports/compteur.clk.rpt | 45 + .../syn/reports/compteur.gen.area.rpt | 12 + .../syn/reports/compteur.gen.gates.rpt | 19 + .../syn/reports/compteur.gen.power.rpt | 14 + .../syn/reports/compteur.gen.timing.rpt | 47 + .../syn/reports/compteur.hier_elab.rpt | 17 + .../syn/reports/compteur.map.area.rpt | 12 + .../syn/reports/compteur.map.gates.rpt | 40 + .../syn/reports/compteur.map.power.rpt | 14 + .../syn/reports/compteur.map.timing.rpt | 43 + .../syn/reports/compteur.syn.area.rpt | 12 +- .../syn/reports/compteur.syn.gates.rpt | 43 +- .../syn/reports/compteur.syn.power.rpt | 14 +- .../syn/reports/compteur.syn.timing.rpt | 45 +- ...ming_lint.rpt => compteur.timing_lint.rpt} | 28 +- compteur/scripts/pnr.tcl | 94 +- compteur/scripts/pwr.tcl | 61 +- compteur/scripts/sim.tcl | 59 +- compteur/scripts/syn.tcl | 141 +- compteur/setup.csh | 55 +- compteur/simulation/beh/compteur.wave.do | 25 - compteur/simulation/modelsim.ini | 2127 +++++++++++++++++ compteur/simulation/pnr/compteur.wave.do | 24 - compteur/simulation/run.do | 18 + compteur/simulation/syn/compteur.wave.do | 24 - compteur/sources/compteur.vhd | 26 +- compteur/sources/compteur_tb.vhd | 93 +- 75 files changed, 5293 insertions(+), 1858 deletions(-) create mode 100644 compteur/constraints/compteur.syn.sdc create mode 100644 compteur/implementation/.gitignore create mode 100644 compteur/implementation/.powerAnalysis.pinfo create mode 100644 compteur/implementation/cds.lib delete mode 100644 compteur/implementation/pnr/.gitignore delete mode 100644 compteur/implementation/pnr/cds.lib create mode 100644 compteur/implementation/pnr/netlist/compteur.cts.sdf create mode 100644 compteur/implementation/pnr/netlist/compteur.cts.v create mode 100644 compteur/implementation/pnr/netlist/compteur.place.sdf create mode 100644 compteur/implementation/pnr/netlist/compteur.place.v delete mode 100644 compteur/implementation/pnr/netlist/compteur.pnr.phy.v delete mode 100644 compteur/implementation/pnr/netlist/compteur.pnr.sdf delete mode 100644 compteur/implementation/pnr/netlist/compteur.pnr.v create mode 100644 compteur/implementation/pnr/netlist/compteur.route.sdf create mode 100644 compteur/implementation/pnr/netlist/compteur.route.v create mode 100644 compteur/implementation/pnr/timing/compteur_postCTS.cap.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postCTS.fanout.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postCTS.length.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postCTS.summary.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postCTS.tran.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postCTS_all.tarpt.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postCTS_default.tarpt.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postCTS_reg2reg.tarpt.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postRoute.SI_Glitches.rpt.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postRoute.cap.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postRoute.fanout.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postRoute.length.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postRoute.summary.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postRoute.tran.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postRoute_all.tarpt.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postRoute_default.tarpt.gz create mode 100644 compteur/implementation/pnr/timing/compteur_postRoute_reg2reg.tarpt.gz create mode 100644 compteur/implementation/pnr/timing/compteur_prePlace.summary.gz create mode 100644 compteur/implementation/pnr/timing/compteur_prePlace_all.tarpt.gz create mode 100644 compteur/implementation/pnr/timing/compteur_prePlace_default.tarpt.gz create mode 100644 compteur/implementation/pnr/timing/compteur_prePlace_reg2reg.tarpt.gz delete mode 100644 compteur/implementation/syn/.gitignore create mode 100644 compteur/implementation/syn/netlist/compteur.elab.v create mode 100644 compteur/implementation/syn/reports/compteur.check.rpt create mode 100644 compteur/implementation/syn/reports/compteur.clk.rpt create mode 100644 compteur/implementation/syn/reports/compteur.gen.area.rpt create mode 100644 compteur/implementation/syn/reports/compteur.gen.gates.rpt create mode 100644 compteur/implementation/syn/reports/compteur.gen.power.rpt create mode 100644 compteur/implementation/syn/reports/compteur.gen.timing.rpt create mode 100644 compteur/implementation/syn/reports/compteur.hier_elab.rpt create mode 100644 compteur/implementation/syn/reports/compteur.map.area.rpt create mode 100644 compteur/implementation/syn/reports/compteur.map.gates.rpt create mode 100644 compteur/implementation/syn/reports/compteur.map.power.rpt create mode 100644 compteur/implementation/syn/reports/compteur.map.timing.rpt rename compteur/implementation/syn/reports/{compteur.syn.timing_lint.rpt => compteur.timing_lint.rpt} (56%) delete mode 100644 compteur/simulation/beh/compteur.wave.do create mode 100644 compteur/simulation/modelsim.ini delete mode 100644 compteur/simulation/pnr/compteur.wave.do create mode 100644 compteur/simulation/run.do delete mode 100644 compteur/simulation/syn/compteur.wave.do diff --git a/compteur/constraints/compteur.syn.sdc b/compteur/constraints/compteur.syn.sdc new file mode 100644 index 0000000..e285f8a --- /dev/null +++ b/compteur/constraints/compteur.syn.sdc @@ -0,0 +1,35 @@ +# #################################################################### + +# Created by Genus(TM) Synthesis Solution 18.10-p003_1 on Wed Oct 02 14:33:08 EDT 2019 + +# #################################################################### + +set sdc_version 2.0 + +set_units -capacitance 1000.0fF +set_units -time 1000.0ps + +# Set the current design +current_design compteur + +create_clock -name "clk" -period 1.25 -waveform {0.0 0.625} [get_ports i_clk] +set_load -pin_load -max 0.5 [get_ports {o_cnt[3]}] +set_load -pin_load -max 0.5 [get_ports {o_cnt[2]}] +set_load -pin_load -max 0.5 [get_ports {o_cnt[1]}] +set_load -pin_load -max 0.5 [get_ports {o_cnt[0]}] +set_false_path -from [get_ports i_rstn] +set_clock_gating_check -setup 0.0 +set_input_delay -clock [get_clocks clk] -add_delay 0.2 [get_ports i_clk] +set_input_delay -clock [get_clocks clk] -add_delay 0.2 [get_ports i_rstn] +set_input_delay -clock [get_clocks clk] -add_delay 0.2 [get_ports i_en] +set_output_delay -clock [get_clocks clk] -add_delay 0.2 [get_ports {o_cnt[3]}] +set_output_delay -clock [get_clocks clk] -add_delay 0.2 [get_ports {o_cnt[2]}] +set_output_delay -clock [get_clocks clk] -add_delay 0.2 [get_ports {o_cnt[1]}] +set_output_delay -clock [get_clocks clk] -add_delay 0.2 [get_ports {o_cnt[0]}] +set_driving_cell -lib_cell BUFX20 -library slow_vdd1v0 -pin "Y" [get_ports i_clk] +set_driving_cell -lib_cell BUFX20 -library slow_vdd1v0 -pin "Y" [get_ports i_rstn] +set_driving_cell -lib_cell BUFX20 -library slow_vdd1v0 -pin "Y" [get_ports i_en] +set_ideal_network [get_pins {rstn_sync_reg[1]/Q}] +set_dont_use [get_lib_cells slow_vdd1v0/HOLDX1] +set_clock_uncertainty -setup 0.1 [get_clocks clk] +set_clock_uncertainty -hold 0.03 [get_clocks clk] diff --git a/compteur/constraints/mmmc.tcl b/compteur/constraints/mmmc.tcl index 4c37e84..865702b 100644 --- a/compteur/constraints/mmmc.tcl +++ b/compteur/constraints/mmmc.tcl @@ -1,32 +1,37 @@ #----------------------------------------------------------------------------- -# Project : Tutoriels - Conception de circuits intégrés numériques +# Project Tutoriels - Conception de circuits intégrés numériques #----------------------------------------------------------------------------- -# File : mmmc.tcl -# Authors : Mickael Fiorentino <mickael.fiorentino@polymtl.ca> -# Lab : GRM - Polytechnique Montréal -# Date : <2019-07-24 Wed> +# File mmmc.tcl +# Author Mickael Fiorentino <mickael.fiorentino@polymtl.ca> +# Lab GRM - Polytechnique Montreal +# Date <2019-09-10 Tue> #----------------------------------------------------------------------------- -# Description: Fichier de configuration "Multi-Mode Multi-Corner" -# pour le placement et routage du compteur BCD +# Brief Configuration Multi-Mode Multi-Corner #----------------------------------------------------------------------------- -set fastlib $::env(FE_TIM_LIB)/fast_vdd1v0_basicCells.lib +# constraint mode +create_constraint_mode -name const -sdc_files $::env(CONST_DIR)/${DESIGN}.syn.sdc + +# rc corner +create_rc_corner -name rc -qx_tech_file $::env(BE_QRC_LIB)/gpdk045.tch + +# Libraries +set fast_lib $::env(FE_TIM_LIB)/fast_vdd1v0_basicCells.lib +set slow_lib $::env(FE_TIM_LIB)/slow_vdd1v0_basicCells.lib # operating conditions -create_op_cond -name pvt_fast -P 1.0 -V 1.0 -T 25.0 -library_file $fastlib +create_op_cond -name fast_opcond -P 1.0 -V 1.0 -T 0 -library_file $fast_lib +create_op_cond -name slow_opcond -P 1.0 -V 0.9 -T 125.0 -library_file $slow_lib # library sets -create_library_set -name libs_fast -timing $fastlib -si $::env(BE_CDB_LIB)/fast.cdb - -# rc corner -create_rc_corner -name rc_basic -qx_tech_file $::env(BE_QRC_LIB)/gpdk045.tch +create_library_set -name fast_libset -timing $fast_lib -si $::env(BE_CDB_LIB)/fast.cdb +create_library_set -name slow_libset -timing $slow_lib -si $::env(BE_CDB_LIB)/slow.cdb # delay corner -create_delay_corner -name fast_basic -library_set libs_fast -rc_corner rc_basic - -# constraint mode -create_constraint_mode -name const_mode -sdc_files $::env(CONST_DIR)/${DESIGN}.syn.sdc +create_delay_corner -name fast_corner -library_set fast_libset -rc_corner rc +create_delay_corner -name slow_corner -library_set slow_libset -rc_corner rc # analysis view -create_analysis_view -name av_fast -constraint_mode const_mode -delay_corner fast_basic -set_analysis_view -setup av_fast -hold av_fast +create_analysis_view -name fast_av -constraint_mode const -delay_corner fast_corner +create_analysis_view -name slow_av -constraint_mode const -delay_corner slow_corner +set_analysis_view -setup slow_av -hold fast_av diff --git a/compteur/constraints/timing.sdc b/compteur/constraints/timing.sdc index b3d3f92..9acdcb8 100644 --- a/compteur/constraints/timing.sdc +++ b/compteur/constraints/timing.sdc @@ -1,12 +1,12 @@ #----------------------------------------------------------------------------- -# Project : Tutoriels - Conception de circuits intégrés numériques +# Project Tutoriels - Conception de circuits intégrés numériques #----------------------------------------------------------------------------- -# File : timing.sdc -# Authors : Mickael Fiorentino <mickael.fiorentino@polymtl.ca> -# Lab : GRM - Polytechnique Montréal -# Date : <2019-07-24 Wed> +# File timing.sdc +# Authors Mickael Fiorentino <mickael.fiorentino@polymtl.ca> +# Lab GRM - Polytechnique Montréal +# Date <2019-10-02 Wed> #----------------------------------------------------------------------------- -# Description: Fichier de contraintes +# Brief Contraintes de timing #----------------------------------------------------------------------------- # Unités par défaut @@ -14,20 +14,24 @@ set_time_unit -picoseconds set_load_unit -femtofarads # Point de fonctionnement -set_db / .operating_conditions PVT_1P1V_0C +set_operating_conditions -max PVT_1P1V_0C -min PVT_0P9V_125C; # 1.1V, OC ; 0.9V, 125C -# Horloge principale: 1GHz +# Horloge principale set clk "clk" -create_clock -period 1000 -name $clk [get_ports i_clk] +create_clock -period 1250 -name $clk [get_ports i_clk] -# Incertitudes sur l'horloge: setup = 100ps, hold = 30ps +# Incertitudes sur l'horloge: setup = 100ps, hold = 30ps set_db [get_clocks $clk] .clock_setup_uncertainty 100 set_db [get_clocks $clk] .clock_hold_uncertainty 30 +# Reset +set_false_path -from [get_ports i_rstn] +set_ideal_network [get_nets rstn_sync\[1\]] + # Entrées -set_input_delay 300 -clock [get_clocks $clk] [all_inputs] +set_input_delay 200 -clock [get_clocks $clk] [all_inputs] set_db [all_inputs] .external_driver [vfind [vfind / -libcell BUFX20] -libpin Y] # Sorties -set_output_delay 300 -clock [get_clocks $clk] [all_outputs] -set_db [all_outputs] .external_pin_cap 1000 +set_output_delay 200 -clock [get_clocks $clk] [all_outputs] +set_db [all_outputs] .external_pin_cap 500 diff --git a/compteur/implementation/.gitignore b/compteur/implementation/.gitignore new file mode 100644 index 0000000..b419351 --- /dev/null +++ b/compteur/implementation/.gitignore @@ -0,0 +1,16 @@ +*.cmd +*.log +.lec* +liboa/ +timingReports/ +.cadence/ +fv/ +pnr/lec/ +pnr/reports/cts/ +*.old +preferred_layer_short_segment.rpt +.rs* +rc_model.bin +opt/ +power/ +voltus_* diff --git a/compteur/implementation/.powerAnalysis.pinfo b/compteur/implementation/.powerAnalysis.pinfo new file mode 100644 index 0000000..9c69656 --- /dev/null +++ b/compteur/implementation/.powerAnalysis.pinfo @@ -0,0 +1,8 @@ + +Hostname pcys41 + +Wall clock 7.436569 + +CPU time 6.426093 + +Peak memory (process): 535609344 diff --git a/compteur/implementation/cds.lib b/compteur/implementation/cds.lib new file mode 100644 index 0000000..b489764 --- /dev/null +++ b/compteur/implementation/cds.lib @@ -0,0 +1,15 @@ +#----------------------------------------------------------------------------- +# Project Tutoriels - Conception de circuits intégrés numériques +#----------------------------------------------------------------------------- +# File cds.lib +# Authors Mickael Fiorentino <mickael.fiorentino@polymtl.ca> +# Lab GRM - Polytechnique Montréal +# Date <2019-10-02 Wed> +#----------------------------------------------------------------------------- +# Brief Configuration des librairies pour les outils Cadence +#----------------------------------------------------------------------------- +DEFINE gpdk045 ${KIT_GPDK}/gpdk045 +DEFINE gsclib045_tech ${KIT_SCLIB}/gsclib045_tech/oa22/gsclib045_tech +DEFINE gsclib045 ${KIT_SCLIB}/gsclib045/oa22/gsclib045 +DEFINE giolib045 ${KIT_IOLIB}/giolib045/oa22/giolib045 +DEFINE liboa liboa diff --git a/compteur/implementation/pnr/.gitignore b/compteur/implementation/pnr/.gitignore deleted file mode 100644 index cfc9377..0000000 --- a/compteur/implementation/pnr/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -*~ -*.log -*.cmd -*.old -*.setpower -.powerAnalysis.pinfo -preferred_layer_short_segment.rpt -.cadence/ -liboa/ -reports/cts/ -reports/power/ diff --git a/compteur/implementation/pnr/cds.lib b/compteur/implementation/pnr/cds.lib deleted file mode 100644 index 7dc594c..0000000 --- a/compteur/implementation/pnr/cds.lib +++ /dev/null @@ -1,15 +0,0 @@ -#----------------------------------------------------------------------------- -# Project : Tutoriels - Conception de circuits intégrés numériques -#----------------------------------------------------------------------------- -# File : cds.lib -# Authors : Mickael Fiorentino <mickael.fiorentino@polymtl.ca> -# Lab : GRM - Polytechnique Montréal -# Date : <2019-07-24 Wed> -#----------------------------------------------------------------------------- -# Description: Configuration des librairies pour les outils Cadence -#----------------------------------------------------------------------------- -DEFINE gpdk045 ${KIT_GPDK}/gpdk045 -DEFINE gsclib045_tech ${KIT_SCLIB}/gsclib045_tech/oa22/gsclib045_tech -DEFINE gsclib045 ${KIT_SCLIB}/gsclib045/oa22/gsclib045 -DEFINE giolib045 ${KIT_IOLIB}/giolib045/oa22/giolib045 -DEFINE liboa liboa diff --git a/compteur/implementation/pnr/netlist/compteur.cts.sdf b/compteur/implementation/pnr/netlist/compteur.cts.sdf new file mode 100644 index 0000000..0167047 --- /dev/null +++ b/compteur/implementation/pnr/netlist/compteur.cts.sdf @@ -0,0 +1,375 @@ +(DELAYFILE + (SDFVERSION "2.1") + (DESIGN "compteur") + (DATE "Wed Oct 2 14:38:45 2019") + (VENDOR "Cadence Design Systems, Inc.") + (PROGRAM "Innovus") + (VERSION "v18.10-p002_1 ((64bit) 05/29/2018 19:19 (Linux 2.6.18-194.el5))") + (DIVIDER /) + (VOLTAGE 0.900000::0.900000) + (PROCESS "1.000000::1.000000") + (TEMPERATURE 125.000000::125.000000) + (TIMESCALE 1.0 ns) + + (CELL + (CELLTYPE "compteur") + (INSTANCE) + (DELAY + (ABSOLUTE + (INTERCONNECT cnt_reg\[0\]/Q g345__9682/A1N (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[0\]/Q g347__1309/B (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[0\]/Q FE_OFC26_FE_OFN8_o_cnt_0/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC7_o_cnt_1/Y g342__3772/A0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC22_FE_OFN5_o_cnt_1/Y FE_OFC7_o_cnt_1/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[1\]/Q g339__4296/B0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[1\]/Q g344__4547/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[1\]/Q cnt_reg\[1\]/D (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[1\]/Q g343__1474/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[1\]/Q FE_OFC22_FE_OFN5_o_cnt_1/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[1\]/Q FE_OFC23_FE_OFN5_o_cnt_1/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC20_FE_OFN3_o_cnt_2/Y FE_OFC21_FE_OFN3_o_cnt_2/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC20_FE_OFN3_o_cnt_2/Y g337__8780/A1 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC20_FE_OFN3_o_cnt_2/Y g346__2683/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC20_FE_OFN3_o_cnt_2/Y g342__3772/A1 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[2\]/Q cnt_reg\[2\]/SE (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[2\]/Q FE_OFC20_FE_OFN3_o_cnt_2/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC1_o_cnt_3/Y g339__4296/A0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC24_FE_OFN0_o_cnt_3/Y FE_OFC1_o_cnt_3/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[3\]/Q g337__8780/A0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[3\]/Q g346__2683/B (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[3\]/Q FE_OFC24_FE_OFN0_o_cnt_3/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[3\]/Q FE_OFC25_FE_OFN0_o_cnt_3/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[3\]/RN (0.000::0.000) (0.000::0.000)) + (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[2\]/RN (0.000::0.000) (0.000::0.000)) + (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[1\]/RN (0.000::0.000) (0.000::0.000)) + (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[0\]/RN (0.000::0.000) (0.000::0.000)) + (INTERCONNECT rstn_sync_reg\[0\]/Q rstn_sync_reg\[1\]/D (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g347__1309/Y cnt_reg\[1\]/SE (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g347__1309/Y g342__3772/B0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g347__1309/Y g343__1474/B (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g347__1309/Y g345__9682/B0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g346__2683/Y g339__4296/B1 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g346__2683/Y g344__4547/B (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g345__9682/Y cnt_reg\[0\]/D (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g344__4547/Y cnt_reg\[1\]/SI (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g342__3772/Y g339__4296/A1 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC27_n_7/Y cnt_reg\[2\]/D (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g343__1474/Y g337__8780/A2 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g343__1474/Y cnt_reg\[2\]/SI (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g343__1474/Y FE_OFC27_n_7/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g339__4296/Y g337__8780/B0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g337__8780/Y cnt_reg\[3\]/D (0.000::0.000) (0.000::0.000)) + ) + ) + ) + + (CELL + (CELLTYPE "INVX1") + (INSTANCE FE_OFC27_n_7) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.118::0.118) (0.072::0.072)) + ) + ) + ) + + (CELL + (CELLTYPE "CLKBUFX20") + (INSTANCE FE_OFC26_FE_OFN8_o_cnt_0) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.399::0.399) (0.473::0.473)) + ) + ) + ) + + (CELL + (CELLTYPE "CLKBUFX20") + (INSTANCE FE_OFC25_FE_OFN0_o_cnt_3) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.406::0.406) (0.480::0.480)) + ) + ) + ) + + (CELL + (CELLTYPE "INVX1") + (INSTANCE FE_OFC24_FE_OFN0_o_cnt_3) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.070::0.070) (0.072::0.072)) + ) + ) + ) + + (CELL + (CELLTYPE "CLKBUFX20") + (INSTANCE FE_OFC23_FE_OFN5_o_cnt_1) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.423::0.423) (0.497::0.497)) + ) + ) + ) + + (CELL + (CELLTYPE "INVX1") + (INSTANCE FE_OFC22_FE_OFN5_o_cnt_1) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.090::0.090) (0.091::0.091)) + ) + ) + ) + + (CELL + (CELLTYPE "CLKINVX20") + (INSTANCE FE_OFC21_FE_OFN3_o_cnt_2) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.374::0.374) (0.454::0.454)) + ) + ) + ) + + (CELL + (CELLTYPE "INVX2") + (INSTANCE FE_OFC20_FE_OFN3_o_cnt_2) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.094::0.094) (0.100::0.100)) + ) + ) + ) + + (CELL + (CELLTYPE "INVX1") + (INSTANCE FE_OFC7_o_cnt_1) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.041::0.041) (0.044::0.044)) + ) + ) + ) + + (CELL + (CELLTYPE "INVX1") + (INSTANCE FE_OFC1_o_cnt_3) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.035::0.035) (0.037::0.037)) + ) + ) + ) + + (CELL + (CELLTYPE "DFFRHQX1") + (INSTANCE rstn_sync_reg\[1\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (0.072::0.072)) + (IOPATH CK Q (0.243::0.243) (0.213::0.213)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (::0.135)) + (SETUPHOLD (posedge D) (posedge CK) (::0.114) (::-0.067)) + (SETUPHOLD (negedge D) (posedge CK) (::0.047) (::0.025)) + (WIDTH (posedge CK) (::0.152)) + (WIDTH (negedge CK) (::0.165)) + ) + ) + + (CELL + (CELLTYPE "DFFRHQX1") + (INSTANCE rstn_sync_reg\[0\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (0.080::0.080)) + (IOPATH CK Q (0.250::0.250) (0.222::0.222)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (::0.135)) + (SETUPHOLD (posedge D) (posedge CK) (::0.100) (::-0.054)) + (SETUPHOLD (negedge D) (posedge CK) (::0.034) (::0.036)) + (WIDTH (posedge CK) (::0.152)) + (WIDTH (negedge CK) (::0.165)) + ) + ) + + (CELL + (CELLTYPE "DFFRHQX1") + (INSTANCE cnt_reg\[3\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (0.109::0.109)) + (IOPATH CK Q (0.285::0.285) (0.260::0.260)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (::0.081)) + (SETUPHOLD (posedge D) (posedge CK) (::0.154) (::-0.106)) + (SETUPHOLD (negedge D) (posedge CK) (::0.076) (::-0.000)) + (WIDTH (posedge CK) (::0.152)) + (WIDTH (negedge CK) (::0.165)) + ) + ) + + (CELL + (CELLTYPE "SDFFRHQX1") + (INSTANCE cnt_reg\[2\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (0.087::0.087)) + (IOPATH CK Q (0.265::0.265) (0.238::0.238)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (::0.081)) + (SETUPHOLD (posedge SI) (posedge CK) (::0.229) (::-0.168)) + (SETUPHOLD (negedge SI) (posedge CK) (::0.200) (::-0.105)) + (SETUPHOLD (posedge SE) (posedge CK) (::0.186) (::-0.066)) + (SETUPHOLD (negedge SE) (posedge CK) (::0.218) (::-0.026)) + (SETUPHOLD (posedge D) (posedge CK) (::0.210) (::-0.148)) + (SETUPHOLD (negedge D) (posedge CK) (::0.129) (::-0.039)) + (WIDTH (posedge CK) (::0.152)) + (WIDTH (negedge CK) (::0.161)) + ) + ) + + (CELL + (CELLTYPE "OAI31X1") + (INSTANCE g337__8780) + (DELAY + (ABSOLUTE + (IOPATH A0 Y (0.156::0.156) (0.144::0.144)) + (IOPATH A1 Y (0.162::0.162) (0.143::0.143)) + (IOPATH A2 Y (0.167::0.167) (0.112::0.112)) + (IOPATH B0 Y (0.080::0.080) (0.124::0.124)) + ) + ) + ) + + (CELL + (CELLTYPE "SDFFRHQX1") + (INSTANCE cnt_reg\[1\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (0.129::0.129)) + (IOPATH CK Q (0.303::0.303) (0.279::0.279)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (::0.081)) + (SETUPHOLD (posedge SI) (posedge CK) (::0.211) (::-0.150)) + (SETUPHOLD (negedge SI) (posedge CK) (::0.140) (::-0.048)) + (SETUPHOLD (posedge SE) (posedge CK) (::0.195) (::-0.074)) + (SETUPHOLD (negedge SE) (posedge CK) (::0.226) (::-0.033)) + (SETUPHOLD (posedge D) (posedge CK) (::0.248) (::-0.185)) + (SETUPHOLD (negedge D) (posedge CK) (::0.174) (::-0.081)) + (WIDTH (posedge CK) (::0.152)) + (WIDTH (negedge CK) (::0.161)) + ) + ) + + (CELL + (CELLTYPE "AOI22X1") + (INSTANCE g339__4296) + (DELAY + (ABSOLUTE + (IOPATH A0 Y (0.090::0.090) (0.105::0.105)) + (IOPATH A1 Y (0.112::0.112) (0.126::0.126)) + (IOPATH B0 Y (0.127::0.127) (0.125::0.125)) + (IOPATH B1 Y (0.068::0.068) (0.069::0.069)) + ) + ) + ) + + (CELL + (CELLTYPE "DFFRHQX1") + (INSTANCE cnt_reg\[0\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (0.102::0.102)) + (IOPATH CK Q (0.279::0.279) (0.252::0.252)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (::0.081)) + (SETUPHOLD (posedge D) (posedge CK) (::0.128) (::-0.081)) + (SETUPHOLD (negedge D) (posedge CK) (::0.055) (::0.018)) + (WIDTH (posedge CK) (::0.152)) + (WIDTH (negedge CK) (::0.165)) + ) + ) + + (CELL + (CELLTYPE "OAI21X1") + (INSTANCE g342__3772) + (DELAY + (ABSOLUTE + (IOPATH A0 Y (0.075::0.075) (0.090::0.090)) + (IOPATH A1 Y (0.118::0.118) (0.123::0.123)) + (IOPATH B0 Y (0.062::0.062) (0.103::0.103)) + ) + ) + ) + + (CELL + (CELLTYPE "NAND2XL") + (INSTANCE g343__1474) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.128::0.128) (0.194::0.194)) + (IOPATH B Y (0.090::0.090) (0.154::0.154)) + ) + ) + ) + + (CELL + (CELLTYPE "NOR2X1") + (INSTANCE g344__4547) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.113::0.113) (0.101::0.101)) + (IOPATH B Y (0.056::0.056) (0.043::0.043)) + ) + ) + ) + + (CELL + (CELLTYPE "AOI2BB1X1") + (INSTANCE g345__9682) + (DELAY + (ABSOLUTE + (IOPATH A0N Y (0.097::0.097) (0.117::0.117)) + (IOPATH A1N Y (0.112::0.112) (0.131::0.131)) + (IOPATH B0 Y (0.087::0.087) (0.071::0.071)) + ) + ) + ) + + (CELL + (CELLTYPE "AND2X1") + (INSTANCE g346__2683) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.171::0.171) (0.120::0.120)) + (IOPATH B Y (0.171::0.171) (0.112::0.112)) + ) + ) + ) + + (CELL + (CELLTYPE "AND2X1") + (INSTANCE g347__1309) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.148::0.148) (0.094::0.094)) + (IOPATH B Y (0.183::0.183) (0.126::0.126)) + ) + ) + ) +) diff --git a/compteur/implementation/pnr/netlist/compteur.cts.v b/compteur/implementation/pnr/netlist/compteur.cts.v new file mode 100644 index 0000000..ad4d606 --- /dev/null +++ b/compteur/implementation/pnr/netlist/compteur.cts.v @@ -0,0 +1,123 @@ +/* +############################################################### +# Generated by: Cadence Innovus 18.10-p002_1 +# OS: Linux x86_64(Host ID pcys41) +# Generated on: Wed Oct 2 14:38:44 2019 +# Design: compteur +# Command: saveNetlist /export/tmp/fiorentino/Projects/tutoriel_numerique/compteur/implementation/pnr/netlist/compteur.cts.v +############################################################### +*/ +// Generated by Cadence Genus(TM) Synthesis Solution 18.10-p003_1 +// Generated on: Oct 2 2019 14:33:08 EDT (Oct 2 2019 18:33:08 UTC) +// Verification Directory fv/compteur +module compteur ( + i_clk, + i_rstn, + i_en, + o_cnt); + input i_clk; + input i_rstn; + input i_en; + output [3:0] o_cnt; + + // Internal wires + wire FE_OFN8_o_cnt_0; + wire FE_OFN7_o_cnt_1; + wire FE_OFN6_o_cnt_1; + wire FE_OFN5_o_cnt_1; + wire FE_OFN4_o_cnt_2; + wire FE_OFN3_o_cnt_2; + wire FE_OFN2_o_cnt_3; + wire FE_OFN1_o_cnt_3; + wire FE_OFN0_o_cnt_3; + wire [1:0] rstn_sync; + wire n_1; + wire n_2; + wire n_3; + wire n_4; + wire n_5; + wire n_6; + wire n_7; + wire n_8; + wire n_9; + + INVX1 FE_OFC27_n_7 (.Y(n_6), + .A(n_7)); + CLKBUFX20 FE_OFC26_FE_OFN8_o_cnt_0 (.Y(o_cnt[0]), + .A(FE_OFN8_o_cnt_0)); + CLKBUFX20 FE_OFC25_FE_OFN0_o_cnt_3 (.Y(o_cnt[3]), + .A(FE_OFN0_o_cnt_3)); + INVX1 FE_OFC24_FE_OFN0_o_cnt_3 (.Y(FE_OFN1_o_cnt_3), + .A(FE_OFN0_o_cnt_3)); + CLKBUFX20 FE_OFC23_FE_OFN5_o_cnt_1 (.Y(o_cnt[1]), + .A(FE_OFN5_o_cnt_1)); + INVX1 FE_OFC22_FE_OFN5_o_cnt_1 (.Y(FE_OFN6_o_cnt_1), + .A(FE_OFN5_o_cnt_1)); + CLKINVX20 FE_OFC21_FE_OFN3_o_cnt_2 (.Y(o_cnt[2]), + .A(FE_OFN4_o_cnt_2)); + INVX2 FE_OFC20_FE_OFN3_o_cnt_2 (.Y(FE_OFN4_o_cnt_2), + .A(FE_OFN3_o_cnt_2)); + INVX1 FE_OFC7_o_cnt_1 (.Y(FE_OFN7_o_cnt_1), + .A(FE_OFN6_o_cnt_1)); + INVX1 FE_OFC1_o_cnt_3 (.Y(FE_OFN2_o_cnt_3), + .A(FE_OFN1_o_cnt_3)); + DFFRHQX1 \rstn_sync_reg[1] (.Q(rstn_sync[1]), + .D(rstn_sync[0]), + .RN(i_rstn), + .CK(i_clk)); + DFFRHQX1 \rstn_sync_reg[0] (.Q(rstn_sync[0]), + .D(1'b1), + .RN(i_rstn), + .CK(i_clk)); + DFFRHQX1 \cnt_reg[3] (.Q(FE_OFN0_o_cnt_3), + .D(n_9), + .RN(rstn_sync[1]), + .CK(i_clk)); + SDFFRHQX1 \cnt_reg[2] (.Q(FE_OFN3_o_cnt_2), + .D(n_6), + .SE(FE_OFN3_o_cnt_2), + .SI(n_7), + .RN(rstn_sync[1]), + .CK(i_clk)); + OAI31X1 g337__8780 (.Y(n_9), + .A0(FE_OFN0_o_cnt_3), + .A1(FE_OFN4_o_cnt_2), + .A2(n_7), + .B0(n_8)); + SDFFRHQX1 \cnt_reg[1] (.Q(FE_OFN5_o_cnt_1), + .D(FE_OFN5_o_cnt_1), + .SE(n_1), + .SI(n_4), + .RN(rstn_sync[1]), + .CK(i_clk)); + AOI22X1 g339__4296 (.Y(n_8), + .A0(FE_OFN2_o_cnt_3), + .A1(n_5), + .B0(FE_OFN5_o_cnt_1), + .B1(n_2)); + DFFRHQX1 \cnt_reg[0] (.Q(FE_OFN8_o_cnt_0), + .D(n_3), + .RN(rstn_sync[1]), + .CK(i_clk)); + OAI21X1 g342__3772 (.Y(n_5), + .A0(FE_OFN7_o_cnt_1), + .A1(FE_OFN4_o_cnt_2), + .B0(n_1)); + NAND2XL g343__1474 (.Y(n_7), + .A(FE_OFN5_o_cnt_1), + .B(n_1)); + NOR2X1 g344__4547 (.Y(n_4), + .A(FE_OFN5_o_cnt_1), + .B(n_2)); + AOI2BB1X1 g345__9682 (.Y(n_3), + .A0N(i_en), + .A1N(FE_OFN8_o_cnt_0), + .B0(n_1)); + AND2X1 g346__2683 (.Y(n_2), + .A(FE_OFN4_o_cnt_2), + .B(FE_OFN0_o_cnt_3)); + AND2X1 g347__1309 (.Y(n_1), + .A(i_en), + .B(FE_OFN8_o_cnt_0)); +endmodule + diff --git a/compteur/implementation/pnr/netlist/compteur.place.sdf b/compteur/implementation/pnr/netlist/compteur.place.sdf new file mode 100644 index 0000000..e01e751 --- /dev/null +++ b/compteur/implementation/pnr/netlist/compteur.place.sdf @@ -0,0 +1,287 @@ +(DELAYFILE + (SDFVERSION "2.1") + (DESIGN "compteur") + (DATE "Wed Oct 2 14:38:24 2019") + (VENDOR "Cadence Design Systems, Inc.") + (PROGRAM "Innovus") + (VERSION "v18.10-p002_1 ((64bit) 05/29/2018 19:19 (Linux 2.6.18-194.el5))") + (DIVIDER /) + (VOLTAGE 0.900000::0.900000) + (PROCESS "1.000000::1.000000") + (TEMPERATURE 125.000000::125.000000) + (TIMESCALE 1.0 ns) + + (CELL + (CELLTYPE "compteur") + (INSTANCE) + (DELAY + (ABSOLUTE + (INTERCONNECT cnt_reg\[3\]/Q g337__8780/A0 (0.012::0.012) (0.012::0.012)) + (INTERCONNECT cnt_reg\[3\]/Q g339__4296/A0 (0.012::0.012) (0.012::0.012)) + (INTERCONNECT cnt_reg\[3\]/Q g346__2683/B (0.012::0.012) (0.012::0.012)) + (INTERCONNECT cnt_reg\[2\]/Q cnt_reg\[2\]/SE (0.008::0.008) (0.008::0.008)) + (INTERCONNECT cnt_reg\[2\]/Q g348/A (0.013::0.013) (0.013::0.013)) + (INTERCONNECT cnt_reg\[1\]/Q cnt_reg\[1\]/D (0.008::0.008) (0.008::0.008)) + (INTERCONNECT cnt_reg\[1\]/Q g339__4296/B0 (0.014::0.014) (0.014::0.014)) + (INTERCONNECT cnt_reg\[1\]/Q g342__3772/A0 (0.019::0.019) (0.019::0.019)) + (INTERCONNECT cnt_reg\[1\]/Q g343__1474/A (0.020::0.020) (0.020::0.020)) + (INTERCONNECT cnt_reg\[1\]/Q g344__4547/A (0.012::0.012) (0.012::0.012)) + (INTERCONNECT cnt_reg\[0\]/Q g345__9682/A1N (0.003::0.003) (0.003::0.003)) + (INTERCONNECT cnt_reg\[0\]/Q g347__1309/B (0.003::0.003) (0.003::0.003)) + (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[3\]/RN (0.000::0.000) (0.000::0.000)) + (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[2\]/RN (0.000::0.000) (0.000::0.000)) + (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[1\]/RN (0.000::0.000) (0.000::0.000)) + (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[0\]/RN (0.000::0.000) (0.000::0.000)) + (INTERCONNECT rstn_sync_reg\[0\]/Q rstn_sync_reg\[1\]/D (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g348/Y g337__8780/A1 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g348/Y g342__3772/A1 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g348/Y g346__2683/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g347__1309/Y cnt_reg\[1\]/SE (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g347__1309/Y g342__3772/B0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g347__1309/Y g343__1474/B (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g347__1309/Y g345__9682/B0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g346__2683/Y g339__4296/B1 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g346__2683/Y g344__4547/B (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g345__9682/Y cnt_reg\[0\]/D (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g344__4547/Y cnt_reg\[1\]/SI (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g342__3772/Y g339__4296/A1 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g341/Y cnt_reg\[2\]/D (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g343__1474/Y cnt_reg\[2\]/SI (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g343__1474/Y g337__8780/A2 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g343__1474/Y g341/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g339__4296/Y g337__8780/B0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g337__8780/Y cnt_reg\[3\]/D (0.000::0.000) (0.000::0.000)) + ) + ) + ) + + (CELL + (CELLTYPE "DFFRHQX1") + (INSTANCE rstn_sync_reg\[1\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (0.072::0.072)) + (IOPATH CK Q (0.231::0.231) (0.202::0.202)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (::0.135)) + (SETUPHOLD (posedge D) (posedge CK) (::0.119) (::-0.073)) + (SETUPHOLD (negedge D) (posedge CK) (::0.059) (::0.013)) + (WIDTH (posedge CK) (::0.091)) + (WIDTH (negedge CK) (::0.106)) + ) + ) + + (CELL + (CELLTYPE "DFFRHQX1") + (INSTANCE rstn_sync_reg\[0\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (0.076::0.076)) + (IOPATH CK Q (0.235::0.235) (0.207::0.207)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (::0.135)) + (SETUPHOLD (posedge D) (posedge CK) (::0.108) (::-0.062)) + (SETUPHOLD (negedge D) (posedge CK) (::0.049) (::0.021)) + (WIDTH (posedge CK) (::0.091)) + (WIDTH (negedge CK) (::0.106)) + ) + ) + + (CELL + (CELLTYPE "DFFRHQX1") + (INSTANCE cnt_reg\[3\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (6.799::6.799)) + (IOPATH CK Q (5.961::5.961) (6.939::6.939)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (::0.081)) + (SETUPHOLD (posedge D) (posedge CK) (::0.294) (::-0.239)) + (SETUPHOLD (negedge D) (posedge CK) (::0.342) (::-0.229)) + (WIDTH (posedge CK) (::0.091)) + (WIDTH (negedge CK) (::0.106)) + ) + ) + + (CELL + (CELLTYPE "SDFFRHQX1") + (INSTANCE cnt_reg\[2\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (6.802::6.802)) + (IOPATH CK Q (5.963::5.963) (6.943::6.943)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (::0.081)) + (SETUPHOLD (posedge SI) (posedge CK) (::1.302) (::-1.210)) + (SETUPHOLD (negedge SI) (posedge CK) (::0.513) (::-0.394)) + (SETUPHOLD (posedge SE) (posedge CK) (::5.252) (::-4.979)) + (SETUPHOLD (negedge SE) (posedge CK) (::5.530) (::-4.803)) + (SETUPHOLD (posedge D) (posedge CK) (::0.275) (::-0.211)) + (SETUPHOLD (negedge D) (posedge CK) (::0.321) (::-0.217)) + (WIDTH (posedge CK) (::0.091)) + (WIDTH (negedge CK) (::0.101)) + ) + ) + + (CELL + (CELLTYPE "OAI31X1") + (INSTANCE g337__8780) + (DELAY + (ABSOLUTE + (IOPATH A0 Y (6.056::6.056) (6.026::6.026)) + (IOPATH A1 Y (0.891::0.891) (1.156::1.156)) + (IOPATH A2 Y (0.488::0.488) (1.291::1.291)) + (IOPATH B0 Y (0.459::0.459) (0.808::0.808)) + ) + ) + ) + + (CELL + (CELLTYPE "SDFFRHQX1") + (INSTANCE cnt_reg\[1\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (6.810::6.810)) + (IOPATH CK Q (5.968::5.968) (6.950::6.950)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (::0.081)) + (SETUPHOLD (posedge SI) (posedge CK) (::0.611) (::-0.538)) + (SETUPHOLD (negedge SI) (posedge CK) (::0.998) (::-0.844)) + (SETUPHOLD (posedge SE) (posedge CK) (::0.232) (::-0.114)) + (SETUPHOLD (negedge SE) (posedge CK) (::0.264) (::-0.072)) + (SETUPHOLD (posedge D) (posedge CK) (::5.521) (::-5.314)) + (SETUPHOLD (negedge D) (posedge CK) (::5.984) (::-5.503)) + (WIDTH (posedge CK) (::0.091)) + (WIDTH (negedge CK) (::0.101)) + ) + ) + + (CELL + (CELLTYPE "AOI22X1") + (INSTANCE g339__4296) + (DELAY + (ABSOLUTE + (IOPATH A0 Y (6.667::6.667) (5.967::5.967)) + (IOPATH A1 Y (0.449::0.449) (0.527::0.527)) + (IOPATH B0 Y (6.858::6.858) (5.943::5.943)) + (IOPATH B1 Y (0.083::0.083) (0.089::0.089)) + ) + ) + ) + + (CELL + (CELLTYPE "DFFRHQX1") + (INSTANCE cnt_reg\[0\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (6.805::6.805)) + (IOPATH CK Q (5.967::5.967) (6.945::6.945)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (::0.081)) + (SETUPHOLD (posedge D) (posedge CK) (::0.138) (::-0.090)) + (SETUPHOLD (negedge D) (posedge CK) (::0.086) (::-0.011)) + (WIDTH (posedge CK) (::0.091)) + (WIDTH (negedge CK) (::0.106)) + ) + ) + + (CELL + (CELLTYPE "INVX1") + (INSTANCE g341) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.480::0.480) (1.296::1.296)) + ) + ) + ) + + (CELL + (CELLTYPE "OAI21X1") + (INSTANCE g342__3772) + (DELAY + (ABSOLUTE + (IOPATH A0 Y (6.466::6.466) (5.966::5.966)) + (IOPATH A1 Y (0.927::0.927) (1.126::1.126)) + (IOPATH B0 Y (0.100::0.100) (0.136::0.136)) + ) + ) + ) + + (CELL + (CELLTYPE "NAND2X1") + (INSTANCE g343__1474) + (DELAY + (ABSOLUTE + (IOPATH A Y (7.171::7.171) (5.938::5.938)) + (IOPATH B Y (0.113::0.113) (0.151::0.151)) + ) + ) + ) + + (CELL + (CELLTYPE "NOR2X1") + (INSTANCE g344__4547) + (DELAY + (ABSOLUTE + (IOPATH A Y (6.430::6.430) (6.288::6.288)) + (IOPATH B Y (0.070::0.070) (0.063::0.063)) + ) + ) + ) + + (CELL + (CELLTYPE "AOI2BB1X1") + (INSTANCE g345__9682) + (DELAY + (ABSOLUTE + (IOPATH A0N Y (0.095::0.095) (0.116::0.116)) + (IOPATH A1N Y (5.031::5.031) (5.421::5.421)) + (IOPATH B0 Y (0.118::0.118) (0.104::0.104)) + ) + ) + ) + + (CELL + (CELLTYPE "AND2X1") + (INSTANCE g346__2683) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.998::0.998) (0.797::0.797)) + (IOPATH B Y (5.288::5.288) (5.821::5.821)) + ) + ) + ) + + (CELL + (CELLTYPE "CLKAND2X3") + (INSTANCE g347__1309) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.105::0.105) (0.097::0.097)) + (IOPATH B Y (4.588::4.588) (6.051::6.051)) + ) + ) + ) + + (CELL + (CELLTYPE "INVX3") + (INSTANCE g348) + (DELAY + (ABSOLUTE + (IOPATH A Y (6.000::6.000) (5.210::5.210)) + ) + ) + ) +) diff --git a/compteur/implementation/pnr/netlist/compteur.place.v b/compteur/implementation/pnr/netlist/compteur.place.v new file mode 100644 index 0000000..a098964 --- /dev/null +++ b/compteur/implementation/pnr/netlist/compteur.place.v @@ -0,0 +1,99 @@ +/* +############################################################### +# Generated by: Cadence Innovus 18.10-p002_1 +# OS: Linux x86_64(Host ID pcys41) +# Generated on: Wed Oct 2 14:38:24 2019 +# Design: compteur +# Command: saveNetlist /export/tmp/fiorentino/Projects/tutoriel_numerique/compteur/implementation/pnr/netlist/compteur.place.v +############################################################### +*/ +// Generated by Cadence Genus(TM) Synthesis Solution 18.10-p003_1 +// Generated on: Oct 2 2019 14:33:08 EDT (Oct 2 2019 18:33:08 UTC) +// Verification Directory fv/compteur +module compteur ( + i_clk, + i_rstn, + i_en, + o_cnt); + input i_clk; + input i_rstn; + input i_en; + output [3:0] o_cnt; + + // Internal wires + wire [1:0] rstn_sync; + wire n_0; + wire n_1; + wire n_2; + wire n_3; + wire n_4; + wire n_5; + wire n_6; + wire n_7; + wire n_8; + wire n_9; + + DFFRHQX1 \rstn_sync_reg[1] (.Q(rstn_sync[1]), + .D(rstn_sync[0]), + .RN(i_rstn), + .CK(i_clk)); + DFFRHQX1 \rstn_sync_reg[0] (.Q(rstn_sync[0]), + .D(1'b1), + .RN(i_rstn), + .CK(i_clk)); + DFFRHQX1 \cnt_reg[3] (.Q(o_cnt[3]), + .D(n_9), + .RN(rstn_sync[1]), + .CK(i_clk)); + SDFFRHQX1 \cnt_reg[2] (.Q(o_cnt[2]), + .D(n_6), + .SE(o_cnt[2]), + .SI(n_7), + .RN(rstn_sync[1]), + .CK(i_clk)); + OAI31X1 g337__8780 (.Y(n_9), + .A0(o_cnt[3]), + .A1(n_0), + .A2(n_7), + .B0(n_8)); + SDFFRHQX1 \cnt_reg[1] (.Q(o_cnt[1]), + .D(o_cnt[1]), + .SE(n_1), + .SI(n_4), + .RN(rstn_sync[1]), + .CK(i_clk)); + AOI22X1 g339__4296 (.Y(n_8), + .A0(o_cnt[3]), + .A1(n_5), + .B0(o_cnt[1]), + .B1(n_2)); + DFFRHQX1 \cnt_reg[0] (.Q(o_cnt[0]), + .D(n_3), + .RN(rstn_sync[1]), + .CK(i_clk)); + INVX1 g341 (.Y(n_6), + .A(n_7)); + OAI21X1 g342__3772 (.Y(n_5), + .A0(o_cnt[1]), + .A1(n_0), + .B0(n_1)); + NAND2X1 g343__1474 (.Y(n_7), + .A(o_cnt[1]), + .B(n_1)); + NOR2X1 g344__4547 (.Y(n_4), + .A(o_cnt[1]), + .B(n_2)); + AOI2BB1X1 g345__9682 (.Y(n_3), + .A0N(i_en), + .A1N(o_cnt[0]), + .B0(n_1)); + AND2X1 g346__2683 (.Y(n_2), + .A(n_0), + .B(o_cnt[3])); + CLKAND2X3 g347__1309 (.Y(n_1), + .A(i_en), + .B(o_cnt[0])); + INVX3 g348 (.Y(n_0), + .A(o_cnt[2])); +endmodule + diff --git a/compteur/implementation/pnr/netlist/compteur.pnr.phy.v b/compteur/implementation/pnr/netlist/compteur.pnr.phy.v deleted file mode 100644 index ac75331..0000000 --- a/compteur/implementation/pnr/netlist/compteur.pnr.phy.v +++ /dev/null @@ -1,565 +0,0 @@ -/* -############################################################### -# Generated by: Cadence Innovus 17.11-s080_1 -# OS: Linux x86_64(Host ID pcys41) -# Generated on: Tue Sep 10 10:50:11 2019 -# Design: compteur -# Command: saveNetlist -phys /export/tmp/fiorentino/Projects/grm/tutoriel_numerique/compteur/implementation/pnr/netlist/compteur.pnr.phy.v -############################################################### -*/ -module BUFX20 ( - Y, - A, - VSS, - VDD); - output Y; - input A; - inout VSS; - inout VDD; -endmodule - -module INVX1 ( - Y, - A, - VSS, - VDD); - output Y; - input A; - inout VSS; - inout VDD; -endmodule - -module CLKINVX20 ( - Y, - A, - VSS, - VDD); - output Y; - input A; - inout VSS; - inout VDD; -endmodule - -module DFFRHQX1 ( - Q, - D, - RN, - CK, - VSS, - VDD); - output Q; - input D; - input RN; - input CK; - inout VSS; - inout VDD; -endmodule - -module OAI31X1 ( - Y, - A0, - A1, - A2, - B0, - VSS, - VDD); - output Y; - input A0; - input A1; - input A2; - input B0; - inout VSS; - inout VDD; -endmodule - -module XNOR2X1 ( - Y, - A, - B, - VSS, - VDD); - output Y; - input A; - input B; - inout VSS; - inout VDD; -endmodule - -module SDFFRHQX1 ( - Q, - D, - SE, - SI, - RN, - CK, - VSS, - VDD); - output Q; - input D; - input SE; - input SI; - input RN; - input CK; - inout VSS; - inout VDD; -endmodule - -module AOI22X1 ( - Y, - A0, - A1, - B0, - B1, - VSS, - VDD); - output Y; - input A0; - input A1; - input B0; - input B1; - inout VSS; - inout VDD; -endmodule - -module NAND2X1 ( - Y, - A, - B, - VSS, - VDD); - output Y; - input A; - input B; - inout VSS; - inout VDD; -endmodule - -module OAI21X1 ( - Y, - A0, - A1, - B0, - VSS, - VDD); - output Y; - input A0; - input A1; - input B0; - inout VSS; - inout VDD; -endmodule - -module NOR2X1 ( - Y, - A, - B, - VSS, - VDD); - output Y; - input A; - input B; - inout VSS; - inout VDD; -endmodule - -module ADDHX1 ( - CO, - S, - A, - B, - VSS, - VDD); - output CO; - output S; - input A; - input B; - inout VSS; - inout VDD; -endmodule - -module AND2X1 ( - Y, - A, - B, - VSS, - VDD); - output Y; - input A; - input B; - inout VSS; - inout VDD; -endmodule - -// Generated by Cadence Genus(TM) Synthesis Solution 17.10-p007_1 -// Generated on: Sep 10 2019 10:42:42 EDT (Sep 10 2019 14:42:42 UTC) -// Verification Directory fv/compteur -module compteur ( - i_clk, - i_rstn, - i_en, - o_cnt, - VDD, - VSS); - input i_clk; - input i_rstn; - input i_en; - output [3:0] o_cnt; - inout VDD; - inout VSS; - - // Internal wires - wire FE_OFN19_o_cnt_0; - wire FE_OFN17_o_cnt_3; - wire FE_OFN16_o_cnt_0; - wire FE_OFN15_o_cnt_0; - wire FE_OFN14_o_cnt_1; - wire FE_OFN13_o_cnt_1; - wire FE_OFN12_o_cnt_2; - wire FE_OFN11_o_cnt_2; - wire FE_OFN10_o_cnt_3; - wire FE_OFN9_o_cnt_3; - wire FE_OFN8_o_cnt_0; - wire FE_OFN7_o_cnt_0; - wire FE_OFN6_o_cnt_1; - wire FE_OFN5_o_cnt_1; - wire FE_OFN4_o_cnt_2; - wire FE_OFN3_o_cnt_2; - wire FE_OFN1_o_cnt_3; - wire FE_OFN0_o_cnt_3; - wire [1:0] rstn_sync; - wire [3:0] cnt; - wire n_8; - wire n_9; - wire n_11; - wire n_12; - wire n_13; - wire n_16; - wire n_17; - wire n_18; - wire n_19; - - // Module instantiations - BUFX20 FE_OFC22_o_cnt_3 ( - .Y(o_cnt[3]), - .A(FE_OFN17_o_cnt_3), - .VSS(VSS), - .VDD(VDD)); - BUFX20 FE_OFC20_o_cnt_0 ( - .Y(o_cnt[0]), - .A(FE_OFN19_o_cnt_0), - .VSS(VSS), - .VDD(VDD)); - INVX1 FE_OFC16_o_cnt_0 ( - .Y(FE_OFN19_o_cnt_0), - .A(FE_OFN16_o_cnt_0), - .VSS(VSS), - .VDD(VDD)); - INVX1 FE_OFC15_o_cnt_0 ( - .Y(FE_OFN16_o_cnt_0), - .A(FE_OFN15_o_cnt_0), - .VSS(VSS), - .VDD(VDD)); - CLKINVX20 FE_OFC14_o_cnt_1 ( - .Y(o_cnt[1]), - .A(FE_OFN14_o_cnt_1), - .VSS(VSS), - .VDD(VDD)); - INVX1 FE_OFC13_o_cnt_1 ( - .Y(FE_OFN14_o_cnt_1), - .A(FE_OFN13_o_cnt_1), - .VSS(VSS), - .VDD(VDD)); - CLKINVX20 FE_OFC12_o_cnt_2 ( - .Y(o_cnt[2]), - .A(FE_OFN12_o_cnt_2), - .VSS(VSS), - .VDD(VDD)); - INVX1 FE_OFC11_o_cnt_2 ( - .Y(FE_OFN12_o_cnt_2), - .A(FE_OFN11_o_cnt_2), - .VSS(VSS), - .VDD(VDD)); - INVX1 FE_OFC10_o_cnt_3 ( - .Y(FE_OFN17_o_cnt_3), - .A(FE_OFN10_o_cnt_3), - .VSS(VSS), - .VDD(VDD)); - INVX1 FE_OFC9_o_cnt_3 ( - .Y(FE_OFN10_o_cnt_3), - .A(FE_OFN9_o_cnt_3), - .VSS(VSS), - .VDD(VDD)); - INVX1 FE_OFC8_o_cnt_0 ( - .Y(FE_OFN15_o_cnt_0), - .A(FE_OFN8_o_cnt_0), - .VSS(VSS), - .VDD(VDD)); - INVX1 FE_OFC7_o_cnt_0 ( - .Y(FE_OFN8_o_cnt_0), - .A(FE_OFN7_o_cnt_0), - .VSS(VSS), - .VDD(VDD)); - INVX1 FE_OFC6_o_cnt_1 ( - .Y(FE_OFN13_o_cnt_1), - .A(FE_OFN6_o_cnt_1), - .VSS(VSS), - .VDD(VDD)); - INVX1 FE_OFC5_o_cnt_1 ( - .Y(FE_OFN6_o_cnt_1), - .A(FE_OFN5_o_cnt_1), - .VSS(VSS), - .VDD(VDD)); - INVX1 FE_OFC4_o_cnt_2 ( - .Y(FE_OFN11_o_cnt_2), - .A(FE_OFN4_o_cnt_2), - .VSS(VSS), - .VDD(VDD)); - INVX1 FE_OFC3_o_cnt_2 ( - .Y(FE_OFN4_o_cnt_2), - .A(FE_OFN3_o_cnt_2), - .VSS(VSS), - .VDD(VDD)); - INVX1 FE_OFC2_o_cnt_3 ( - .Y(FE_OFN9_o_cnt_3), - .A(FE_OFN1_o_cnt_3), - .VSS(VSS), - .VDD(VDD)); - INVX1 FE_OFC0_o_cnt_3 ( - .Y(FE_OFN1_o_cnt_3), - .A(FE_OFN0_o_cnt_3), - .VSS(VSS), - .VDD(VDD)); - DFFRHQX1 \cnt_reg[3] ( - .Q(FE_OFN0_o_cnt_3), - .D(n_19), - .RN(rstn_sync[1]), - .CK(i_clk), - .VSS(VSS), - .VDD(VDD)); - DFFRHQX1 \cnt_reg[2] ( - .Q(FE_OFN3_o_cnt_2), - .D(n_18), - .RN(rstn_sync[1]), - .CK(i_clk), - .VSS(VSS), - .VDD(VDD)); - OAI31X1 g333__7837 ( - .Y(n_19), - .A0(FE_OFN0_o_cnt_3), - .A1(FE_OFN4_o_cnt_2), - .A2(n_17), - .B0(n_16), - .VSS(VSS), - .VDD(VDD)); - XNOR2X1 g336__7557 ( - .Y(n_18), - .A(n_17), - .B(FE_OFN3_o_cnt_2), - .VSS(VSS), - .VDD(VDD)); - SDFFRHQX1 \cnt_reg[1] ( - .Q(FE_OFN5_o_cnt_1), - .D(FE_OFN5_o_cnt_1), - .SE(n_13), - .SI(n_11), - .RN(rstn_sync[1]), - .CK(i_clk), - .VSS(VSS), - .VDD(VDD)); - AOI22X1 g335__7654 ( - .Y(n_16), - .A0(FE_OFN9_o_cnt_3), - .A1(n_12), - .B0(FE_OFN5_o_cnt_1), - .B1(n_9), - .VSS(VSS), - .VDD(VDD)); - NAND2X1 g339__8867 ( - .Y(n_17), - .A(FE_OFN5_o_cnt_1), - .B(n_13), - .VSS(VSS), - .VDD(VDD)); - DFFRHQX1 \cnt_reg[0] ( - .Q(FE_OFN7_o_cnt_0), - .D(n_8), - .RN(rstn_sync[1]), - .CK(i_clk), - .VSS(VSS), - .VDD(VDD)); - OAI21X1 g338__1377 ( - .Y(n_12), - .A0(FE_OFN5_o_cnt_1), - .A1(FE_OFN4_o_cnt_2), - .B0(n_13), - .VSS(VSS), - .VDD(VDD)); - NOR2X1 g342__3717 ( - .Y(n_11), - .A(FE_OFN5_o_cnt_1), - .B(n_9), - .VSS(VSS), - .VDD(VDD)); - ADDHX1 g340__4599 ( - .CO(n_13), - .S(n_8), - .A(FE_OFN7_o_cnt_0), - .B(i_en), - .VSS(VSS), - .VDD(VDD)); - AND2X1 g344__3779 ( - .Y(n_9), - .A(FE_OFN4_o_cnt_2), - .B(o_cnt[3]), - .VSS(VSS), - .VDD(VDD)); - DFFRHQX1 \rstn_sync_reg[1] ( - .Q(rstn_sync[1]), - .D(rstn_sync[0]), - .RN(i_rstn), - .CK(i_clk), - .VSS(VSS), - .VDD(VDD)); - DFFRHQX1 \rstn_sync_reg[0] ( - .Q(rstn_sync[0]), - .D(VDD), - .RN(i_rstn), - .CK(i_clk), - .VSS(VSS), - .VDD(VDD)); - - // Fillers and physical instances. - FILL1 FILLER_impl0_44 ( - .VDD(VDD), - .VSS(VSS) ); - FILL8 FILLER_impl0_43 ( - .VDD(VDD), - .VSS(VSS) ); - FILL1 FILLER_impl0_42 ( - .VDD(VDD), - .VSS(VSS) ); - FILL8 FILLER_impl0_41 ( - .VDD(VDD), - .VSS(VSS) ); - FILL1 FILLER_impl0_40 ( - .VDD(VDD), - .VSS(VSS) ); - FILL2 FILLER_impl0_39 ( - .VDD(VDD), - .VSS(VSS) ); - FILL4 FILLER_impl0_38 ( - .VDD(VDD), - .VSS(VSS) ); - FILL1 FILLER_impl0_37 ( - .VDD(VDD), - .VSS(VSS) ); - FILL2 FILLER_impl0_36 ( - .VDD(VDD), - .VSS(VSS) ); - FILL1 FILLER_impl0_35 ( - .VDD(VDD), - .VSS(VSS) ); - FILL2 FILLER_impl0_34 ( - .VDD(VDD), - .VSS(VSS) ); - FILL2 FILLER_impl0_33 ( - .VDD(VDD), - .VSS(VSS) ); - FILL4 FILLER_impl0_32 ( - .VDD(VDD), - .VSS(VSS) ); - FILL1 FILLER_impl0_31 ( - .VDD(VDD), - .VSS(VSS) ); - FILL2 FILLER_impl0_30 ( - .VDD(VDD), - .VSS(VSS) ); - FILL4 FILLER_impl0_29 ( - .VDD(VDD), - .VSS(VSS) ); - FILL1 FILLER_impl0_28 ( - .VDD(VDD), - .VSS(VSS) ); - FILL2 FILLER_impl0_27 ( - .VDD(VDD), - .VSS(VSS) ); - FILL1 FILLER_impl0_26 ( - .VDD(VDD), - .VSS(VSS) ); - FILL4 FILLER_impl0_25 ( - .VDD(VDD), - .VSS(VSS) ); - FILL8 FILLER_impl0_24 ( - .VDD(VDD), - .VSS(VSS) ); - FILL1 FILLER_impl0_23 ( - .VDD(VDD), - .VSS(VSS) ); - FILL2 FILLER_impl0_22 ( - .VDD(VDD), - .VSS(VSS) ); - FILL4 FILLER_impl0_21 ( - .VDD(VDD), - .VSS(VSS) ); - FILL8 FILLER_impl0_20 ( - .VDD(VDD), - .VSS(VSS) ); - FILL1 FILLER_impl0_19 ( - .VDD(VDD), - .VSS(VSS) ); - FILL4 FILLER_impl0_18 ( - .VDD(VDD), - .VSS(VSS) ); - FILL1 FILLER_impl0_17 ( - .VDD(VDD), - .VSS(VSS) ); - FILL2 FILLER_impl0_16 ( - .VDD(VDD), - .VSS(VSS) ); - FILL16 FILLER_impl0_15 ( - .VDD(VDD), - .VSS(VSS) ); - FILL1 FILLER_impl0_14 ( - .VDD(VDD), - .VSS(VSS) ); - FILL2 FILLER_impl0_13 ( - .VDD(VDD), - .VSS(VSS) ); - FILL1 FILLER_impl0_12 ( - .VDD(VDD), - .VSS(VSS) ); - FILL2 FILLER_impl0_11 ( - .VDD(VDD), - .VSS(VSS) ); - FILL8 FILLER_impl0_10 ( - .VDD(VDD), - .VSS(VSS) ); - FILL16 FILLER_impl0_9 ( - .VDD(VDD), - .VSS(VSS) ); - FILL2 FILLER_impl0_8 ( - .VDD(VDD), - .VSS(VSS) ); - FILL4 FILLER_impl0_7 ( - .VDD(VDD), - .VSS(VSS) ); - FILL1 FILLER_impl0_6 ( - .VDD(VDD), - .VSS(VSS) ); - FILL2 FILLER_impl0_5 ( - .VDD(VDD), - .VSS(VSS) ); - FILL1 FILLER_impl0_4 ( - .VDD(VDD), - .VSS(VSS) ); - FILL2 FILLER_impl0_3 ( - .VDD(VDD), - .VSS(VSS) ); - FILL16 FILLER_impl0_2 ( - .VDD(VDD), - .VSS(VSS) ); - FILL2 FILLER_impl0_1 ( - .VDD(VDD), - .VSS(VSS) ); -endmodule - diff --git a/compteur/implementation/pnr/netlist/compteur.pnr.sdf b/compteur/implementation/pnr/netlist/compteur.pnr.sdf deleted file mode 100644 index 6bdf8d9..0000000 --- a/compteur/implementation/pnr/netlist/compteur.pnr.sdf +++ /dev/null @@ -1,477 +0,0 @@ -(DELAYFILE - (SDFVERSION "3.0") - (DESIGN "compteur") - (DATE "Tue Sep 10 10:50:11 2019") - (VENDOR "Cadence Design Systems, Inc.") - (PROGRAM "Innovus") - (VERSION "v17.11-s080_1 ((64bit) 08/04/2017 11:13 (Linux 2.6.18-194.el5))") - (DIVIDER /) - (VOLTAGE 1.100000::1.100000) - (PROCESS "1.000000::1.000000") - (TEMPERATURE 0.000000::0.000000) - (TIMESCALE 1.0 ns) - - (CELL - (CELLTYPE "compteur") - (INSTANCE) - (DELAY - (ABSOLUTE - (INTERCONNECT FE_OFC16_o_cnt_0/Y FE_OFC20_o_cnt_0/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC10_o_cnt_3/Y FE_OFC22_o_cnt_3/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC15_o_cnt_0/Y FE_OFC16_o_cnt_0/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC8_o_cnt_0/Y FE_OFC15_o_cnt_0/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC13_o_cnt_1/Y FE_OFC14_o_cnt_1/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC6_o_cnt_1/Y FE_OFC13_o_cnt_1/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC11_o_cnt_2/Y FE_OFC12_o_cnt_2/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC4_o_cnt_2/Y FE_OFC11_o_cnt_2/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC9_o_cnt_3/Y FE_OFC10_o_cnt_3/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC2_o_cnt_3/Y FE_OFC9_o_cnt_3/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC2_o_cnt_3/Y g335__7654/A0 (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC7_o_cnt_0/Y FE_OFC8_o_cnt_0/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT cnt_reg\[0\]/Q FE_OFC7_o_cnt_0/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT cnt_reg\[0\]/Q g340__4599/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC5_o_cnt_1/Y FE_OFC6_o_cnt_1/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT cnt_reg\[1\]/Q FE_OFC5_o_cnt_1/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT cnt_reg\[1\]/Q cnt_reg\[1\]/D (0.000::0.000) (0.000::0.000)) - (INTERCONNECT cnt_reg\[1\]/Q g335__7654/B0 (0.000::0.000) (0.000::0.000)) - (INTERCONNECT cnt_reg\[1\]/Q g339__8867/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT cnt_reg\[1\]/Q g338__1377/A0 (0.000::0.000) (0.000::0.000)) - (INTERCONNECT cnt_reg\[1\]/Q g342__3717/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC3_o_cnt_2/Y FE_OFC4_o_cnt_2/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC3_o_cnt_2/Y g333__7837/A1 (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC3_o_cnt_2/Y g338__1377/A1 (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC3_o_cnt_2/Y g344__3779/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT cnt_reg\[2\]/Q FE_OFC3_o_cnt_2/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT cnt_reg\[2\]/Q g336__7557/B (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC0_o_cnt_3/Y FE_OFC2_o_cnt_3/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT cnt_reg\[3\]/Q FE_OFC0_o_cnt_3/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT cnt_reg\[3\]/Q g333__7837/A0 (0.000::0.000) (0.000::0.000)) - (INTERCONNECT i_clk cnt_reg\[3\]/CK (0.000::0.000) (0.000::0.000)) - (INTERCONNECT i_clk cnt_reg\[2\]/CK (0.000::0.000) (0.000::0.000)) - (INTERCONNECT i_clk cnt_reg\[1\]/CK (0.000::0.000) (0.000::0.000)) - (INTERCONNECT i_clk cnt_reg\[0\]/CK (0.000::0.000) (0.000::0.000)) - (INTERCONNECT i_clk rstn_sync_reg\[1\]/CK (0.000::0.000) (0.000::0.000)) - (INTERCONNECT i_clk rstn_sync_reg\[0\]/CK (0.000::0.000) (0.000::0.000)) - (INTERCONNECT i_rstn rstn_sync_reg\[1\]/RN (0.000::0.000) (0.000::0.000)) - (INTERCONNECT i_rstn rstn_sync_reg\[0\]/RN (0.000::0.000) (0.000::0.000)) - (INTERCONNECT i_en g340__4599/B (0.000::0.000) (0.000::0.000)) - (INTERCONNECT FE_OFC22_o_cnt_3/Y g344__3779/B (0.000::0.007) (0.000::0.007)) - (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[3\]/RN (0.000::0.000) (0.000::0.000)) - (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[2\]/RN (0.000::0.000) (0.000::0.000)) - (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[1\]/RN (0.000::0.000) (0.000::0.000)) - (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[0\]/RN (0.000::0.000) (0.000::0.000)) - (INTERCONNECT rstn_sync_reg\[0\]/Q rstn_sync_reg\[1\]/D (0.000::0.000) (0.000::0.000)) - (INTERCONNECT g340__4599/S cnt_reg\[0\]/D (0.000::0.000) (0.000::0.000)) - (INTERCONNECT g344__3779/Y g335__7654/B1 (0.000::0.000) (0.000::0.000)) - (INTERCONNECT g344__3779/Y g342__3717/B (0.000::0.000) (0.000::0.000)) - (INTERCONNECT g342__3717/Y cnt_reg\[1\]/SI (0.000::0.000) (0.000::0.000)) - (INTERCONNECT g338__1377/Y g335__7654/A1 (0.000::0.000) (0.000::0.000)) - (INTERCONNECT g340__4599/CO cnt_reg\[1\]/SE (0.000::0.000) (0.000::0.000)) - (INTERCONNECT g340__4599/CO g339__8867/B (0.000::0.000) (0.000::0.000)) - (INTERCONNECT g340__4599/CO g338__1377/B0 (0.000::0.000) (0.000::0.000)) - (INTERCONNECT g335__7654/Y g333__7837/B0 (0.000::0.000) (0.000::0.000)) - (INTERCONNECT g339__8867/Y g333__7837/A2 (0.000::0.000) (0.000::0.000)) - (INTERCONNECT g339__8867/Y g336__7557/A (0.000::0.000) (0.000::0.000)) - (INTERCONNECT g336__7557/Y cnt_reg\[2\]/D (0.000::0.000) (0.000::0.000)) - (INTERCONNECT g333__7837/Y cnt_reg\[3\]/D (0.000::0.000) (0.000::0.000)) - ) - ) - ) - - (CELL - (CELLTYPE "BUFX20") - (INSTANCE FE_OFC22_o_cnt_3) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.027::0.230) (0.024::0.244)) - ) - ) - ) - - (CELL - (CELLTYPE "BUFX20") - (INSTANCE FE_OFC20_o_cnt_0) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.027::0.226) (0.024::0.240)) - ) - ) - ) - - (CELL - (CELLTYPE "INVX1") - (INSTANCE FE_OFC16_o_cnt_0) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.015::0.016) (0.014::0.015)) - ) - ) - ) - - (CELL - (CELLTYPE "INVX1") - (INSTANCE FE_OFC15_o_cnt_0) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.008::0.008) (0.008::0.008)) - ) - ) - ) - - (CELL - (CELLTYPE "CLKINVX20") - (INSTANCE FE_OFC14_o_cnt_1) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.014::0.224) (0.011::0.243)) - ) - ) - ) - - (CELL - (CELLTYPE "INVX1") - (INSTANCE FE_OFC13_o_cnt_1) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.019::0.041) (0.020::0.037)) - ) - ) - ) - - (CELL - (CELLTYPE "CLKINVX20") - (INSTANCE FE_OFC12_o_cnt_2) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.014::0.226) (0.011::0.244)) - ) - ) - ) - - (CELL - (CELLTYPE "INVX1") - (INSTANCE FE_OFC11_o_cnt_2) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.019::0.041) (0.020::0.036)) - ) - ) - ) - - (CELL - (CELLTYPE "INVX1") - (INSTANCE FE_OFC10_o_cnt_3) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.015::0.016) (0.014::0.015)) - ) - ) - ) - - (CELL - (CELLTYPE "INVX1") - (INSTANCE FE_OFC9_o_cnt_3) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.010::0.010) (0.010::0.010)) - ) - ) - ) - - (CELL - (CELLTYPE "INVX1") - (INSTANCE FE_OFC8_o_cnt_0) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.009::0.009) (0.008::0.008)) - ) - ) - ) - - (CELL - (CELLTYPE "INVX1") - (INSTANCE FE_OFC7_o_cnt_0) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.010::0.010) (0.010::0.010)) - ) - ) - ) - - (CELL - (CELLTYPE "INVX1") - (INSTANCE FE_OFC6_o_cnt_1) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.009::0.009) (0.009::0.009)) - ) - ) - ) - - (CELL - (CELLTYPE "INVX1") - (INSTANCE FE_OFC5_o_cnt_1) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.014::0.014) (0.015::0.015)) - ) - ) - ) - - (CELL - (CELLTYPE "INVX1") - (INSTANCE FE_OFC4_o_cnt_2) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.011::0.011) (0.012::0.012)) - ) - ) - ) - - (CELL - (CELLTYPE "INVX1") - (INSTANCE FE_OFC3_o_cnt_2) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.015::0.016) (0.015::0.016)) - ) - ) - ) - - (CELL - (CELLTYPE "INVX1") - (INSTANCE FE_OFC2_o_cnt_3) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.011::0.011) (0.010::0.011)) - ) - ) - ) - - (CELL - (CELLTYPE "INVX1") - (INSTANCE FE_OFC0_o_cnt_3) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.009::0.009) (0.009::0.009)) - ) - ) - ) - - (CELL - (CELLTYPE "DFFRHQX1") - (INSTANCE cnt_reg\[3\]) - (DELAY - (ABSOLUTE - (IOPATH RN Q () (0.028::0.028)) - (IOPATH (posedge CK) Q (0.059::0.060) (0.055::0.055)) - ) - ) - (TIMINGCHECK - (WIDTH (negedge RN) (0.074::0.074)) - (RECREM (posedge RN) (posedge CK) (-0.013::-0.013) (0.033::0.033)) - (SETUPHOLD (posedge D) (posedge CK) (0.025::0.025) (-0.016::-0.016)) - (SETUPHOLD (negedge D) (posedge CK) (0.013::0.013) (0.001::0.001)) - (WIDTH (posedge CK) (0.034::0.034)) - (WIDTH (negedge CK) (0.039::0.039)) - ) - ) - - (CELL - (CELLTYPE "DFFRHQX1") - (INSTANCE cnt_reg\[2\]) - (DELAY - (ABSOLUTE - (IOPATH RN Q () (0.028::0.028)) - (IOPATH (posedge CK) Q (0.059::0.060) (0.055::0.055)) - ) - ) - (TIMINGCHECK - (WIDTH (negedge RN) (0.074::0.074)) - (RECREM (posedge RN) (posedge CK) (-0.013::-0.013) (0.033::0.033)) - (SETUPHOLD (posedge D) (posedge CK) (0.021::0.021) (-0.014::-0.014)) - (SETUPHOLD (negedge D) (posedge CK) (0.010::0.010) (0.002::0.002)) - (WIDTH (posedge CK) (0.034::0.034)) - (WIDTH (negedge CK) (0.039::0.039)) - ) - ) - - (CELL - (CELLTYPE "OAI31X1") - (INSTANCE g333__7837) - (DELAY - (ABSOLUTE - (IOPATH A0 Y (0.031::0.032) (0.024::0.024)) - (IOPATH A1 Y (0.031::0.032) (0.023::0.023)) - (IOPATH A2 Y (0.026::0.027) (0.017::0.019)) - (IOPATH B0 Y (0.012::0.015) (0.024::0.026)) - ) - ) - ) - - (CELL - (CELLTYPE "XNOR2X1") - (INSTANCE g336__7557) - (DELAY - (ABSOLUTE - (IOPATH (posedge A) Y (0.033::0.034) (0.044::0.045)) - (IOPATH (negedge A) Y (0.043::0.043) (0.038::0.038)) - (IOPATH (posedge B) Y (0.025::0.026) (0.031::0.031)) - (IOPATH (negedge B) Y (0.035::0.035) (0.030::0.031)) - ) - ) - ) - - (CELL - (CELLTYPE "SDFFRHQX1") - (INSTANCE cnt_reg\[1\]) - (DELAY - (ABSOLUTE - (IOPATH RN Q () (0.036::0.037)) - (IOPATH (posedge CK) Q (0.068::0.069) (0.063::0.064)) - ) - ) - (TIMINGCHECK - (WIDTH (negedge RN) (0.074::0.074)) - (SETUPHOLD (posedge SI) (posedge CK) (0.037::0.037) (-0.029::-0.029)) - (SETUPHOLD (negedge SI) (posedge CK) (0.029::0.029) (-0.014::-0.014)) - (SETUPHOLD (posedge SE) (posedge CK) (0.034::0.034) (-0.018::-0.018)) - (SETUPHOLD (negedge SE) (posedge CK) (0.041::0.041) (-0.009::-0.009)) - (RECREM (posedge RN) (posedge CK) (-0.013::-0.013) (0.033::0.033)) - (SETUPHOLD (posedge D) (posedge CK) (0.041::0.041) (-0.033::-0.033)) - (SETUPHOLD (negedge D) (posedge CK) (0.031::0.031) (-0.017::-0.017)) - (WIDTH (posedge CK) (0.034::0.034)) - (WIDTH (negedge CK) (0.034::0.034)) - ) - ) - - (CELL - (CELLTYPE "AOI22X1") - (INSTANCE g335__7654) - (DELAY - (ABSOLUTE - (IOPATH A0 Y (0.025::0.025) (0.024::0.025)) - (IOPATH A1 Y (0.024::0.026) (0.023::0.027)) - (IOPATH B0 Y (0.025::0.026) (0.021::0.023)) - (IOPATH B1 Y (0.018::0.019) (0.014::0.016)) - ) - ) - ) - - (CELL - (CELLTYPE "NAND2X1") - (INSTANCE g339__8867) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.017::0.018) (0.023::0.024)) - (IOPATH B Y (0.013::0.014) (0.019::0.020)) - ) - ) - ) - - (CELL - (CELLTYPE "DFFRHQX1") - (INSTANCE cnt_reg\[0\]) - (DELAY - (ABSOLUTE - (IOPATH RN Q () (0.029::0.029)) - (IOPATH (posedge CK) Q (0.060::0.060) (0.056::0.056)) - ) - ) - (TIMINGCHECK - (WIDTH (negedge RN) (0.074::0.074)) - (RECREM (posedge RN) (posedge CK) (-0.013::-0.013) (0.033::0.033)) - (SETUPHOLD (posedge D) (posedge CK) (0.021::0.021) (-0.014::-0.014)) - (SETUPHOLD (negedge D) (posedge CK) (0.010::0.010) (0.002::0.002)) - (WIDTH (posedge CK) (0.034::0.034)) - (WIDTH (negedge CK) (0.039::0.039)) - ) - ) - - (CELL - (CELLTYPE "OAI21X1") - (INSTANCE g338__1377) - (DELAY - (ABSOLUTE - (IOPATH A0 Y (0.025::0.025) (0.026::0.027)) - (IOPATH A1 Y (0.021::0.021) (0.020::0.020)) - (IOPATH B0 Y (0.012::0.013) (0.022::0.022)) - ) - ) - ) - - (CELL - (CELLTYPE "NOR2X1") - (INSTANCE g342__3717) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.021::0.021) (0.017::0.018)) - (IOPATH B Y (0.014::0.015) (0.010::0.011)) - ) - ) - ) - - (CELL - (CELLTYPE "ADDHX1") - (INSTANCE g340__4599) - (DELAY - (ABSOLUTE - (IOPATH (posedge A) S (0.034::0.034) (0.044::0.044)) - (IOPATH (negedge A) S (0.041::0.041) (0.036::0.036)) - (IOPATH A CO (0.034::0.035) (0.025::0.027)) - (IOPATH (posedge B) S (0.027::0.028) (0.036::0.037)) - (IOPATH (negedge B) S (0.028::0.028) (0.027::0.028)) - (IOPATH B CO (0.032::0.032) (0.023::0.024)) - ) - ) - ) - - (CELL - (CELLTYPE "AND2X1") - (INSTANCE g344__3779) - (DELAY - (ABSOLUTE - (IOPATH A Y (0.029::0.030) (0.022::0.022)) - (IOPATH B Y (0.029::0.089) (0.022::0.088)) - ) - ) - ) - - (CELL - (CELLTYPE "DFFRHQX1") - (INSTANCE rstn_sync_reg\[1\]) - (DELAY - (ABSOLUTE - (IOPATH RN Q () (0.033::0.034)) - (IOPATH (posedge CK) Q (0.069::0.069) (0.064::0.064)) - ) - ) - (TIMINGCHECK - (WIDTH (negedge RN) (0.032::0.032)) - (RECREM (posedge RN) (posedge CK) (-0.019::-0.019) (0.030::0.030)) - (SETUPHOLD (posedge D) (posedge CK) (0.021::0.021) (-0.015::-0.015)) - (SETUPHOLD (negedge D) (posedge CK) (0.010::0.010) (0.002::0.002)) - (WIDTH (posedge CK) (0.034::0.034)) - (WIDTH (negedge CK) (0.039::0.039)) - ) - ) - - (CELL - (CELLTYPE "DFFRHQX1") - (INSTANCE rstn_sync_reg\[0\]) - (DELAY - (ABSOLUTE - (IOPATH RN Q () (0.023::0.023)) - (IOPATH (posedge CK) Q (0.057::0.057) (0.053::0.053)) - ) - ) - (TIMINGCHECK - (WIDTH (negedge RN) (0.032::0.032)) - (RECREM (posedge RN) (posedge CK) (-0.019::-0.019) (0.030::0.030)) - (SETUPHOLD (posedge D) (posedge CK) (0.019::0.019) (-0.013::-0.013)) - (SETUPHOLD (negedge D) (posedge CK) (0.009::0.009) (0.002::0.002)) - (WIDTH (posedge CK) (0.034::0.034)) - (WIDTH (negedge CK) (0.039::0.039)) - ) - ) -) diff --git a/compteur/implementation/pnr/netlist/compteur.pnr.v b/compteur/implementation/pnr/netlist/compteur.pnr.v deleted file mode 100644 index 201ff52..0000000 --- a/compteur/implementation/pnr/netlist/compteur.pnr.v +++ /dev/null @@ -1,147 +0,0 @@ -/* -############################################################### -# Generated by: Cadence Innovus 17.11-s080_1 -# OS: Linux x86_64(Host ID pcys41) -# Generated on: Tue Sep 10 10:50:11 2019 -# Design: compteur -# Command: saveNetlist /export/tmp/fiorentino/Projects/grm/tutoriel_numerique/compteur/implementation/pnr/netlist/compteur.pnr.v -############################################################### -*/ -// Generated by Cadence Genus(TM) Synthesis Solution 17.10-p007_1 -// Generated on: Sep 10 2019 10:42:42 EDT (Sep 10 2019 14:42:42 UTC) -// Verification Directory fv/compteur -module compteur ( - i_clk, - i_rstn, - i_en, - o_cnt); - input i_clk; - input i_rstn; - input i_en; - output [3:0] o_cnt; - - // Internal wires - wire FE_OFN19_o_cnt_0; - wire FE_OFN17_o_cnt_3; - wire FE_OFN16_o_cnt_0; - wire FE_OFN15_o_cnt_0; - wire FE_OFN14_o_cnt_1; - wire FE_OFN13_o_cnt_1; - wire FE_OFN12_o_cnt_2; - wire FE_OFN11_o_cnt_2; - wire FE_OFN10_o_cnt_3; - wire FE_OFN9_o_cnt_3; - wire FE_OFN8_o_cnt_0; - wire FE_OFN7_o_cnt_0; - wire FE_OFN6_o_cnt_1; - wire FE_OFN5_o_cnt_1; - wire FE_OFN4_o_cnt_2; - wire FE_OFN3_o_cnt_2; - wire FE_OFN1_o_cnt_3; - wire FE_OFN0_o_cnt_3; - wire [1:0] rstn_sync; - wire [3:0] cnt; - wire n_8; - wire n_9; - wire n_11; - wire n_12; - wire n_13; - wire n_16; - wire n_17; - wire n_18; - wire n_19; - - BUFX20 FE_OFC22_o_cnt_3 (.Y(o_cnt[3]), - .A(FE_OFN17_o_cnt_3)); - BUFX20 FE_OFC20_o_cnt_0 (.Y(o_cnt[0]), - .A(FE_OFN19_o_cnt_0)); - INVX1 FE_OFC16_o_cnt_0 (.Y(FE_OFN19_o_cnt_0), - .A(FE_OFN16_o_cnt_0)); - INVX1 FE_OFC15_o_cnt_0 (.Y(FE_OFN16_o_cnt_0), - .A(FE_OFN15_o_cnt_0)); - CLKINVX20 FE_OFC14_o_cnt_1 (.Y(o_cnt[1]), - .A(FE_OFN14_o_cnt_1)); - INVX1 FE_OFC13_o_cnt_1 (.Y(FE_OFN14_o_cnt_1), - .A(FE_OFN13_o_cnt_1)); - CLKINVX20 FE_OFC12_o_cnt_2 (.Y(o_cnt[2]), - .A(FE_OFN12_o_cnt_2)); - INVX1 FE_OFC11_o_cnt_2 (.Y(FE_OFN12_o_cnt_2), - .A(FE_OFN11_o_cnt_2)); - INVX1 FE_OFC10_o_cnt_3 (.Y(FE_OFN17_o_cnt_3), - .A(FE_OFN10_o_cnt_3)); - INVX1 FE_OFC9_o_cnt_3 (.Y(FE_OFN10_o_cnt_3), - .A(FE_OFN9_o_cnt_3)); - INVX1 FE_OFC8_o_cnt_0 (.Y(FE_OFN15_o_cnt_0), - .A(FE_OFN8_o_cnt_0)); - INVX1 FE_OFC7_o_cnt_0 (.Y(FE_OFN8_o_cnt_0), - .A(FE_OFN7_o_cnt_0)); - INVX1 FE_OFC6_o_cnt_1 (.Y(FE_OFN13_o_cnt_1), - .A(FE_OFN6_o_cnt_1)); - INVX1 FE_OFC5_o_cnt_1 (.Y(FE_OFN6_o_cnt_1), - .A(FE_OFN5_o_cnt_1)); - INVX1 FE_OFC4_o_cnt_2 (.Y(FE_OFN11_o_cnt_2), - .A(FE_OFN4_o_cnt_2)); - INVX1 FE_OFC3_o_cnt_2 (.Y(FE_OFN4_o_cnt_2), - .A(FE_OFN3_o_cnt_2)); - INVX1 FE_OFC2_o_cnt_3 (.Y(FE_OFN9_o_cnt_3), - .A(FE_OFN1_o_cnt_3)); - INVX1 FE_OFC0_o_cnt_3 (.Y(FE_OFN1_o_cnt_3), - .A(FE_OFN0_o_cnt_3)); - DFFRHQX1 \cnt_reg[3] (.Q(FE_OFN0_o_cnt_3), - .D(n_19), - .RN(rstn_sync[1]), - .CK(i_clk)); - DFFRHQX1 \cnt_reg[2] (.Q(FE_OFN3_o_cnt_2), - .D(n_18), - .RN(rstn_sync[1]), - .CK(i_clk)); - OAI31X1 g333__7837 (.Y(n_19), - .A0(FE_OFN0_o_cnt_3), - .A1(FE_OFN4_o_cnt_2), - .A2(n_17), - .B0(n_16)); - XNOR2X1 g336__7557 (.Y(n_18), - .A(n_17), - .B(FE_OFN3_o_cnt_2)); - SDFFRHQX1 \cnt_reg[1] (.Q(FE_OFN5_o_cnt_1), - .D(FE_OFN5_o_cnt_1), - .SE(n_13), - .SI(n_11), - .RN(rstn_sync[1]), - .CK(i_clk)); - AOI22X1 g335__7654 (.Y(n_16), - .A0(FE_OFN9_o_cnt_3), - .A1(n_12), - .B0(FE_OFN5_o_cnt_1), - .B1(n_9)); - NAND2X1 g339__8867 (.Y(n_17), - .A(FE_OFN5_o_cnt_1), - .B(n_13)); - DFFRHQX1 \cnt_reg[0] (.Q(FE_OFN7_o_cnt_0), - .D(n_8), - .RN(rstn_sync[1]), - .CK(i_clk)); - OAI21X1 g338__1377 (.Y(n_12), - .A0(FE_OFN5_o_cnt_1), - .A1(FE_OFN4_o_cnt_2), - .B0(n_13)); - NOR2X1 g342__3717 (.Y(n_11), - .A(FE_OFN5_o_cnt_1), - .B(n_9)); - ADDHX1 g340__4599 (.CO(n_13), - .S(n_8), - .A(FE_OFN7_o_cnt_0), - .B(i_en)); - AND2X1 g344__3779 (.Y(n_9), - .A(FE_OFN4_o_cnt_2), - .B(o_cnt[3])); - DFFRHQX1 \rstn_sync_reg[1] (.Q(rstn_sync[1]), - .D(rstn_sync[0]), - .RN(i_rstn), - .CK(i_clk)); - DFFRHQX1 \rstn_sync_reg[0] (.Q(rstn_sync[0]), - .D(1'b1), - .RN(i_rstn), - .CK(i_clk)); -endmodule - diff --git a/compteur/implementation/pnr/netlist/compteur.route.sdf b/compteur/implementation/pnr/netlist/compteur.route.sdf new file mode 100644 index 0000000..520704f --- /dev/null +++ b/compteur/implementation/pnr/netlist/compteur.route.sdf @@ -0,0 +1,375 @@ +(DELAYFILE + (SDFVERSION "2.1") + (DESIGN "compteur") + (DATE "Wed Oct 2 14:39:39 2019") + (VENDOR "Cadence Design Systems, Inc.") + (PROGRAM "Innovus") + (VERSION "v18.10-p002_1 ((64bit) 05/29/2018 19:19 (Linux 2.6.18-194.el5))") + (DIVIDER /) + (VOLTAGE 0.900000::0.900000) + (PROCESS "1.000000::1.000000") + (TEMPERATURE 125.000000::125.000000) + (TIMESCALE 1.0 ns) + + (CELL + (CELLTYPE "compteur") + (INSTANCE) + (DELAY + (ABSOLUTE + (INTERCONNECT cnt_reg\[0\]/Q g345__9682/A1N (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[0\]/Q g347__1309/B (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[0\]/Q FE_OFC26_FE_OFN8_o_cnt_0/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC7_o_cnt_1/Y g342__3772/A0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC22_FE_OFN5_o_cnt_1/Y FE_OFC7_o_cnt_1/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[1\]/Q g339__4296/B0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[1\]/Q g344__4547/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[1\]/Q cnt_reg\[1\]/D (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[1\]/Q g343__1474/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[1\]/Q FE_OFC22_FE_OFN5_o_cnt_1/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[1\]/Q FE_OFC23_FE_OFN5_o_cnt_1/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC20_FE_OFN3_o_cnt_2/Y FE_OFC21_FE_OFN3_o_cnt_2/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC20_FE_OFN3_o_cnt_2/Y g337__8780/A1 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC20_FE_OFN3_o_cnt_2/Y g346__2683/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC20_FE_OFN3_o_cnt_2/Y g342__3772/A1 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[2\]/Q cnt_reg\[2\]/SE (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[2\]/Q FE_OFC20_FE_OFN3_o_cnt_2/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC1_o_cnt_3/Y g339__4296/A0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC24_FE_OFN0_o_cnt_3/Y FE_OFC1_o_cnt_3/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[3\]/Q g337__8780/A0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[3\]/Q g346__2683/B (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[3\]/Q FE_OFC24_FE_OFN0_o_cnt_3/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT cnt_reg\[3\]/Q FE_OFC25_FE_OFN0_o_cnt_3/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[3\]/RN (0.000::0.000) (0.000::0.000)) + (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[2\]/RN (0.000::0.000) (0.000::0.000)) + (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[1\]/RN (0.000::0.000) (0.000::0.000)) + (INTERCONNECT rstn_sync_reg\[1\]/Q cnt_reg\[0\]/RN (0.000::0.000) (0.000::0.000)) + (INTERCONNECT rstn_sync_reg\[0\]/Q rstn_sync_reg\[1\]/D (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g347__1309/Y cnt_reg\[1\]/SE (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g347__1309/Y g342__3772/B0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g347__1309/Y g343__1474/B (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g347__1309/Y g345__9682/B0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g346__2683/Y g339__4296/B1 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g346__2683/Y g344__4547/B (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g345__9682/Y cnt_reg\[0\]/D (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g344__4547/Y cnt_reg\[1\]/SI (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g342__3772/Y g339__4296/A1 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT FE_OFC27_n_7/Y cnt_reg\[2\]/D (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g343__1474/Y g337__8780/A2 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g343__1474/Y cnt_reg\[2\]/SI (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g343__1474/Y FE_OFC27_n_7/A (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g339__4296/Y g337__8780/B0 (0.000::0.000) (0.000::0.000)) + (INTERCONNECT g337__8780/Y cnt_reg\[3\]/D (0.000::0.000) (0.000::0.000)) + ) + ) + ) + + (CELL + (CELLTYPE "INVX1") + (INSTANCE FE_OFC27_n_7) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.127::0.127) (0.077::0.077)) + ) + ) + ) + + (CELL + (CELLTYPE "CLKBUFX20") + (INSTANCE FE_OFC26_FE_OFN8_o_cnt_0) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.408::0.408) (0.480::0.480)) + ) + ) + ) + + (CELL + (CELLTYPE "CLKBUFX20") + (INSTANCE FE_OFC25_FE_OFN0_o_cnt_3) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.415::0.415) (0.487::0.487)) + ) + ) + ) + + (CELL + (CELLTYPE "INVX1") + (INSTANCE FE_OFC24_FE_OFN0_o_cnt_3) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.071::0.071) (0.073::0.073)) + ) + ) + ) + + (CELL + (CELLTYPE "CLKBUFX20") + (INSTANCE FE_OFC23_FE_OFN5_o_cnt_1) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.424::0.424) (0.498::0.498)) + ) + ) + ) + + (CELL + (CELLTYPE "INVX1") + (INSTANCE FE_OFC22_FE_OFN5_o_cnt_1) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.092::0.092) (0.093::0.093)) + ) + ) + ) + + (CELL + (CELLTYPE "CLKINVX20") + (INSTANCE FE_OFC21_FE_OFN3_o_cnt_2) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.380::0.380) (0.459::0.459)) + ) + ) + ) + + (CELL + (CELLTYPE "INVX2") + (INSTANCE FE_OFC20_FE_OFN3_o_cnt_2) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.095::0.095) (0.102::0.102)) + ) + ) + ) + + (CELL + (CELLTYPE "INVX1") + (INSTANCE FE_OFC7_o_cnt_1) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.042::0.042) (0.044::0.044)) + ) + ) + ) + + (CELL + (CELLTYPE "INVX1") + (INSTANCE FE_OFC1_o_cnt_3) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.036::0.036) (0.038::0.038)) + ) + ) + ) + + (CELL + (CELLTYPE "DFFRHQX1") + (INSTANCE rstn_sync_reg\[1\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (0.072::0.072)) + (IOPATH CK Q (0.242::0.242) (0.213::0.213)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (0.135::0.135)) + (SETUPHOLD (posedge D) (posedge CK) (0.113::0.113) (-0.067::-0.067)) + (SETUPHOLD (negedge D) (posedge CK) (0.046::0.046) (0.026::0.026)) + (WIDTH (posedge CK) (0.152::0.152)) + (WIDTH (negedge CK) (0.165::0.165)) + ) + ) + + (CELL + (CELLTYPE "DFFRHQX1") + (INSTANCE rstn_sync_reg\[0\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (0.079::0.079)) + (IOPATH CK Q (0.249::0.249) (0.221::0.221)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (0.135::0.135)) + (SETUPHOLD (posedge D) (posedge CK) (0.100::0.100) (-0.054::-0.054)) + (SETUPHOLD (negedge D) (posedge CK) (0.034::0.034) (0.036::0.036)) + (WIDTH (posedge CK) (0.152::0.152)) + (WIDTH (negedge CK) (0.165::0.165)) + ) + ) + + (CELL + (CELLTYPE "DFFRHQX1") + (INSTANCE cnt_reg\[3\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (0.111::0.111)) + (IOPATH CK Q (0.286::0.286) (0.261::0.261)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (0.081::0.081)) + (SETUPHOLD (posedge D) (posedge CK) (0.157::0.157) (-0.073::-0.073)) + (SETUPHOLD (negedge D) (posedge CK) (0.078::0.078) (0.009::0.009)) + (WIDTH (posedge CK) (0.152::0.152)) + (WIDTH (negedge CK) (0.165::0.165)) + ) + ) + + (CELL + (CELLTYPE "SDFFRHQX1") + (INSTANCE cnt_reg\[2\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (0.088::0.088)) + (IOPATH CK Q (0.266::0.266) (0.239::0.239)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (0.081::0.081)) + (SETUPHOLD (posedge SI) (posedge CK) (0.233::0.233) (-0.164::-0.164)) + (SETUPHOLD (negedge SI) (posedge CK) (0.208::0.208) (-0.110::-0.110)) + (SETUPHOLD (posedge SE) (posedge CK) (0.187::0.187) (-0.066::-0.066)) + (SETUPHOLD (negedge SE) (posedge CK) (0.218::0.218) (-0.026::-0.026)) + (SETUPHOLD (posedge D) (posedge CK) (0.211::0.211) (-0.149::-0.149)) + (SETUPHOLD (negedge D) (posedge CK) (0.130::0.130) (-0.038::-0.038)) + (WIDTH (posedge CK) (0.152::0.152)) + (WIDTH (negedge CK) (0.161::0.161)) + ) + ) + + (CELL + (CELLTYPE "OAI31X1") + (INSTANCE g337__8780) + (DELAY + (ABSOLUTE + (IOPATH A0 Y (0.159::0.159) (0.146::0.146)) + (IOPATH A1 Y (0.165::0.165) (0.146::0.146)) + (IOPATH A2 Y (0.177::0.177) (0.117::0.117)) + (IOPATH B0 Y (0.080::0.080) (0.125::0.125)) + ) + ) + ) + + (CELL + (CELLTYPE "SDFFRHQX1") + (INSTANCE cnt_reg\[1\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (0.131::0.131)) + (IOPATH CK Q (0.305::0.305) (0.281::0.281)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (0.081::0.081)) + (SETUPHOLD (posedge SI) (posedge CK) (0.210::0.210) (-0.147::-0.147)) + (SETUPHOLD (negedge SI) (posedge CK) (0.140::0.140) (-0.038::-0.038)) + (SETUPHOLD (posedge SE) (posedge CK) (0.196::0.196) (-0.074::-0.074)) + (SETUPHOLD (negedge SE) (posedge CK) (0.227::0.227) (-0.032::-0.032)) + (SETUPHOLD (posedge D) (posedge CK) (0.249::0.249) (-0.184::-0.184)) + (SETUPHOLD (negedge D) (posedge CK) (0.176::0.176) (-0.080::-0.080)) + (WIDTH (posedge CK) (0.152::0.152)) + (WIDTH (negedge CK) (0.161::0.161)) + ) + ) + + (CELL + (CELLTYPE "AOI22X1") + (INSTANCE g339__4296) + (DELAY + (ABSOLUTE + (IOPATH A0 Y (0.090::0.090) (0.105::0.105)) + (IOPATH A1 Y (0.113::0.113) (0.127::0.127)) + (IOPATH B0 Y (0.129::0.129) (0.126::0.126)) + (IOPATH B1 Y (0.068::0.068) (0.069::0.069)) + ) + ) + ) + + (CELL + (CELLTYPE "DFFRHQX1") + (INSTANCE cnt_reg\[0\]) + (DELAY + (ABSOLUTE + (IOPATH RN Q () (0.103::0.103)) + (IOPATH CK Q (0.279::0.279) (0.253::0.253)) + ) + ) + (TIMINGCHECK + (WIDTH (negedge RN) (0.081::0.081)) + (SETUPHOLD (posedge D) (posedge CK) (0.128::0.128) (-0.079::-0.079)) + (SETUPHOLD (negedge D) (posedge CK) (0.055::0.055) (0.023::0.023)) + (WIDTH (posedge CK) (0.152::0.152)) + (WIDTH (negedge CK) (0.165::0.165)) + ) + ) + + (CELL + (CELLTYPE "OAI21X1") + (INSTANCE g342__3772) + (DELAY + (ABSOLUTE + (IOPATH A0 Y (0.076::0.076) (0.091::0.091)) + (IOPATH A1 Y (0.120::0.120) (0.125::0.125)) + (IOPATH B0 Y (0.063::0.063) (0.105::0.105)) + ) + ) + ) + + (CELL + (CELLTYPE "NAND2XL") + (INSTANCE g343__1474) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.133::0.133) (0.205::0.205)) + (IOPATH B Y (0.094::0.094) (0.164::0.164)) + ) + ) + ) + + (CELL + (CELLTYPE "NOR2X1") + (INSTANCE g344__4547) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.114::0.114) (0.102::0.102)) + (IOPATH B Y (0.055::0.055) (0.042::0.042)) + ) + ) + ) + + (CELL + (CELLTYPE "AOI2BB1X1") + (INSTANCE g345__9682) + (DELAY + (ABSOLUTE + (IOPATH A0N Y (0.096::0.096) (0.117::0.117)) + (IOPATH A1N Y (0.112::0.112) (0.131::0.131)) + (IOPATH B0 Y (0.087::0.087) (0.071::0.071)) + ) + ) + ) + + (CELL + (CELLTYPE "AND2X1") + (INSTANCE g346__2683) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.172::0.172) (0.121::0.121)) + (IOPATH B Y (0.172::0.172) (0.113::0.113)) + ) + ) + ) + + (CELL + (CELLTYPE "AND2X1") + (INSTANCE g347__1309) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.149::0.149) (0.095::0.095)) + (IOPATH B Y (0.184::0.184) (0.128::0.128)) + ) + ) + ) +) diff --git a/compteur/implementation/pnr/netlist/compteur.route.v b/compteur/implementation/pnr/netlist/compteur.route.v new file mode 100644 index 0000000..e385e11 --- /dev/null +++ b/compteur/implementation/pnr/netlist/compteur.route.v @@ -0,0 +1,123 @@ +/* +############################################################### +# Generated by: Cadence Innovus 18.10-p002_1 +# OS: Linux x86_64(Host ID pcys41) +# Generated on: Wed Oct 2 14:39:38 2019 +# Design: compteur +# Command: saveNetlist /export/tmp/fiorentino/Projects/tutoriel_numerique/compteur/implementation/pnr/netlist/compteur.route.v +############################################################### +*/ +// Generated by Cadence Genus(TM) Synthesis Solution 18.10-p003_1 +// Generated on: Oct 2 2019 14:33:08 EDT (Oct 2 2019 18:33:08 UTC) +// Verification Directory fv/compteur +module compteur ( + i_clk, + i_rstn, + i_en, + o_cnt); + input i_clk; + input i_rstn; + input i_en; + output [3:0] o_cnt; + + // Internal wires + wire FE_OFN8_o_cnt_0; + wire FE_OFN7_o_cnt_1; + wire FE_OFN6_o_cnt_1; + wire FE_OFN5_o_cnt_1; + wire FE_OFN4_o_cnt_2; + wire FE_OFN3_o_cnt_2; + wire FE_OFN2_o_cnt_3; + wire FE_OFN1_o_cnt_3; + wire FE_OFN0_o_cnt_3; + wire [1:0] rstn_sync; + wire n_1; + wire n_2; + wire n_3; + wire n_4; + wire n_5; + wire n_6; + wire n_7; + wire n_8; + wire n_9; + + INVX1 FE_OFC27_n_7 (.Y(n_6), + .A(n_7)); + CLKBUFX20 FE_OFC26_FE_OFN8_o_cnt_0 (.Y(o_cnt[0]), + .A(FE_OFN8_o_cnt_0)); + CLKBUFX20 FE_OFC25_FE_OFN0_o_cnt_3 (.Y(o_cnt[3]), + .A(FE_OFN0_o_cnt_3)); + INVX1 FE_OFC24_FE_OFN0_o_cnt_3 (.Y(FE_OFN1_o_cnt_3), + .A(FE_OFN0_o_cnt_3)); + CLKBUFX20 FE_OFC23_FE_OFN5_o_cnt_1 (.Y(o_cnt[1]), + .A(FE_OFN5_o_cnt_1)); + INVX1 FE_OFC22_FE_OFN5_o_cnt_1 (.Y(FE_OFN6_o_cnt_1), + .A(FE_OFN5_o_cnt_1)); + CLKINVX20 FE_OFC21_FE_OFN3_o_cnt_2 (.Y(o_cnt[2]), + .A(FE_OFN4_o_cnt_2)); + INVX2 FE_OFC20_FE_OFN3_o_cnt_2 (.Y(FE_OFN4_o_cnt_2), + .A(FE_OFN3_o_cnt_2)); + INVX1 FE_OFC7_o_cnt_1 (.Y(FE_OFN7_o_cnt_1), + .A(FE_OFN6_o_cnt_1)); + INVX1 FE_OFC1_o_cnt_3 (.Y(FE_OFN2_o_cnt_3), + .A(FE_OFN1_o_cnt_3)); + DFFRHQX1 \rstn_sync_reg[1] (.Q(rstn_sync[1]), + .D(rstn_sync[0]), + .RN(i_rstn), + .CK(i_clk)); + DFFRHQX1 \rstn_sync_reg[0] (.Q(rstn_sync[0]), + .D(1'b1), + .RN(i_rstn), + .CK(i_clk)); + DFFRHQX1 \cnt_reg[3] (.Q(FE_OFN0_o_cnt_3), + .D(n_9), + .RN(rstn_sync[1]), + .CK(i_clk)); + SDFFRHQX1 \cnt_reg[2] (.Q(FE_OFN3_o_cnt_2), + .D(n_6), + .SE(FE_OFN3_o_cnt_2), + .SI(n_7), + .RN(rstn_sync[1]), + .CK(i_clk)); + OAI31X1 g337__8780 (.Y(n_9), + .A0(FE_OFN0_o_cnt_3), + .A1(FE_OFN4_o_cnt_2), + .A2(n_7), + .B0(n_8)); + SDFFRHQX1 \cnt_reg[1] (.Q(FE_OFN5_o_cnt_1), + .D(FE_OFN5_o_cnt_1), + .SE(n_1), + .SI(n_4), + .RN(rstn_sync[1]), + .CK(i_clk)); + AOI22X1 g339__4296 (.Y(n_8), + .A0(FE_OFN2_o_cnt_3), + .A1(n_5), + .B0(FE_OFN5_o_cnt_1), + .B1(n_2)); + DFFRHQX1 \cnt_reg[0] (.Q(FE_OFN8_o_cnt_0), + .D(n_3), + .RN(rstn_sync[1]), + .CK(i_clk)); + OAI21X1 g342__3772 (.Y(n_5), + .A0(FE_OFN7_o_cnt_1), + .A1(FE_OFN4_o_cnt_2), + .B0(n_1)); + NAND2XL g343__1474 (.Y(n_7), + .A(FE_OFN5_o_cnt_1), + .B(n_1)); + NOR2X1 g344__4547 (.Y(n_4), + .A(FE_OFN5_o_cnt_1), + .B(n_2)); + AOI2BB1X1 g345__9682 (.Y(n_3), + .A0N(i_en), + .A1N(FE_OFN8_o_cnt_0), + .B0(n_1)); + AND2X1 g346__2683 (.Y(n_2), + .A(FE_OFN4_o_cnt_2), + .B(FE_OFN0_o_cnt_3)); + AND2X1 g347__1309 (.Y(n_1), + .A(i_en), + .B(FE_OFN8_o_cnt_0)); +endmodule + diff --git a/compteur/implementation/pnr/reports/compteur.con.rpt b/compteur/implementation/pnr/reports/compteur.con.rpt index 00e69d4..89ce38b 100644 --- a/compteur/implementation/pnr/reports/compteur.con.rpt +++ b/compteur/implementation/pnr/reports/compteur.con.rpt @@ -1,16 +1,16 @@ ############################################################### -# Generated by: Cadence Innovus 17.11-s080_1 +# Generated by: Cadence Innovus 18.10-p002_1 # OS: Linux x86_64(Host ID pcys41) -# Generated on: Tue Sep 10 10:50:10 2019 +# Generated on: Wed Oct 2 14:39:37 2019 # Design: compteur -# Command: verifyConnectivity -type all -error 1000 -warning 50 -report /export/tmp/fiorentino/Projects/grm/tutoriel_numerique/compteur/implementation/pnr/reports/compteur.con.rpt +# Command: verifyConnectivity -type all -error 1000 -warning 50 -report /export/tmp/fiorentino/Projects/tutoriel_numerique/compteur/implementation/pnr/reports/compteur.con.rpt ############################################################### -Verify Connectivity Report is created on Tue Sep 10 10:50:10 2019 +Verify Connectivity Report is created on Wed Oct 2 14:39:37 2019 -Net VSS: dangling Wire at (15.900, 1.140) (15.900, 1.140) on layer: Metal1 -Net VSS: dangling Wire at (15.900, 11.400) (15.900, 11.400) on layer: Metal1 +Net VSS: dangling Wire at (16.300, 1.140) (16.300, 1.140) on layer: Metal1 +Net VSS: dangling Wire at (16.300, 11.400) (16.300, 11.400) on layer: Metal1 Begin Summary 2 Problem(s) (IMPVFC-94): The net has dangling wire(s). diff --git a/compteur/implementation/pnr/reports/compteur.drc.rpt b/compteur/implementation/pnr/reports/compteur.drc.rpt index 57e70cb..6fad5b1 100644 --- a/compteur/implementation/pnr/reports/compteur.drc.rpt +++ b/compteur/implementation/pnr/reports/compteur.drc.rpt @@ -1,11 +1,11 @@ ############################################################### -# Generated by: Cadence Innovus 17.11-s080_1 +# Generated by: Cadence Innovus 18.10-p002_1 # OS: Linux x86_64(Host ID pcys41) -# Generated on: Tue Sep 10 10:50:10 2019 +# Generated on: Wed Oct 2 14:39:37 2019 # Design: compteur # Command: verify_drc ############################################################### -#set_verify_drc_mode -report /export/tmp/fiorentino/Projects/grm/tutoriel_numerique/compteur/implementation/pnr/reports/compteur.drc.rpt +#set_verify_drc_mode -report /export/tmp/fiorentino/Projects/tutoriel_numerique/compteur/implementation/pnr/reports/compteur.drc.rpt No DRC violations were found diff --git a/compteur/implementation/pnr/reports/compteur.dyn.rpt b/compteur/implementation/pnr/reports/compteur.dyn.rpt index e5e5326..479a136 100644 --- a/compteur/implementation/pnr/reports/compteur.dyn.rpt +++ b/compteur/implementation/pnr/reports/compteur.dyn.rpt @@ -2,26 +2,26 @@ * Voltus Power Analysis - Power Calculator - Version v16.16-s020_1 64-bit (05/03/2017 02:27:51) * Copyright 2007, Cadence Design Systems, Inc. * -* Date & Time: 2019-Sep-10 11:33:16 (2019-Sep-10 15:33:16 GMT) +* Date & Time: 2019-Oct-02 15:11:52 (2019-Oct-02 19:11:52 GMT) * *---------------------------------------------------------------------------------------- * * Design: compteur * * Liberty Libraries used: -* /CMC/kits/GPDK45/gsclib045/gsclib045/timing/fast_vdd1v0_basicCells.lib +* /CMC/kits/GPDK45/gsclib045/gsclib045/timing/slow_vdd1v0_basicCells.lib * * Power Domain used: -* Rail: VDD Voltage: 1.1 +* Rail: VDD Voltage: 0.9 * * DEF Files used: -* /tmp/ssv_tmpdir_30932_IDtqud/eps_out_30932.def.gz +* /tmp/ssv_tmpdir_24667_PxDrwd/eps_out_24667.def.gz * * Switching Activity File used: -* /export/tmp/fiorentino/Projects/grm/tutoriel_numerique/compteur/simulation/pnr/compteur.pnr.vcd -* Vcd Window used(Start Time, Stop Time): (0,39) +* /export/tmp/fiorentino/Projects/tutoriel_numerique/compteur/simulation/pnr/compteur.vcd +* Vcd Window used(Start Time, Stop Time): (0,54375) * Vcd Scale Factor: 1 -* * Design annotation coverage: 36/36 = 100% +* * Design annotation coverage: 27/27 = 100% * * Hierarchical Global Activity: N.A. * @@ -39,46 +39,46 @@ * * Time Units = 1e-09 secs * -* report_power -output /export/tmp/fiorentino/Projects/grm/tutoriel_numerique/compteur/implementation/pnr/reports/power -format detailed -report_prefix compteur.dyn +* report_power -output /export/tmp/fiorentino/Projects/tutoriel_numerique/compteur/implementation/pnr/reports/power -format detailed -report_prefix compteur.dyn * ----------------------------------------------------------------------------------------- Total Power ----------------------------------------------------------------------------------------- -Total Internal Power: 0.05537990 6.7855% -Total Switching Power: 0.76076285 93.2136% -Total Leakage Power: 0.00000767 0.0009% -Total Power: 0.81615044 +Total Internal Power: 0.02794941 12.0624% +Total Switching Power: 0.20375353 87.9360% +Total Leakage Power: 0.00000367 0.0016% +Total Power: 0.23170661 ----------------------------------------------------------------------------------------- Group Internal Switching Leakage Total Percentage Power Power Power Power (%) ----------------------------------------------------------------------------------------- -Sequential 0.03352 0.001222 2.426e-06 0.03474 4.257 +Sequential 0.01723 0.001124 8.766e-07 0.01835 7.921 Macro 0 0 0 0 0 IO 0 0 0 0 0 -Combinational 0.02186 0.7595 5.246e-06 0.7814 95.74 +Combinational 0.01072 0.2026 2.793e-06 0.2134 92.08 Clock (Combinational) 0 0 0 0 0 Clock (Sequential) 0 0 0 0 0 ----------------------------------------------------------------------------------------- -Total 0.05538 0.7608 7.672e-06 0.8162 100 +Total 0.02795 0.2038 3.669e-06 0.2317 100 ----------------------------------------------------------------------------------------- Rail Voltage Internal Switching Leakage Total Percentage Power Power Power Power (%) ----------------------------------------------------------------------------------------- -VDD 1.1 0 0 0 0 0 +VDD 0.9 0 0 0 0 0 ----------------------------------------------------------------------------------------- * Power Distribution Summary: -* Highest Average Power: FE_OFC20_o_cnt_0 (BUFX20): 0.4437 -* Highest Leakage Power: FE_OFC20_o_cnt_0 (BUFX20): 1.022e-06 -* Total Cap: 4.03721e-12 F -* Total instances in design: 32 +* Highest Average Power: FE_OFC26_FE_OFN8_o_cnt_0 (CLKBUFX20): 0.1113 +* Highest Leakage Power: FE_OFC25_FE_OFN0_o_cnt_3 (CLKBUFX20): 6.246e-07 +* Total Cap: 2.03147e-12 F +* Total instances in design: 24 * Total instances in design with no power: 0 * Total instances in design with no activity: 0 * Total Fillers and Decap: 0 diff --git a/compteur/implementation/pnr/reports/compteur.stat.rpt b/compteur/implementation/pnr/reports/compteur.stat.rpt index 734c02f..a3cee45 100644 --- a/compteur/implementation/pnr/reports/compteur.stat.rpt +++ b/compteur/implementation/pnr/reports/compteur.stat.rpt @@ -2,19 +2,19 @@ * Voltus IC Power Integrity Solution 16.16-s051_1 (64bit) 05/16/2017 12:06 (Linux 2.6.18-194.el5) * * -* Date & Time: 2019-Sep-10 11:03:52 (2019-Sep-10 15:03:52 GMT) +* Date & Time: 2019-Oct-02 15:09:34 (2019-Oct-02 19:09:34 GMT) * *---------------------------------------------------------------------------------------- * * Design: compteur * * Liberty Libraries used: -* av_fast: /CMC/kits/GPDK45/gsclib045/gsclib045/timing/fast_vdd1v0_basicCells.lib +* slow_av: /CMC/kits/GPDK45/gsclib045/gsclib045/timing/slow_vdd1v0_basicCells.lib * * Power Domain used: -* Rail: VDD Voltage: 1.1 +* Rail: VDD Voltage: 0.9 * -* Power View : av_fast +* Power View : slow_av * * User-Defined Activity : N.A. * @@ -36,46 +36,46 @@ * * Time Units = 1e-09 secs * -* report_power -output /export/tmp/fiorentino/Projects/grm/tutoriel_numerique/compteur/implementation/pnr/reports/power -report_prefix compteur.stat -format detailed +* report_power -output /export/tmp/fiorentino/Projects/tutoriel_numerique/compteur/implementation/pnr/reports/power -report_prefix compteur.stat -format detailed * ----------------------------------------------------------------------------------------- Total Power ----------------------------------------------------------------------------------------- -Total Internal Power: 0.04981982 6.4300% -Total Switching Power: 0.72497510 93.5690% -Total Leakage Power: 0.00000781 0.0010% -Total Power: 0.77480273 +Total Internal Power: 0.02651278 12.1526% +Total Switching Power: 0.19164970 87.8458% +Total Leakage Power: 0.00000367 0.0017% +Total Power: 0.21816615 ----------------------------------------------------------------------------------------- Group Internal Switching Leakage Total Percentage Power Power Power Power (%) ----------------------------------------------------------------------------------------- -Sequential 0.03148 0.001147 2.442e-06 0.03263 4.212 +Sequential 0.01681 0.001026 9.016e-07 0.01783 8.174 Macro 0 0 0 0 0 IO 0 0 0 0 0 -Combinational 0.01834 0.7238 5.369e-06 0.7422 95.79 +Combinational 0.009707 0.1906 2.772e-06 0.2003 91.83 Clock (Combinational) 0 0 0 0 0 Clock (Sequential) 0 0 0 0 0 ----------------------------------------------------------------------------------------- -Total 0.04982 0.725 7.811e-06 0.7748 100 +Total 0.02651 0.1916 3.674e-06 0.2182 100 ----------------------------------------------------------------------------------------- Rail Voltage Internal Switching Leakage Total Percentage Power Power Power Power (%) ----------------------------------------------------------------------------------------- -VDD 1.1 0.04982 0.725 7.811e-06 0.7748 100 +VDD 0.9 0.02651 0.1916 3.674e-06 0.2182 100 ----------------------------------------------------------------------------------------- * Power Distribution Summary: -* Highest Average Power: FE_OFC14_o_cnt_1 (CLKINVX20): 0.2095 -* Highest Leakage Power: FE_OFC20_o_cnt_0 (BUFX20): 1.034e-06 -* Total Cap: 4.04623e-12 F -* Total instances in design: 32 +* Highest Average Power: FE_OFC23_FE_OFN5_o_cnt_1 (CLKBUFX20): 0.06309 +* Highest Leakage Power: FE_OFC23_FE_OFN5_o_cnt_1 (CLKBUFX20): 6.197e-07 +* Total Cap: 2.02968e-12 F +* Total instances in design: 24 * Total instances in design with no power: 0 * Total instances in design with no activity: 0 * Total Fillers and Decap: 0 diff --git a/compteur/implementation/pnr/reports/compteur.timing.rpt b/compteur/implementation/pnr/reports/compteur.timing.rpt index 8d9d669..d87d08a 100644 --- a/compteur/implementation/pnr/reports/compteur.timing.rpt +++ b/compteur/implementation/pnr/reports/compteur.timing.rpt @@ -1,35 +1,34 @@ ############################################################### -# Generated by: Cadence Innovus 17.11-s080_1 +# Generated by: Cadence Innovus 18.10-p002_1 # OS: Linux x86_64(Host ID pcys41) -# Generated on: Tue Sep 10 10:50:10 2019 +# Generated on: Wed Oct 2 14:39:38 2019 # Design: compteur # Command: report_timing > $::env(PNR_REP_DIR)/${DESIGN}.timing.rpt ############################################################### Path 1: MET Late External Delay Assertion -Endpoint: o_cnt[1] (v) checked with leading edge of 'clk' -Beginpoint: cnt_reg[1]/Q (v) triggered by leading edge of 'clk' +Endpoint: o_cnt[2] (v) checked with leading edge of 'clk' +Beginpoint: cnt_reg[2]/Q (v) triggered by leading edge of 'clk' Path Groups: {clk} -Analysis View: av_fast +Analysis View: slow_av Other End Arrival Time 0.000 -- External Delay 0.300 -+ Phase Shift 1.000 +- External Delay 0.200 ++ Phase Shift 1.250 ++ CPPR Adjustment 0.000 - Uncertainty 0.100 -= Required Time 0.600 -- Arrival Time 0.380 -= Slack Time 0.220 += Required Time 0.950 +- Arrival Time 0.796 += Slack Time 0.154 Clock Rise Edge 0.000 - + Clock Network Latency (Prop) 0.000 - = Beginpoint Arrival Time 0.000 - +-------------------------------------------------------------------------+ - | Instance | Arc | Cell | Delay | Arrival | Required | - | | | | | Time | Time | - |------------------+-------------+-----------+-------+---------+----------| - | cnt_reg[1] | CK ^ | | | 0.000 | 0.220 | - | cnt_reg[1] | CK ^ -> Q v | SDFFRHQX1 | 0.064 | 0.064 | 0.284 | - | FE_OFC5_o_cnt_1 | A v -> Y ^ | INVX1 | 0.014 | 0.078 | 0.298 | - | FE_OFC6_o_cnt_1 | A ^ -> Y v | INVX1 | 0.009 | 0.087 | 0.307 | - | FE_OFC13_o_cnt_1 | A v -> Y ^ | INVX1 | 0.041 | 0.128 | 0.348 | - | FE_OFC14_o_cnt_1 | A ^ -> Y v | CLKINVX20 | 0.244 | 0.371 | 0.592 | - | | o_cnt[1] v | | 0.008 | 0.380 | 0.600 | - +-------------------------------------------------------------------------+ + + Clock Network Latency (Prop) -0.000 + = Beginpoint Arrival Time -0.000 + +---------------------------------------------------------------------------------+ + | Instance | Arc | Cell | Delay | Arrival | Required | + | | | | | Time | Time | + |--------------------------+-------------+-----------+-------+---------+----------| + | cnt_reg[2] | CK ^ | | | -0.000 | 0.154 | + | cnt_reg[2] | CK ^ -> Q v | SDFFRHQX1 | 0.239 | 0.239 | 0.393 | + | FE_OFC20_FE_OFN3_o_cnt_2 | A v -> Y ^ | INVX2 | 0.095 | 0.334 | 0.488 | + | FE_OFC21_FE_OFN3_o_cnt_2 | A ^ -> Y v | CLKINVX20 | 0.459 | 0.794 | 0.947 | + | | o_cnt[2] v | | 0.003 | 0.796 | 0.950 | + +---------------------------------------------------------------------------------+ diff --git a/compteur/implementation/pnr/timing/compteur_postCTS.cap.gz b/compteur/implementation/pnr/timing/compteur_postCTS.cap.gz new file mode 100644 index 0000000000000000000000000000000000000000..7a726c05e5d1690774145dfbd834a87e262c49c8 GIT binary patch literal 447 zcmV;w0YLsAiwFR;?vz~s1HF??Z`&{ohVT9r1afHy#FA_$$a0*sY{9xDX!eO=Ff@nl zv{@gM<-+~<m0cx`x5Ey>M!*0m@--jR)M#{;MI(S$sL*nUd-!%ghu(6&M^z%Ml+t%i z4Qv)OIyRIh1?wc6T_}9AE1{Ye+S#<2W*4t@?O?S4Q{LAZyBv1WDu_S&U{gAP1Xwmt zXY(wBgtF&d`2uTks|H<4Esev*cIjM8$<_We?}Wrh6^xDVpTFC|ST}AVED&sswvISy z$c@kzl@m&nt<^uUbTx5}(^g<rs79g{zZxWmZbV2^q4WywgjU2TOMEM#Zlm)?-_3rF z4v3#}?Y2VwKGCDS<!#Q*;m?>s&d0lomp`8lu&TEHTThFwQF7atM59O-rE*{B*Qkq^ zFN@7GPo_ohtY<}^EhzasM4)j>>CvAY{m#ZTP6h}0)teXZm!Fb9-qN!`AV>!UlR!WN zLHZvEk^un=1Zf~h&Lvo_Km3h=4G7XeFbM?gpUxn9Ce)3dgZqvaf%_)|$=jmz8+Ipj p)vtREelL9m?E9M)A4J({NvE~QE4Z+ai*|h(M-TKpQMs7}006%1)z$z2 literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postCTS.fanout.gz b/compteur/implementation/pnr/timing/compteur_postCTS.fanout.gz new file mode 100644 index 0000000000000000000000000000000000000000..f3a68d4aa53c861dd836fa443cfac4eb38c0f8f5 GIT binary patch literal 326 zcmV-M0lEGkiwFR;?vz~s1Eo;GPQx$^z4t3D^#Vv++EGoT*G|Bs!6t^paSE+F0*w<= zck2G0w3NZP?ww-$J-_&c;aLbmfIB2~lCgl-Lkc}ISs>*I3nH^`YKUj!I2zd~nr!1v zvf2#9Un~_hEwr=gcA8w=o0?%U2b&-2B)&X#F*Jx@e6h+IU;=THUeD4bfk_nKbo4pa zYDXt7xzU!faospGT1zVa&RJ>vR>8=6|Ll1KBh&C)IS|-d<5;k^qEyBqu_7bZ&b(vJ zwcv)0Q&?@O(dg7?gW|_cC~Yg$ULjc-5|*6sR*H7PdC_;-KO%$hDc8JK^gq!f9%Oqf zX=!8uaC{6H>P_`AG%~EJwZHXb!xL)hdPWci!Ih%Yq`+_J5L68jXxTz3$)^QXw|%cn Y)t?LgTb>6+AM7~z0*s*h`)>jO05!#&K>z>% literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postCTS.length.gz b/compteur/implementation/pnr/timing/compteur_postCTS.length.gz new file mode 100644 index 0000000000000000000000000000000000000000..dbe344debe7315db63bfa67171c5f28c74b9c9c6 GIT binary patch literal 241 zcmV<N01p2jiwFR;?vz~s1Er8bOT$1Ah41|p1G(rSZZ?Jzb4@@CLWK$*Lrlgp(w$j1 zvy%RM6Rl{^eYfGgj}InEF3KtaxJSm&DGu;@tl&F!Hz4;28)o^8BiQoBW~tAzytNCm z-JOPic_fY#Oy#;=7grB5Dr_3?{c$Yp^|?j(1i#G3wpV~0Y*F2oRZ&2m*}G-l;7EHu zv-IM;Vhl@Ni*p?h|9d5eKNO^X_SerlNF{1R0Sr!Ff*N(+ypaTCB^L7(<Q;n*jYgF~ rcxX8~4D=Dv{MrmTe?T`AoszKe9L%gD-mflueX{xjq+r%wya50J_S$Z6 literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postCTS.summary.gz b/compteur/implementation/pnr/timing/compteur_postCTS.summary.gz new file mode 100644 index 0000000000000000000000000000000000000000..3884713d36dcaee408d23351096ec9f9bef7e3a0 GIT binary patch literal 548 zcmV+<0^9u`iwFP!00000|E*PRZ{jcv{@!0<2~7e`(6n^G`fUQ~Ht94bK<p#R6~l6B zl3tSTK;p+=TFOheZk*Oxs^r>!{KSrvG#a(UX#o5{fr=Vj!mn)zxeVzNMTGDmgnUgk zc!Q2d+6f{4!pk7zX%TpmpG>41*bI7$UeLUk+Q7pIl4z>~uT^G|q5wbJpK)XWeDH#> zI|zd=_{6)-!bhmtT9jBK$rFRA%G^WAITg!uzhNBrC}<~^e>j^$Tc&2j6u7uaq%yAI ziMwJ_p)gEH_esg$7#Z!F)JVlJUWk;VVt-O}4{R>uNsQbgs9{pLiBPVkVq)#oYkk9U z+BL+ftbCf<zNqcn%_&JeTIagTeEqrR>~iKQnlu3}mze)%MjFStrf}`s&uU9t(KI%& ztHV?b*y9wMLbpO|BpvU@&pAoQC;dX(+e)BW2}B4fLf>k8(45KG4u)966E!b7%#Gww z-8=1^>CTpZ0(t#IsMkG$Zug)sHR3(0GR^1yazBr|b|w>~aixDI&B0TYJ(|q*A*zb& z!diBfYk5>4(CDT?#dRw)JxgV8AG<Nt{{QOBrM2w)!s%ua(WF#&0L`Fv){1sEZsY_1 zF^f@DT*wjxy-QhERM-pe6h)v(&a)I#SnWS%iBYW0%U82}Pj{UW3eAjtk8TE?{vfz= mCbqKdn2lditz!8%%n#xf+=G1w3VmMhYWoKQvYQA@2LJ%wND;jN literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postCTS.tran.gz b/compteur/implementation/pnr/timing/compteur_postCTS.tran.gz new file mode 100644 index 0000000000000000000000000000000000000000..66f329569658491feb35869aa6b0fc3a7d9ab268 GIT binary patch literal 497 zcmV<N0S^8jiwFR;?vz~s1ErH~Z__Xk$KU5uoYXfPQtLc8S?Ehr3KgTR*1|vtMJBxt zLt+QVnX+$>lep^AA+2a9Mb7>2&iC`l9*tgP&IsTg3RFzv4t_jLp|gbTP-F-TA>@5s zffr9acU-!zpL%V{YGV_RcFjfIKodu4L@(aUO2c9XW%f`}?{e5h3R`?@oK>a)eDLTr zh^Lf-?|QG>^chzCP7JzavM4pystqTyD45tij%!|EUj^gR^iQ@M7|UAExB`MrDU~L= zD9N5ng+g;7$y&)@nCXh>T1&+-Peomz;(ux+hi-%yWsZfZV46!oN}-5p#l@ZTveCD* zU!n$Lrd;VY7pD_Fv5&0TDkiq(n7uIctgy*h_WK|tnCEMA?!i7cSTNP4I3q`<nb6<- z?@sH_-=?d1;(KZLvkcNMn)>AH35q-MV^@)G+4n+7uUg^Ck2+y&Vv$kIN@*)4*B=(k z&tH7^$!0AQSP*vr5?PSgf;_GL7f29xAl?xq4116u>_Ogqnm-2;3_wB);#!d4JP_K0 zghvqi-yq%qB(NZ%1@X=U33?EE1PLq%Jp;sf#l>DuLH|UBz|2RXU`?vcb%T2@^X_3( nU~aHUfnE0oCx<HfIHfIC$a1(){Vlw?oH&00j5>lc!vp{TRaWdh literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postCTS_all.tarpt.gz b/compteur/implementation/pnr/timing/compteur_postCTS_all.tarpt.gz new file mode 100644 index 0000000000000000000000000000000000000000..8c85198bc227eb58536290b9a464fa24f455a34c GIT binary patch literal 4535 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 V%Mgl5d^Rj-=l=jySd1Q?002{9;OPJW literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postCTS_default.tarpt.gz b/compteur/implementation/pnr/timing/compteur_postCTS_default.tarpt.gz new file mode 100644 index 0000000000000000000000000000000000000000..6da04943265bca4a38990a6a2a33434639220604 GIT binary patch literal 2775 zcmV;|3Mlm-iwFP!000001MOVfa@$4{edkw9l^)`hiX`p?RFwx^6IHyDZ8?cksSS!t z!4hH$U_el|YPJ8q-80je84!>_ijlP&;z1Y!gYKT&IX&Hgc6Oe0^mZ8gKFN||Tqc+7 zUw3<qABW@1B%37cG|Tea#hlsUz_$7`%W`5HA348}6-9OY`#Q}QU)Yy0hy(A{5Ba=g zr$=lyxtn|Tx2BdnlMnv_D$ge+V-B;uJvZF*Jmy$-gw>Cdd3r?^g_cQvGb@utfwvFy zo11ZVsasK|H;H(P^=F{}@cjkr=Zo?vE!Z&mGRuo{Sl-NrAJe=@vNFx`;hQ4=Bbk)* zVYw*tB2A`owzx@(^v^{yByGd=W;RW3;E8dW=GkzT6+=*!W>>u@_599G@6EWpX7(QY z$MJji8U}zJe<_n98&9G2)A1eKpU;y5m9pM(b~($_ti%TA@gysMbN<PD<<;%CY;v7U zK0#l8PC*`<CgV%6jwP2@3ClmSZzj`E-}DZWt2C1$;PJRfu0X`_EkglikzQRT1)l+J z0=Ti?7x`i~-(&y2Og@em)AB#PeK7ZKp3d3NY4UlG&8PY2czoMCFRzn=fz@okDAHSK z(t8*lF^>4x8d#Rq>(^VXD)5puaG=&MdviUWC+y-n{Rop~>97ZmkFtJ(8C#TN=%u@* zI;hbGS>LgD$)Af9n`#;)pRfiIm(^@FiM0l!C<Iv-)A8g}vmmGn8hxk7pE;c7Q1M*~ ztvJSEX*@)q@LRj=2zo7H`<H(#<|R(Ph9|JTFXZpCi+oY=1xr&#Od;*DKGqLJ{qLBX z4=p3aczsLC@BgL8E)#0*HFMdUG}C{wd(m}N=PaQ<!7GQ!bc(g_<<hyYT6M2R{Ju$z zp@U1{S4fSztzV%soaHpaD^*dp=Ak~@6*uKctEpe1GM)Q<RqCtOq%kaUWvE^Pvwnx) z_pDxrT7Z?Q3}-Ru;tHR?P^7WZVB_#dT?v=arsm@4<mBBCZ$H=|iO+B@T$RK!X;$;r z)Phgma(hpX<MWd<H|9_nJ8;8P<G7(zLnTn-MrZ@IhKo3Kthgp?xc`uv)3cvHINU0; zHLI)n71fAN6Bc+{YiepDPqxN&v8`}e126QUSZj^l+?qBuhp&I+nk<l{Mg)4wbyrlw zTO-ECpeH_BrW((u){Me{)I@HiwWcnDcewadO@Vrydq#|n(-B%@<7i_~0ajOPd~B-d zG;Jwq%Wq>vz%)*o&YJvgKb_z0Ex&6shZj5Zd)SHJgDt;zSuk6ESG}ae4wdQr?ED@e zoe+l*zXNP+nBUvfJi_n3WJCn=8o!T_E)d)uS%RYH>8+9c?n*|iWG(Z1bqhoSRUQ0v z^1-Py;_7Oa7*PT`SY21+MI+go(MXh_HBF4DL}<8HV?<Tw0Y(hJCL_9QGNSu*Ms&A~ zsLdQ+?97O;m+i3Qg?%v>yWR0B$ZsfZ8BukLVn4-y>Y6G&%Z``t73z!#u(1LoRvTUb zb$wR_5ibt&aM5m4^9Unak`ZxxW~y-lAsiS{mXHyB#Cd9sWJF&wVkK*t5vyD9bSopS ztY(Q3C7=Ud)YW()wPwUOhEN3=QE!dd|0xk1b;O?<BdR*fj3~C#ut)T(jWq-St4`A< zpPH|mE72a&Tayv3r!%6pWkhY}@M331bi3>k9ecY+?6P9EjHr4^haD=@S#c!PSKwZc z?`o48;IJ(?t7_qH3J*A&F<_X#6&wP7%G43S#%39@Rm~%e7)nM&%&sw_gmhp;1@2ye z!N(dS29gmgS<8%A-GZlE8Btf$5S(3Bv&4uJ(D^u+YP^vM$pTe5C>suBMBFY?YXl=I z5m-kaP+t$usyfSzSgDaAbX4>FjOYtSyhzH$j2&WrQ)D+WDMWJ+(w8s?jnt@i>xjMj zef8968Ye32gaW=^YE-nHMzDT{S#3XiYShCt>tm_W!0|h56kS`UB3Iuio@TQ}Df4{w zZjryCcOcoze{@czdZK=p)F`Y8$CC9S>4({NjP>tHjS9%0RH`we%7>~<C?-J>3!aw# z<Y>a7AA3yx;+;ojI9JI{ttgSF-bzVT=80D#5~Fh~nQ5z#TSNo~*U2W`R=kE|QX!+y zBY4t2cIA4bIJR9Y0%Tv7w|{ozKz@?n(Kl>e<o&A4%VLlMsb@o;?TKI;q}3Eb1cAPn z0sCCA&l`Eeg9dqLT;S^^`?|=J_6hXQ;t|?s%CoC{oNrap$I#JPU+x@7F$mDPQOd&{ zBJVzst@mFyd7K2r_-1i{_L=f*oB9us1@6KDl;o*Rn(|735su9M<MPbdF>S-GL5n;! zIqMU9wcoUUS4X&)_40>$m**Kl&crxA>`wwYi5dhRbjI04WjJ>Sxf;0XbB4-vZUs60 ztqo947>Ae1rkZ`4YYs)=P^d^Cr};kM7A?tZTLiQmYVwrvt4;cPZCC_64IXrG=tP*U z(V>G||Mw0Z0P%Cb>lOuF9J-O$#i4W7j&uAy96F){xwI>H&O|!AD}ipUciE(L^Hf8T zbx}^k1S-<G72|YA4vZp<GyOPeEl0hY8>b_j>BiNiRbH3rgcwd-i!^YODrt2e4y84_ za3ejGV7hR1X_d!i+NL{jZPJ8o&Hfv=t=WAu-AfnT-*6OK!+jp+Hl&^JpSm{sZ>DXA z^VTBG?6(L-7}D&3659c99?U~<-6DMyh_yJt>!ZM>RS_N2wian>GS*pWmEW{Zw{BZ| zuTdY#h1-H<IGh^<GcFFH3=XLn&+DR@{w^)e96GncSvQwWv##c`8QUst?l*aCEt6k& z*fep<^!8!vaEJW0Q3rqR;Q-vlDgU-$)sGX52po^$z2Fes3;j9)u)BlD=6SBzJFJd$ ze-DqX-woz8lmk2x-(9Tq{egrF^Ry|L({X{ybZ&*YPF|Z1!ocgAqZROw7i~;Cx@{m% z4<2<9XZjyqV{aqF0qN+t)vVJzw^nh&I>Xnh{6H?QG4iG-Ta3sS;3>=yLtNXQUh~~_ zacbB*5J7ttS{19q#x|}6L&!e>gOTJPFyWft#<ld6GdN5@OwdmRALJzoZv#4v_K+e@ z*0u&TH%XVbp*4Wiz~fqB2R})?P~8~Uf?F5IPtR1oa6ie8{O68r`F@AU7NB?sKPj-b zeo{Ld;2mNFL^C*Awu2kSI;o6nq%xe>-45!&KxH~_*iRDQzk#<C@`M`!-MW6#<Kouy zlOkV#iG^TTAQp5qrR=!d)rP{FpQMXZ9sBUadgLz6yR9ekKu1w0$u-ilIMKJ<dLqWl zZ{Udl^f!1Sg3qfZAYQ$zf1*VGhuYKB<ZWmTRGvuG!4na$?KOHLaBCA8wy*l%Bp!QZ z%67tM^+W7|1zEAjUzu{lF0V`l?*IBLQ}Vx607d^buS|7=x(y?p#MPJNhln5nkEFI( z$Ky51aq#s2jIiW~7~-ll8vvuiHvU2!=MZ#j+QgX=k%oAURsE*}NBd~s)%_5#&X40L z2%X^p|44))B0}8xsdI3E>8zS{QAE~7ZQ@KX$;BkYz9}xGbQUaFA&#$bD3T9HUJ^%B ztU_KA7gt5};f~&SE#fxB5VR_`UQ)Z4M13TeO9v-u1Cd@ag*b3jMKEC99n9BAXa&X_ d=-TXGFQEk#2R$Jc)8=M>@4v(!j!7j=006#5UYh^_ literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postCTS_reg2reg.tarpt.gz b/compteur/implementation/pnr/timing/compteur_postCTS_reg2reg.tarpt.gz new file mode 100644 index 0000000000000000000000000000000000000000..ea130b662b9f9b083455912ff6ab62e78ba66042 GIT binary patch literal 3720 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 literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postRoute.SI_Glitches.rpt.gz b/compteur/implementation/pnr/timing/compteur_postRoute.SI_Glitches.rpt.gz new file mode 100644 index 0000000000000000000000000000000000000000..19be1bd2faca152a0a0248bda4255889eab62520 GIT binary patch literal 90 zcmV-g0HyyQiwFSe?vz~s1M^EQ@k`82RUib)aspBlvtjJ8%+zu;`3xla3`}`0WiGCe w{F1~Rg}l<-q|_pX{4|C1oXnEs4281H{G7y+%>2A!D+L2C0LVV@dXWGC0E@3HiU0rr literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postRoute.cap.gz b/compteur/implementation/pnr/timing/compteur_postRoute.cap.gz new file mode 100644 index 0000000000000000000000000000000000000000..4595b67eb2d84a6cb9b6f235234fc7fc35867e68 GIT binary patch literal 449 zcmV;y0Y3g8iwFSf?vz~s1GSS&Z`&{o$M60W1afHy#F8Hg(j4b3Td*z(QtX9c5HyGF zv{{eIa^Zga$*z*d-C>8I1Z<EZ|K`s$JsO>5(FouzDzx0;9)3K`p|^tXQI!ZQrSyGM zLo$mKIyRK1Ea@bhn^5><*FrTdw6iIj<`?gD?O?S4Q$EyrayjgxRS<vn!KQQoDJ1zk zyP9V+NNIA_l`pUscWTh3)Y3R?Y?m&ylw9pk^G-;7RKeKz{yW_`gt5Obgav}F(bf?s z4Y?KCqH;oMvbFjbmaZnQaoP&3m}(?i@uxv@=tqP!6-uw*PH07pvcxwN>MlBO_}%o^ z=z#b+*KRA+^O+v)18)m%4&TNMaz4JPc=`M30IO>2-}SU;hmzaABpOAUmCAifzDHfW ze8V=&BF$LutS79`vV?pcBG5Ra^yp8HerIDEr-Osy`u*#V%P%Q?{*;~t0s$QmOas9z z5d5Qk0fKZukOYD(5Txf4tk$3YN01E&CV_wkg6u_S5WN!WR?orxM2o=vm4oChEB%Ju r3tjc=UW4CDUjh66---{S{IsOgTI3a6*vCcNUB=O0e+*8Hn*;y=P|e{s literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postRoute.fanout.gz b/compteur/implementation/pnr/timing/compteur_postRoute.fanout.gz new file mode 100644 index 0000000000000000000000000000000000000000..5f62b8eec10f539f46bee6a11b9484f6bda04ef3 GIT binary patch literal 327 zcmV-N0l5AjiwFSf?vz~s1Eo;GZo)7Oz4t3D^|DQZw15!w3fhLm27<$mC~FPN);L+> zqVo4kyN-=rd50*D-}8%K9AAYf26#Y1Cm9QPJ!Q~hCJUq-VL@b$m4|fFPm`WalEE%* zB&%&l{KZmHRYN@)@5ZB>N8=e5bFlfzkJ8&q7ek%+B^0Zi0S1tcvf(rvPGFFv(}q4r zuMTwKk{fLqE7!DVMr%pM-##mi-zw<Y;J+~yBlN;KR}KW$);Jcdt=KE$kXVrsYiHgu zXD_&7;}n)Vsx&(FS)usx6H40>bx=rFhJ+<2f|;U2bY1vO`p?K9Le8GoivDMM#*?h? zB`u9C0M3^VUA-+ox`!E-<vQ$oF=2yRx|R{eQFNzhZ!+LFbO_2r0$SFvmlV>1vYCEV Zrfk=R@U6guqK&p6eF4^FcVlq^007=Yngjp< literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postRoute.length.gz b/compteur/implementation/pnr/timing/compteur_postRoute.length.gz new file mode 100644 index 0000000000000000000000000000000000000000..0f2e617576c03454f8ca6b3e4ba40ceb09343011 GIT binary patch literal 243 zcmV<P01W>hiwFSf?vz~s1Er9`O2a@9hVOlffn4+uH=Bl%=GuT3go++KhL}vtNOxx4 z%u4$9CR)*+`yU2|e?C5#B)KY!1mGSSL#x=s+o^)@Y}y{VL)bFQXB@zmcQ#9XmgS9| zk=@Jr@Gp<VafGp4HLK$0K?a3w4Zb@Kg}uGB2%q8CY1wrOkb^C%<+@sykY{#1pVv6h zfiEnbIIkGPTyMm=mizy`lEWVgQa|~hB`QKX&6)xj9K8fJ>b%*L1Y{)^^AzMAI~|Nh tl|XoGI64gU5z+km3^{*9HxaFpu<;zsBqKg7u6us6_yRSVp;*2F0008SbN&DT literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postRoute.summary.gz b/compteur/implementation/pnr/timing/compteur_postRoute.summary.gz new file mode 100644 index 0000000000000000000000000000000000000000..afc3e20d6c82fa8a10947ff8d1e2948a3ee95335 GIT binary patch literal 566 zcmV-60?GX!iwFP!00000|E*PRZ{jcv{@!0<2~8@Rpeb|%`t3Aycau)r1k?5rWyO@7 z+N77HJCOMCOW&Z~s&QJ+63Dgv_=z3Y?e#i|)dTo}93|DbhL^n$x!lk-@&MtMbMcxg zaHm6;3=%>{D>sAOFU!D_{9-)a!ESoJy7ug!LTR|2LlW$j=k}W{f|uZD^Kc(%fDyQ! zKc4yH35<w4%fjcVSjZbJfrt~0sm$CrB919v*ZrEsSfF5#82*JwHNwFB&zS@VcZrbN z(Q)Ezn2^Xd<HC86;x`6bIXcxsGK^L{jZv~cDLNIO!{Q{u*dVB8f;$P9jv-?_w7NCF zXIX;|Vzt)3OigFx{{8hdq#Lbu*=D}{T(b^2^AdHMKrGgnKW0W6MY$$19GRcd*0`Z* zq~XwosT{GpCD>f`ePbj;_sYvTjW(TCT5fBA9vdJ+NE!NGD?m?7L}oB}2oF?mm7g0) zRow@z&h*Wcege6ZD%2exL9+t%rAB;2wWj&p-|Xk{)@rgq8nyZ#g|0kh+4IGds-oJs z&Yb1YdX_s09JR7F%2@R?)3cCf|Cozu_y1F0&Yh*`OH6mGfF_N)J+QrgtrY_@9A)#; z>OW@DlJYZIyz%T@mJQ`*;hmxg*rcANoWgehF-wFz)Z4FS`9IyY=ExP(=8JSS9Zsg+ zMYZm1m*g+t1^i{^kl$Gpp;UdVm^QP%Ur>VBKo~I{Y~i(dJq1@jkZz0b4SPR9DQpJ- E04mQRu>b%7 literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postRoute.tran.gz b/compteur/implementation/pnr/timing/compteur_postRoute.tran.gz new file mode 100644 index 0000000000000000000000000000000000000000..286e3740affe7588d5904ec7542575551f8c5c7c GIT binary patch literal 499 zcmV<P0Sx{hiwFSf?vz~s1ErHuZ<{a>$KUxBC*`G`lo$+TkjIf_i`FGk+O?ae33=qw zc>|jnQ_*i<1CCPCNsH8z!1n*{d_SM;(dbp?i~v5MK*cof;OFBEI!o9NMTW2xLO#?L zc+tdj$EEAi)N51L*EaBIS6tK$G|@Dj1{WV?rC~XTGJC87?{Zj03Y&aq7VAs{Q1F78 zAJ6;<sO!aT_#7*KF9uaIS(F-U)w&Z|6in=%`!z4H&w_Dj>ThMO5ys{}=L!fmrBs^e zq9l7R6$;ITBpW4vW2P&jYb_PWJQa0;ivO*V9O@BXlsOhAgJ~`WDTN}Y7#H`>>zdzo ze}x)|>2swwT%7jw#6Gj;Mlo??4%!RDl@+dYmi;*h3Fi66oO`g(77M1j5NG7bG!yze z{o%Ch#rt%<NT`=~la-%#-jtGWCn)ZOMy?{=u<wP?k6Yob7k9$g_(G$YG4NX{x%#wR z-F~I+i_Kajupr(5#J3=!1@X=U33`z52ohM3pa*&PW$`}{cK|ZAAdv-mnfosg+IPe~ zb|kPJq4C)u{s1JjAg%@R&jX2ikmv{!S&--q5a$gSdpQIB3l#!0UjPMbQf;mqJaCzJ p52FHegG~tRx>q<kWChPd+GK?+hYQu;!tLe6c>>AMk}|~v000R!?RfwI literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postRoute_all.tarpt.gz b/compteur/implementation/pnr/timing/compteur_postRoute_all.tarpt.gz new file mode 100644 index 0000000000000000000000000000000000000000..e947945b23dd82f1a1f32365c576ea634b505e58 GIT binary patch literal 4711 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 literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postRoute_default.tarpt.gz b/compteur/implementation/pnr/timing/compteur_postRoute_default.tarpt.gz new file mode 100644 index 0000000000000000000000000000000000000000..4ba2b88c543bd92237d10f5c19e73041bc42b124 GIT binary patch literal 2808 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 Ka2=kFO#lEpo`BT= literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_postRoute_reg2reg.tarpt.gz b/compteur/implementation/pnr/timing/compteur_postRoute_reg2reg.tarpt.gz new file mode 100644 index 0000000000000000000000000000000000000000..28013b3b5eecdfb61eea8973328d502040dafd96 GIT binary patch literal 3891 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 BwZZ@Z literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_prePlace.summary.gz b/compteur/implementation/pnr/timing/compteur_prePlace.summary.gz new file mode 100644 index 0000000000000000000000000000000000000000..c57888f259441db0eb738123c95e9bb98f5abb98 GIT binary patch literal 393 zcmV;40e1c$iwFP!00000|D{u5OY1Nc{oY@3VF-$BN$T)z{U#1n5FJe3`#5TQoss4y zrZ=*IKi;hC)cV8^_CVp}<Q`7$O*$C#LNWljKti80mT<qxpuu@wA{7W%MD``rpe7?F zhfd0LskWBeMO*lRYfWJd>&fZzbbNSeYlf>CxMEX})loOaQfvMf7q<liq@c#x$s|)# zNTr%?%V${Y6?IYyYaC<n+wF5}OitzJebxqdE*LtG^D2)G3~k_<_8@TWtY^W-i3e>x z5^J(z?(Gv6Tni3ty~b)u!JyaA0mVK}XyYn0(UG&ZBpi7Wvox)eezPAW$*>2KZ(Co4 zI2gbAdOIETi%pKdlaGI9$!n9mKn@O!EwNc{#k{H-=5dwAFR~IJ@=!6n_DO1A*v$eC zsXof0C`YMMO{N@;W!kcx)-m06Oj63W^efw${%Tvrhe0ct=lob_jVSls{l`8hoyFEa nOzO|RRGqw=raRNG29eB=YR&PVZccpA@7mu0lv+r9X#@ZO_)@=i literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_prePlace_all.tarpt.gz b/compteur/implementation/pnr/timing/compteur_prePlace_all.tarpt.gz new file mode 100644 index 0000000000000000000000000000000000000000..d7cb484a2c62c006c35a37b354068ec6797579e6 GIT binary patch literal 3931 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 literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_prePlace_default.tarpt.gz b/compteur/implementation/pnr/timing/compteur_prePlace_default.tarpt.gz new file mode 100644 index 0000000000000000000000000000000000000000..31fcdfa15607925b65da52193709699bcb883deb GIT binary patch literal 2518 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 literal 0 HcmV?d00001 diff --git a/compteur/implementation/pnr/timing/compteur_prePlace_reg2reg.tarpt.gz b/compteur/implementation/pnr/timing/compteur_prePlace_reg2reg.tarpt.gz new file mode 100644 index 0000000000000000000000000000000000000000..01f9faba8efdf89b7486aa5aff77e4d36a557878 GIT binary patch literal 3219 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 F001SzP*(r| literal 0 HcmV?d00001 diff --git a/compteur/implementation/syn/.gitignore b/compteur/implementation/syn/.gitignore deleted file mode 100644 index d90dde6..0000000 --- a/compteur/implementation/syn/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*~ -*.log -*.cmd -fv/ diff --git a/compteur/implementation/syn/netlist/compteur.elab.v b/compteur/implementation/syn/netlist/compteur.elab.v new file mode 100644 index 0000000..d8787fb --- /dev/null +++ b/compteur/implementation/syn/netlist/compteur.elab.v @@ -0,0 +1,154 @@ + +// Generated by Cadence Genus(TM) Synthesis Solution 18.10-p003_1 +// Generated on: Oct 2 2019 14:33:05 EDT (Oct 2 2019 18:33:05 UTC) + +// Verification Directory fv/compteur + +module add_unsigned(A, B, Z); + input [3:0] A; + input B; + output [3:0] Z; + wire [3:0] A; + wire B; + wire [3:0] Z; + wire n_11, n_18, n_21, n_28, n_30, n_34, n_35, n_37; + wire n_38; + xor g1 (Z[0], A[0], B); + nand g2 (n_11, A[0], B); + nand g13 (n_21, n_18, A[1]); + nand g20 (n_30, n_28, A[2]); + xnor g25 (Z[1], n_18, n_34); + xnor g27 (Z[2], n_28, n_35); + xnor g30 (Z[3], n_37, n_38); + not g35 (n_18, n_11); + not g36 (n_34, A[1]); + not g37 (n_35, A[2]); + not g38 (n_38, A[3]); + not g39 (n_28, n_21); + not g40 (n_37, n_30); +endmodule + +module bmux(ctl, in_0, in_1, z); + input ctl; + input [1:0] in_0, in_1; + output [1:0] z; + wire ctl; + wire [1:0] in_0, in_1; + wire [1:0] z; + CDN_bmux2 g1(.sel0 (ctl), .data0 (in_0[1]), .data1 (in_1[1]), .z + (z[1])); + CDN_bmux2 g2(.sel0 (ctl), .data0 (in_0[0]), .data1 (in_1[0]), .z + (z[0])); +endmodule + +module bmux_7(ctl, in_0, in_1, z); + input ctl; + input [3:0] in_0, in_1; + output [3:0] z; + wire ctl; + wire [3:0] in_0, in_1; + wire [3:0] z; + CDN_bmux2 g1(.sel0 (ctl), .data0 (in_0[3]), .data1 (in_1[3]), .z + (z[3])); + CDN_bmux2 g2(.sel0 (ctl), .data0 (in_0[2]), .data1 (in_1[2]), .z + (z[2])); + CDN_bmux2 g3(.sel0 (ctl), .data0 (in_0[1]), .data1 (in_1[1]), .z + (z[1])); + CDN_bmux2 g4(.sel0 (ctl), .data0 (in_0[0]), .data1 (in_1[0]), .z + (z[0])); +endmodule + +module compteur(i_clk, i_rstn, i_en, o_cnt); + input i_clk, i_rstn, i_en; + output [3:0] o_cnt; + wire i_clk, i_rstn, i_en; + wire [3:0] o_cnt; + wire [3:0] plus_57_22; + wire [1:0] rstn_sync; + wire UNCONNECTED, UNCONNECTED0, UNCONNECTED1, UNCONNECTED2, + UNCONNECTED3, UNCONNECTED4, n_20, n_21; + wire n_23, n_24, n_25, n_26, n_27, n_43, n_44, n_46; + add_unsigned add_57_22(.A (o_cnt), .B (1'b1), .Z (plus_57_22)); + bmux mux_rstn_sync_39_16(.ctl (n_20), .in_0 ({rstn_sync[0], 1'b1}), + .in_1 (2'b00), .z ({UNCONNECTED0, UNCONNECTED})); + bmux_7 mux_cnt_54_17(.ctl (n_23), .in_0 (plus_57_22), .in_1 + (4'b0000), .z ({n_27, n_26, n_25, n_24})); + bmux_7 mux_cnt_50_14(.ctl (n_21), .in_0 ({n_27, n_26, n_25, n_24}), + .in_1 (4'b0000), .z ({UNCONNECTED4, UNCONNECTED3, UNCONNECTED2, + UNCONNECTED1})); + CDN_flop \rstn_sync_reg[0] (.clk (i_clk), .d (1'b0), .sena (1'b0), + .aclr (n_20), .apre (1'b0), .srl (1'b1), .srd (1'b1), .q + (rstn_sync[0])); + CDN_flop \rstn_sync_reg[1] (.clk (i_clk), .d (rstn_sync[0]), .sena + (1'b1), .aclr (n_20), .apre (1'b0), .srl (1'b0), .srd (1'b0), .q + (rstn_sync[1])); + CDN_flop \cnt_reg[0] (.clk (i_clk), .d (n_24), .sena (i_en), .aclr + (n_21), .apre (1'b0), .srl (1'b0), .srd (1'b0), .q (o_cnt[0])); + CDN_flop \cnt_reg[1] (.clk (i_clk), .d (n_25), .sena (i_en), .aclr + (n_21), .apre (1'b0), .srl (1'b0), .srd (1'b0), .q (o_cnt[1])); + CDN_flop \cnt_reg[2] (.clk (i_clk), .d (n_26), .sena (i_en), .aclr + (n_21), .apre (1'b0), .srl (1'b0), .srd (1'b0), .q (o_cnt[2])); + CDN_flop \cnt_reg[3] (.clk (i_clk), .d (n_27), .sena (i_en), .aclr + (n_21), .apre (1'b0), .srl (1'b0), .srd (1'b0), .q (o_cnt[3])); + nand g18 (n_46, o_cnt[0], n_43, n_44, o_cnt[3]); + not g19 (n_23, n_46); + not g20 (n_20, i_rstn); + not g21 (n_21, rstn_sync[1]); + not g22 (n_43, o_cnt[1]); + not g23 (n_44, o_cnt[2]); +endmodule + +`ifdef RC_CDN_GENERIC_GATE +`else +module CDN_flop(clk, d, sena, aclr, apre, srl, srd, q); + input clk, d, sena, aclr, apre, srl, srd; + output q; + wire clk, d, sena, aclr, apre, srl, srd; + wire q; + reg qi; + assign #1 q = qi; + always + @(posedge clk or posedge apre or posedge aclr) + if (aclr) + qi <= 0; + else if (apre) + qi <= 1; + else if (srl) + qi <= srd; + else begin + if (sena) + qi <= d; + end + initial + qi <= 1'b0; +endmodule +`endif +`ifdef RC_CDN_GENERIC_GATE +`else +`ifdef ONE_HOT_MUX +module CDN_bmux2(sel0, data0, data1, z); + input sel0, data0, data1; + output z; + wire sel0, data0, data1; + reg z; + always + @(sel0 or data0 or data1) + case ({sel0}) + 1'b0: z = data0; + 1'b1: z = data1; + endcase +endmodule +`else +module CDN_bmux2(sel0, data0, data1, z); + input sel0, data0, data1; + output z; + wire sel0, data0, data1; + wire z; + wire inv_sel0, w_0, w_1; + not i_0 (inv_sel0, sel0); + and a_0 (w_0, inv_sel0, data0); + and a_1 (w_1, sel0, data1); + or org (z, w_0, w_1); +endmodule +`endif // ONE_HOT_MUX +`endif diff --git a/compteur/implementation/syn/netlist/compteur.syn.sdf b/compteur/implementation/syn/netlist/compteur.syn.sdf index a45e2c0..ee77b43 100644 --- a/compteur/implementation/syn/netlist/compteur.syn.sdf +++ b/compteur/implementation/syn/netlist/compteur.syn.sdf @@ -1,76 +1,118 @@ (DELAYFILE - (SDFVERSION "OVI 3.0") + (SDFVERSION "OVI 2.1") (DESIGN "compteur") - (DATE "Tue Sep 10 10:42:42 EDT 2019") + (DATE "Wed Oct 02 14:33:08 EDT 2019") (VENDOR "Cadence, Inc.") (PROGRAM "Genus(TM) Synthesis Solution") - (VERSION "17.10-p007_1") + (VERSION "18.10-p003_1") (DIVIDER .) - (VOLTAGE ::1.1) + (VOLTAGE ::0.9) (PROCESS "::1.0") - (TEMPERATURE ::0.0) + (TEMPERATURE ::125.0) (TIMESCALE 1ps) (CELL (CELLTYPE "DFFRHQX1") - (INSTANCE cnt_reg\[3\]) + (INSTANCE rstn_sync_reg\[1\]) (DELAY (ABSOLUTE (PORT RN (::0.0)) (PORT CK (::0.0)) (PORT D (::0.0)) - (IOPATH RN Q () (::45)) - (IOPATH CK Q (::81) (::75)) + (IOPATH RN Q () (::71)) + (IOPATH CK Q (::227) (::198)) ) ) (TIMINGCHECK - (RECREM (posedge RN) (posedge CK) (::-20) (::27)) - (SETUPHOLD (negedge D) (posedge CK) (::18) (::-5)) - (SETUPHOLD (posedge D) (posedge CK) (::31) (::-24)) + (HOLD (posedge RN) (posedge CK) (::99)) + (RECOVERY (posedge RN) (posedge CK) (::0.0)) + (HOLD (negedge D) (posedge CK) (::0.0)) + (HOLD (posedge D) (posedge CK) (::0.0)) + (SETUP (negedge D) (posedge CK) (::76)) + (SETUP (posedge D) (posedge CK) (::135)) ) ) (CELL (CELLTYPE "DFFRHQX1") - (INSTANCE cnt_reg\[2\]) + (INSTANCE rstn_sync_reg\[0\]) (DELAY (ABSOLUTE (PORT RN (::0.0)) (PORT CK (::0.0)) (PORT D (::0.0)) - (IOPATH RN Q () (::45)) - (IOPATH CK Q (::82) (::76)) + (IOPATH RN Q () (::96)) + (IOPATH CK Q (::249) (::224)) ) ) (TIMINGCHECK - (RECREM (posedge RN) (posedge CK) (::-20) (::27)) - (SETUPHOLD (negedge D) (posedge CK) (::14) (::-1)) - (SETUPHOLD (posedge D) (posedge CK) (::23) (::-17)) + (HOLD (posedge RN) (posedge CK) (::99)) + (RECOVERY (posedge RN) (posedge CK) (::0.0)) ) ) (CELL - (CELLTYPE "OAI31X1") - (INSTANCE g333__7837) + (CELLTYPE "DFFRHQX1") + (INSTANCE cnt_reg\[3\]) (DELAY (ABSOLUTE - (PORT A0 (::0.0)) - (PORT A1 (::0.0)) - (PORT A2 (::0.0)) - (PORT B0 (::0.0)) - (IOPATH A0 Y (::57) (::48)) - (IOPATH B0 Y (::27) (::44)) - (IOPATH A1 Y (::51) (::38)) - (IOPATH A2 Y (::52) (::35)) + (PORT RN (::0.0)) + (PORT CK (::0.0)) + (PORT D (::0.0)) + (IOPATH RN Q () (::151)) + (IOPATH CK Q (::307) (::290)) ) ) + (TIMINGCHECK + (HOLD (posedge RN) (posedge CK) (::91)) + (RECOVERY (posedge RN) (posedge CK) (::0.0)) + (HOLD (negedge D) (posedge CK) (::0.0)) + (HOLD (posedge D) (posedge CK) (::0.0)) + (SETUP (negedge D) (posedge CK) (::127)) + (SETUP (posedge D) (posedge CK) (::210)) + ) ) (CELL - (CELLTYPE "XNOR2X1") - (INSTANCE g336__7557) + (CELLTYPE "SDFFRHQX1") + (INSTANCE cnt_reg\[2\]) (DELAY (ABSOLUTE - (PORT A (::0.0)) - (PORT B (::0.0)) - (IOPATH A Y (::52) (::53)) - (IOPATH B Y (::45) (::43)) + (PORT RN (::0.0)) + (PORT CK (::0.0)) + (PORT D (::0.0)) + (PORT SI (::0.0)) + (PORT SE (::0.0)) + (IOPATH RN Q () (::148)) + (IOPATH CK Q (::307) (::287)) + ) + ) + (TIMINGCHECK + (HOLD (posedge RN) (posedge CK) (::91)) + (RECOVERY (posedge RN) (posedge CK) (::0.0)) + (HOLD (negedge D) (posedge CK) (::0.0)) + (HOLD (posedge D) (posedge CK) (::0.0)) + (SETUP (negedge D) (posedge CK) (::166)) + (SETUP (posedge D) (posedge CK) (::242)) + (HOLD (negedge SI) (posedge CK) (::0.0)) + (HOLD (posedge SI) (posedge CK) (::0.0)) + (SETUP (negedge SI) (posedge CK) (::254)) + (SETUP (posedge SI) (posedge CK) (::266)) + (HOLD (negedge SE) (posedge CK) (::0.0)) + (HOLD (posedge SE) (posedge CK) (::0.0)) + (SETUP (negedge SE) (posedge CK) (::278)) + (SETUP (posedge SE) (posedge CK) (::246)) + ) + ) + (CELL + (CELLTYPE "OAI31X1") + (INSTANCE g337__8780) + (DELAY + (ABSOLUTE + (PORT A0 (::0.0)) + (PORT A1 (::0.0)) + (PORT A2 (::0.0)) + (PORT B0 (::0.0)) + (IOPATH A0 Y (::250) (::223)) + (IOPATH B0 Y (::141) (::207)) + (IOPATH A1 Y (::187) (::153)) + (IOPATH A2 Y (::263) (::184)) ) ) ) @@ -84,45 +126,40 @@ (PORT D (::0.0)) (PORT SI (::0.0)) (PORT SE (::0.0)) - (IOPATH RN Q () (::54)) - (IOPATH CK Q (::91) (::85)) + (IOPATH RN Q () (::183)) + (IOPATH CK Q (::336) (::322)) ) ) (TIMINGCHECK - (RECREM (posedge RN) (posedge CK) (::-20) (::27)) - (SETUPHOLD (negedge D) (posedge CK) (::41) (::-26)) - (SETUPHOLD (posedge D) (posedge CK) (::52) (::-43)) - (SETUPHOLD (negedge SI) (posedge CK) (::34) (::-20)) - (SETUPHOLD (posedge SI) (posedge CK) (::43) (::-35)) - (SETUPHOLD (negedge SE) (posedge CK) (::44) (::-13)) - (SETUPHOLD (posedge SE) (posedge CK) (::38) (::-22)) + (HOLD (posedge RN) (posedge CK) (::91)) + (RECOVERY (posedge RN) (posedge CK) (::0.0)) + (HOLD (negedge D) (posedge CK) (::0.0)) + (HOLD (posedge D) (posedge CK) (::0.0)) + (SETUP (negedge D) (posedge CK) (::240)) + (SETUP (posedge D) (posedge CK) (::301)) + (HOLD (negedge SI) (posedge CK) (::0.0)) + (HOLD (posedge SI) (posedge CK) (::0.0)) + (SETUP (negedge SI) (posedge CK) (::178)) + (SETUP (posedge SI) (posedge CK) (::256)) + (HOLD (negedge SE) (posedge CK) (::0.0)) + (HOLD (posedge SE) (posedge CK) (::0.0)) + (SETUP (negedge SE) (posedge CK) (::230)) + (SETUP (posedge SE) (posedge CK) (::196)) ) ) (CELL (CELLTYPE "AOI22X1") - (INSTANCE g335__7654) + (INSTANCE g339__4296) (DELAY (ABSOLUTE (PORT A0 (::0.0)) (PORT A1 (::0.0)) (PORT B0 (::0.0)) (PORT B1 (::0.0)) - (IOPATH A0 Y (::47) (::48)) - (IOPATH B0 Y (::50) (::45)) - (IOPATH A1 Y (::42) (::44)) - (IOPATH B1 Y (::33) (::30)) - ) - ) - ) - (CELL - (CELLTYPE "NAND2X1") - (INSTANCE g339__8867) - (DELAY - (ABSOLUTE - (PORT A (::0.0)) - (PORT B (::0.0)) - (IOPATH A Y (::38) (::52)) - (IOPATH B Y (::26) (::40)) + (IOPATH A0 Y (::209) (::224)) + (IOPATH B0 Y (::223) (::217)) + (IOPATH A1 Y (::193) (::203)) + (IOPATH B1 Y (::132) (::136)) ) ) ) @@ -134,159 +171,152 @@ (PORT RN (::0.0)) (PORT CK (::0.0)) (PORT D (::0.0)) - (IOPATH RN Q () (::37)) - (IOPATH CK Q (::73) (::67)) + (IOPATH RN Q () (::136)) + (IOPATH CK Q (::295) (::275)) ) ) (TIMINGCHECK - (RECREM (posedge RN) (posedge CK) (::-20) (::27)) - (SETUPHOLD (negedge D) (posedge CK) (::13) (::-1)) - (SETUPHOLD (posedge D) (posedge CK) (::23) (::-17)) + (HOLD (posedge RN) (posedge CK) (::91)) + (RECOVERY (posedge RN) (posedge CK) (::0.0)) + (HOLD (negedge D) (posedge CK) (::0.0)) + (HOLD (posedge D) (posedge CK) (::0.0)) + (SETUP (negedge D) (posedge CK) (::83)) + (SETUP (posedge D) (posedge CK) (::164)) ) ) (CELL - (CELLTYPE "OAI21X1") - (INSTANCE g338__1377) + (CELLTYPE "INVX1") + (INSTANCE g341) (DELAY (ABSOLUTE - (PORT A0 (::0.0)) - (PORT A1 (::0.0)) - (PORT B0 (::0.0)) - (IOPATH A0 Y (::46) (::49)) - (IOPATH B0 Y (::22) (::37)) - (IOPATH A1 Y (::33) (::30)) + (PORT A (::0.0)) + (IOPATH A Y (::182) (::122)) ) ) ) (CELL - (CELLTYPE "NOR2X1") - (INSTANCE g342__3717) + (CELLTYPE "OAI21X1") + (INSTANCE g342__3772) (DELAY (ABSOLUTE - (PORT A (::0.0)) - (PORT B (::0.0)) - (IOPATH A Y (::42) (::37)) - (IOPATH B Y (::29) (::20)) + (PORT A0 (::0.0)) + (PORT A1 (::0.0)) + (PORT B0 (::0.0)) + (IOPATH A0 Y (::218) (::236)) + (IOPATH B0 Y (::70) (::138)) + (IOPATH A1 Y (::121) (::134)) ) ) ) (CELL - (CELLTYPE "ADDHX1") - (INSTANCE g340__4599) + (CELLTYPE "NAND2X1") + (INSTANCE g343__1474) (DELAY (ABSOLUTE (PORT A (::0.0)) (PORT B (::0.0)) - (IOPATH A CO (::49) (::39)) - (IOPATH B CO (::42) (::33)) - (IOPATH A S (::50) (::54)) - (IOPATH B S (::34) (::42)) + (IOPATH A Y (::202) (::280)) + (IOPATH B Y (::98) (::185)) ) ) ) (CELL - (CELLTYPE "AND2X1") - (INSTANCE g344__3779) + (CELLTYPE "NOR2X1") + (INSTANCE g344__4547) (DELAY (ABSOLUTE (PORT A (::0.0)) (PORT B (::0.0)) - (IOPATH A Y (::40) (::32)) - (IOPATH B Y (::46) (::36)) + (IOPATH A Y (::204) (::171)) + (IOPATH B Y (::118) (::87)) ) ) ) (CELL - (CELLTYPE "DFFRHQX1") - (INSTANCE rstn_sync_reg\[1\]) + (CELLTYPE "AOI2BB1X1") + (INSTANCE g345__9682) (DELAY (ABSOLUTE - (PORT RN (::0.0)) - (PORT CK (::0.0)) - (PORT D (::0.0)) - (IOPATH RN Q () (::20)) - (IOPATH CK Q (::53) (::49)) + (PORT A0N (::0.0)) + (PORT A1N (::0.0)) + (PORT B0 (::0.0)) + (IOPATH A1N Y (::172) (::178)) + (IOPATH B0 Y (::113) (::79)) + (IOPATH A0N Y (::131) (::136)) ) ) - (TIMINGCHECK - (RECREM (posedge RN) (posedge CK) (::-18) (::28)) - (SETUPHOLD (negedge D) (posedge CK) (::13) (::-1)) - (SETUPHOLD (posedge D) (posedge CK) (::23) (::-17)) - ) ) (CELL - (CELLTYPE "INVX1") - (INSTANCE g348) + (CELLTYPE "AND2X1") + (INSTANCE g346__2683) (DELAY (ABSOLUTE (PORT A (::0.0)) - (IOPATH A Y (::27) (::29)) + (PORT B (::0.0)) + (IOPATH A Y (::169) (::119)) + (IOPATH B Y (::227) (::176)) ) ) ) (CELL - (CELLTYPE "DFFRHQX1") - (INSTANCE rstn_sync_reg\[0\]) + (CELLTYPE "CLKAND2X3") + (INSTANCE g347__1309) (DELAY (ABSOLUTE - (PORT RN (::0.0)) - (PORT CK (::0.0)) - (PORT D (::0.0)) - (IOPATH RN Q () (::28)) - (IOPATH CK Q (::60) (::56)) + (PORT A (::0.0)) + (PORT B (::0.0)) + (IOPATH A Y (::117) (::111)) + (IOPATH B Y (::155) (::163)) ) ) - (TIMINGCHECK - (RECREM (posedge RN) (posedge CK) (::-18) (::28)) - ) ) (CELL - (CELLTYPE "INVX1") - (INSTANCE g351) + (CELLTYPE "INVX3") + (INSTANCE g348) (DELAY (ABSOLUTE (PORT A (::0.0)) - (IOPATH A Y (::31) (::33)) + (IOPATH A Y (::109) (::109)) ) ) ) (CELL - (CELLTYPE "BUFX20") - (INSTANCE fopt) + (CELLTYPE "CLKBUFX20") + (INSTANCE drc_bufs351) (DELAY (ABSOLUTE (PORT A (::0.0)) - (IOPATH A Y (::249) (::259)) + (IOPATH A Y (::479) (::558)) ) ) ) (CELL - (CELLTYPE "BUFX20") - (INSTANCE fopt400) + (CELLTYPE "CLKBUFX20") + (INSTANCE drc_bufs354) (DELAY (ABSOLUTE (PORT A (::0.0)) - (IOPATH A Y (::245) (::256)) + (IOPATH A Y (::452) (::529)) ) ) ) (CELL - (CELLTYPE "BUFX20") - (INSTANCE fopt403) + (CELLTYPE "CLKBUFX20") + (INSTANCE drc_bufs357) (DELAY (ABSOLUTE (PORT A (::0.0)) - (IOPATH A Y (::249) (::259)) + (IOPATH A Y (::452) (::527)) ) ) ) (CELL - (CELLTYPE "BUFX20") - (INSTANCE fopt406) + (CELLTYPE "CLKBUFX20") + (INSTANCE drc_bufs360) (DELAY (ABSOLUTE (PORT A (::0.0)) - (IOPATH A Y (::254) (::262)) + (IOPATH A Y (::441) (::516)) ) ) ) diff --git a/compteur/implementation/syn/netlist/compteur.syn.v b/compteur/implementation/syn/netlist/compteur.syn.v index af80e8c..1f1c14c 100644 --- a/compteur/implementation/syn/netlist/compteur.syn.v +++ b/compteur/implementation/syn/netlist/compteur.syn.v @@ -1,6 +1,6 @@ -// Generated by Cadence Genus(TM) Synthesis Solution 17.10-p007_1 -// Generated on: Sep 10 2019 10:42:42 EDT (Sep 10 2019 14:42:42 UTC) +// Generated by Cadence Genus(TM) Synthesis Solution 18.10-p003_1 +// Generated on: Oct 2 2019 14:33:08 EDT (Oct 2 2019 18:33:08 UTC) // Verification Directory fv/compteur @@ -10,36 +10,35 @@ module compteur(i_clk, i_rstn, i_en, o_cnt); wire i_clk, i_rstn, i_en; wire [3:0] o_cnt; wire [1:0] rstn_sync; - wire [3:0] cnt; - wire n_1, n_3, n_8, n_9, n_11, n_12, n_13, n_16; - wire n_17, n_18, n_19; - DFFRHQX1 \cnt_reg[3] (.RN (rstn_sync[1]), .CK (i_clk), .D (n_19), .Q - (cnt[3])); - DFFRHQX1 \cnt_reg[2] (.RN (rstn_sync[1]), .CK (i_clk), .D (n_18), .Q - (cnt[2])); - OAI31X1 g333__7837(.A0 (cnt[3]), .A1 (n_3), .A2 (n_17), .B0 (n_16), - .Y (n_19)); - XNOR2X1 g336__7557(.A (n_17), .B (cnt[2]), .Y (n_18)); - SDFFRHQX1 \cnt_reg[1] (.RN (rstn_sync[1]), .CK (i_clk), .D (cnt[1]), - .SI (n_11), .SE (n_13), .Q (cnt[1])); - AOI22X1 g335__7654(.A0 (cnt[3]), .A1 (n_12), .B0 (cnt[1]), .B1 (n_9), - .Y (n_16)); - NAND2X1 g339__8867(.A (cnt[1]), .B (n_13), .Y (n_17)); - DFFRHQX1 \cnt_reg[0] (.RN (rstn_sync[1]), .CK (i_clk), .D (n_8), .Q - (cnt[0])); - OAI21X1 g338__1377(.A0 (cnt[1]), .A1 (n_1), .B0 (n_13), .Y (n_12)); - NOR2X1 g342__3717(.A (cnt[1]), .B (n_9), .Y (n_11)); - ADDHX1 g340__4599(.A (cnt[0]), .B (i_en), .CO (n_13), .S (n_8)); - AND2X1 g344__3779(.A (n_3), .B (cnt[3]), .Y (n_9)); + wire n_0, n_1, n_2, n_3, n_4, n_5, n_6, n_7; + wire n_8, n_9, n_10, n_11, n_12, n_13; DFFRHQX1 \rstn_sync_reg[1] (.RN (i_rstn), .CK (i_clk), .D (rstn_sync[0]), .Q (rstn_sync[1])); - INVX1 g348(.A (cnt[2]), .Y (n_1)); DFFRHQX1 \rstn_sync_reg[0] (.RN (i_rstn), .CK (i_clk), .D (1'b1), .Q (rstn_sync[0])); - INVX1 g351(.A (cnt[2]), .Y (n_3)); - BUFX20 fopt(.A (cnt[2]), .Y (o_cnt[2])); - BUFX20 fopt400(.A (cnt[0]), .Y (o_cnt[0])); - BUFX20 fopt403(.A (cnt[3]), .Y (o_cnt[3])); - BUFX20 fopt406(.A (cnt[1]), .Y (o_cnt[1])); + DFFRHQX1 \cnt_reg[3] (.RN (rstn_sync[1]), .CK (i_clk), .D (n_9), .Q + (n_13)); + SDFFRHQX1 \cnt_reg[2] (.RN (rstn_sync[1]), .CK (i_clk), .D (n_6), .SI + (n_7), .SE (n_12), .Q (n_12)); + OAI31X1 g337__8780(.A0 (n_13), .A1 (n_0), .A2 (n_7), .B0 (n_8), .Y + (n_9)); + SDFFRHQX1 \cnt_reg[1] (.RN (rstn_sync[1]), .CK (i_clk), .D (n_11), + .SI (n_4), .SE (n_1), .Q (n_11)); + AOI22X1 g339__4296(.A0 (n_13), .A1 (n_5), .B0 (n_11), .B1 (n_2), .Y + (n_8)); + DFFRHQX1 \cnt_reg[0] (.RN (rstn_sync[1]), .CK (i_clk), .D (n_3), .Q + (n_10)); + INVX1 g341(.A (n_7), .Y (n_6)); + OAI21X1 g342__3772(.A0 (n_11), .A1 (n_0), .B0 (n_1), .Y (n_5)); + NAND2X1 g343__1474(.A (n_11), .B (n_1), .Y (n_7)); + NOR2X1 g344__4547(.A (n_11), .B (n_2), .Y (n_4)); + AOI2BB1X1 g345__9682(.A0N (i_en), .A1N (n_10), .B0 (n_1), .Y (n_3)); + AND2X1 g346__2683(.A (n_0), .B (n_13), .Y (n_2)); + CLKAND2X3 g347__1309(.A (i_en), .B (n_10), .Y (n_1)); + INVX3 g348(.A (n_12), .Y (n_0)); + CLKBUFX20 drc_bufs351(.A (n_11), .Y (o_cnt[1])); + CLKBUFX20 drc_bufs354(.A (n_13), .Y (o_cnt[3])); + CLKBUFX20 drc_bufs357(.A (n_12), .Y (o_cnt[2])); + CLKBUFX20 drc_bufs360(.A (n_10), .Y (o_cnt[0])); endmodule diff --git a/compteur/implementation/syn/reports/compteur.check.rpt b/compteur/implementation/syn/reports/compteur.check.rpt new file mode 100644 index 0000000..527cade --- /dev/null +++ b/compteur/implementation/syn/reports/compteur.check.rpt @@ -0,0 +1,615 @@ + + Check Design Report + -------------------- + + Long Module Names +---------------------- +No subdesign's name is greater than 1.5k in length. + + Unresolved References & Empty Modules + ------------------------------------- +No unresolved references in design 'compteur' + +No empty modules in design 'compteur' + + Unloaded Pin(s), Port(s) + ------------------------- +No unloaded sequential element in 'compteur' + +No unloaded port in 'compteur' + + Unloaded Combinational Pin(s) + ------------------------------- +No unloaded combinational element in 'compteur' + + Assigns + ------- +Total number of assign statements in design 'compteur' : 0 + + Undriven Port(s)/Pin(s) + ------------------------ +No undriven combinational pin in 'compteur' + +No undriven sequential pin in 'compteur' + +No undriven hierarchical pin in 'compteur' + +No undriven port in 'compteur' + + Multidriven Port(s)/Pin(s) +-------------------------- + +No multidriven combinational pin in 'compteur' + +No multidriven sequential pin in 'compteur' + +No multidriven hierarchical pin in 'compteur' + +No multidriven ports in 'compteur' + +No multidriven unloaded nets in 'compteur' + + Constant Pin(s) + ---------------- +No constant combinational pin(s) in design 'compteur' + +No constant sequential pin(s) in design 'compteur' + +design 'compteur' has the following constant input hierarchical pin(s) +hpin:compteur/add_57_22/B (fanout : 2) +hpin:compteur/mux_rstn_sync_39_16/in_1[0] (fanout : 1) +hpin:compteur/mux_rstn_sync_39_16/in_1[1] (fanout : 1) +hpin:compteur/mux_cnt_54_17/in_1[0] (fanout : 1) +hpin:compteur/mux_cnt_54_17/in_1[1] (fanout : 1) +hpin:compteur/mux_cnt_54_17/in_1[2] (fanout : 1) +hpin:compteur/mux_cnt_54_17/in_1[3] (fanout : 1) +hpin:compteur/mux_cnt_50_14/in_1[0] (fanout : 1) +hpin:compteur/mux_cnt_50_14/in_1[1] (fanout : 1) +hpin:compteur/mux_cnt_50_14/in_1[2] (fanout : 1) +hpin:compteur/mux_cnt_50_14/in_1[3] (fanout : 1) +hpin:compteur/mux_rstn_sync_39_16/in_0[0] (fanout : 1) +Total number of constant hierarchical pins in design 'compteur' : 12 + +No constant connected ports in design 'compteur' + + Preserved instances(s) + ---------------- +No preserved combinational instance(s) in design 'compteur' +No preserved sequential instance(s) in design 'compteur' +No preserved hierarchical instance(s) in design 'compteur' + + Physical only instances(s) + ---------------- +No physical only instance(s) in design 'compteur' + + Logical only instance(s) and linked libcells + ----------------------------------------- +No logical only instance(s) in design 'compteur' + +Libcells with no corresponding LEF +---------------------------------- +lib_cell:default_emulate_libset_max/slow_vdd1v0/ACHCONX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/ADDFHX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/ADDFHX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/ADDFHX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/ADDFHXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/ADDFX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/ADDFX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/ADDFX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/ADDFXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/ADDHX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/ADDHX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/ADDHX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/ADDHXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND2X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND2X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND2X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND2X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND2X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND2XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND3X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND3X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND3X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND3X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND3X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND3XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND4X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND4X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND4X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND4X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND4X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AND4XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/ANTENNA +lib_cell:default_emulate_libset_max/slow_vdd1v0/AO21X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AO21X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AO21X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AO21XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/AO22X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AO22X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AO22X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AO22XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI211X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI211X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI211X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI211XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI21X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI21X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI21X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI21XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI221X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI221X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI221X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI221XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI222X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI222X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI222X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI222XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI22X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI22X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI22X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI22XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI2BB1X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI2BB1X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI2BB1X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI2BB1XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI2BB2X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI2BB2X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI2BB2X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI2BB2XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI31X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI31X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI31X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI31XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI32X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI32X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI32X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI32XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI33X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI33X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI33X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/AOI33XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/BMXIX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/BMXIX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/BUFX12 +lib_cell:default_emulate_libset_max/slow_vdd1v0/BUFX16 +lib_cell:default_emulate_libset_max/slow_vdd1v0/BUFX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/BUFX20 +lib_cell:default_emulate_libset_max/slow_vdd1v0/BUFX3 +lib_cell:default_emulate_libset_max/slow_vdd1v0/BUFX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/BUFX6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/BUFX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKAND2X12 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKAND2X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKAND2X3 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKAND2X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKAND2X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKAND2X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKBUFX12 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKBUFX16 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKBUFX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKBUFX20 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKBUFX3 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKBUFX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKBUFX6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKBUFX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKINVX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKINVX12 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKINVX16 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKINVX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKINVX20 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKINVX3 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKINVX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKINVX6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKINVX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKMX2X12 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKMX2X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKMX2X3 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKMX2X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKMX2X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKMX2X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKXOR2X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKXOR2X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKXOR2X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/CLKXOR2X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DECAP10 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DECAP2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DECAP3 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DECAP4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DECAP5 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DECAP6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DECAP7 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DECAP8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DECAP9 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFHQX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFHQX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFHQX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFHQX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFNSRX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFNSRX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFNSRX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFNSRXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFQX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFQX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFQX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFQXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFRHQX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFRHQX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFRHQX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFRHQX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFRX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFRX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFRX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFRXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSHQX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSHQX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSHQX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSHQX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSRHQX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSRHQX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSRHQX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSRHQX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSRX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSRX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSRX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSRXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFSXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFTRX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFTRX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFTRX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFTRXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DFFXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/DLY1X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DLY1X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DLY2X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DLY2X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DLY3X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DLY3X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DLY4X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/DLY4X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/EDFFHQX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/EDFFHQX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/EDFFHQX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/EDFFHQX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/EDFFTRX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/EDFFTRX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/EDFFTRX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/EDFFTRXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/EDFFX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/EDFFX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/EDFFX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/EDFFXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/HOLDX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/INVX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/INVX12 +lib_cell:default_emulate_libset_max/slow_vdd1v0/INVX16 +lib_cell:default_emulate_libset_max/slow_vdd1v0/INVX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/INVX20 +lib_cell:default_emulate_libset_max/slow_vdd1v0/INVX3 +lib_cell:default_emulate_libset_max/slow_vdd1v0/INVX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/INVX6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/INVX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/INVXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/MDFFHQX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MDFFHQX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MDFFHQX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MDFFHQX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MX2X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MX2X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MX2X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MX2X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MX2X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MX2XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/MX3X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MX3X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MX3X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MX3XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/MX4X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MX4X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MX4X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MX4XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/MXI2X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MXI2X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MXI2X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MXI2X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MXI2X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MXI2XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/MXI3X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MXI3X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MXI3X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MXI3XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/MXI4X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MXI4X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MXI4X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/MXI4XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND2BX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND2BX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND2BX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND2BXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND2X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND2X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND2X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND2X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND2X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND2XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND3BX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND3BX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND3BX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND3BXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND3X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND3X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND3X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND3X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND3X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND3XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND4BBX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND4BBX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND4BBX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND4BBXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND4BX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND4BX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND4BX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND4BXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND4X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND4X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND4X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND4X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND4X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NAND4XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR2BX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR2BX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR2BX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR2BXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR2X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR2X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR2X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR2X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR2X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR2XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR3BX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR3BX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR3BX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR3BXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR3X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR3X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR3X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR3X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR3X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR3XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR4BBX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR4BBX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR4BBX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR4BBXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR4BX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR4BX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR4BX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR4BXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR4X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR4X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR4X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR4X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR4X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/NOR4XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/OA21X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OA21X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OA21X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OA21XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/OA22X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OA22X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OA22X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OA22XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI211X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI211X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI211X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI211XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI21X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI21X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI21X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI21XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI221X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI221X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI221X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI221XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI222X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI222X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI222X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI222XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI22X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI22X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI22X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI22XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI2BB1X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI2BB1X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI2BB1X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI2BB1XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI2BB2X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI2BB2X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI2BB2X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI2BB2XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI31X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI31X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI31X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI31XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI32X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI32X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI32X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI32XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI33X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI33X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI33X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OAI33XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR2X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR2X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR2X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR2X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR2X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR2XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR3X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR3X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR3X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR3X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR3X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR3XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR4X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR4X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR4X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR4X6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR4X8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/OR4XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFHQX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFHQX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFHQX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFHQX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFNSRX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFNSRX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFNSRX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFNSRXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFQX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFQX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFQX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFQXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFRHQX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFRHQX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFRHQX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFRHQX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFRX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFRX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFRX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFRXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSHQX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSHQX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSHQX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSHQX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSRHQX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSRHQX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSRHQX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSRHQX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSRX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSRX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSRX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSRXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFSXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFTRX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFTRX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFTRX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFTRXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SDFFXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/SEDFFHQX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SEDFFHQX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SEDFFHQX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SEDFFHQX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SEDFFTRX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SEDFFTRX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SEDFFTRX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SEDFFTRXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/SEDFFX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SEDFFX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SEDFFX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SEDFFXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/SMDFFHQX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SMDFFHQX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SMDFFHQX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/SMDFFHQX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TBUFX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TBUFX12 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TBUFX16 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TBUFX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TBUFX20 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TBUFX3 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TBUFX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TBUFX6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TBUFX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TBUFXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/TIEHI +lib_cell:default_emulate_libset_max/slow_vdd1v0/TIELO +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNCAX12 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNCAX16 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNCAX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNCAX20 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNCAX3 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNCAX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNCAX6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNCAX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNSRX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNSRX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNSRX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNSRXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNTSCAX12 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNTSCAX16 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNTSCAX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNTSCAX20 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNTSCAX3 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNTSCAX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNTSCAX6 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNTSCAX8 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATNXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATSRX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATSRX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATSRX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATSRXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATX1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATX2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATX4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/TLATXL +lib_cell:default_emulate_libset_max/slow_vdd1v0/XNOR2X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/XNOR2X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/XNOR2X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/XNOR2XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/XNOR3X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/XNOR3XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/XOR2X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/XOR2X2 +lib_cell:default_emulate_libset_max/slow_vdd1v0/XOR2X4 +lib_cell:default_emulate_libset_max/slow_vdd1v0/XOR2XL +lib_cell:default_emulate_libset_max/slow_vdd1v0/XOR3X1 +lib_cell:default_emulate_libset_max/slow_vdd1v0/XOR3XL + +Total number of cell(s) with only library (.lib) info : 489 + +LEF cells with no corresponding libcell +--------------------------------------- + +No physical (LEF) cells found. + + Summary + ------- + + Name Total +------------------------------------------- +Unresolved References 0 +Empty Modules 0 +Unloaded Port(s) 0 +Unloaded Sequential Pin(s) 0 +Unloaded Combinational Pin(s) 0 +Assigns 0 +Undriven Port(s) 0 +Undriven Leaf Pin(s) 0 +Undriven hierarchical pin(s) 0 +Multidriven Port(s) 0 +Multidriven Leaf Pin(s) 0 +Multidriven hierarchical Pin(s) 0 +Multidriven unloaded net(s) 0 +Constant Port(s) 0 +Constant Leaf Pin(s) 0 +Constant hierarchical Pin(s) 12 +Preserved leaf instance(s) 0 +Preserved hierarchical instance(s) 0 +Libcells with no LEF cell 489 +Physical (LEF) cells with no libcell 0 +Subdesigns with long module name 0 +Physical only instance(s) 0 +Logical only instance(s) 0 diff --git a/compteur/implementation/syn/reports/compteur.clk.rpt b/compteur/implementation/syn/reports/compteur.clk.rpt new file mode 100644 index 0000000..bf05d87 --- /dev/null +++ b/compteur/implementation/syn/reports/compteur.clk.rpt @@ -0,0 +1,45 @@ +============================================================ + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:05 pm + Module: compteur + Technology library: slow_vdd1v0 1.0 + Operating conditions: PVT_0P9V_125C + Interconnect mode: global + Area mode: timing library +============================================================ + + + Clock Description + ----------------- + + Clock Clock Source No of + Name Period Rise Fall Domain Pin/Port Registers +------------------------------------------------------------- + clk 1250.0 0.0 625.0 domain_1 i_clk 6 + + Clock Network Latency / Setup Uncertainty + ----------------------------------------- + + Network Network Source Source Setup Setup +Clock Latency Latency Latency Latency Uncertainty Uncertainty + Name Rise Fall Rise Fall Rise Fall +---------------------------------------------------------------------- +clk 0.0 0.0 0.0 0.0 100.0 100.0 + + Clock Relationship (with uncertainty & latency) + ----------------------------------------------- + + From To R->R R->F F->R F->F +----------------------------------------------- + clk clk 1150.0 525.0 525.0 1150.0 +============================================================ + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:05 pm + Module: compteur + Technology library: slow_vdd1v0 1.0 + Operating conditions: PVT_0P9V_125C + Interconnect mode: global + Area mode: timing library +============================================================ + +No clocks to report diff --git a/compteur/implementation/syn/reports/compteur.gen.area.rpt b/compteur/implementation/syn/reports/compteur.gen.area.rpt new file mode 100644 index 0000000..784ce00 --- /dev/null +++ b/compteur/implementation/syn/reports/compteur.gen.area.rpt @@ -0,0 +1,12 @@ +============================================================ + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:06 pm + Module: compteur + Operating conditions: PVT_0P9V_125C + Interconnect mode: global + Area mode: timing library +============================================================ + +Instance Module Cell Count Cell Area Net Area Total Area +-------------------------------------------------------------- +compteur 34 128.126 2.965 131.091 diff --git a/compteur/implementation/syn/reports/compteur.gen.gates.rpt b/compteur/implementation/syn/reports/compteur.gen.gates.rpt new file mode 100644 index 0000000..14105c7 --- /dev/null +++ b/compteur/implementation/syn/reports/compteur.gen.gates.rpt @@ -0,0 +1,19 @@ +============================================================ + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:06 pm + Module: compteur + Operating conditions: PVT_0P9V_125C + Interconnect mode: global + Area mode: timing library +============================================================ + + + Type Instances Area Area % +-------------------------------------- +sequential 6 0.000 0.0 +inverter 2 0.000 0.0 +logic 26 0.000 0.0 +physical_cells 0 0.000 0.0 +-------------------------------------- +total 34 0.000 0.0 + diff --git a/compteur/implementation/syn/reports/compteur.gen.power.rpt b/compteur/implementation/syn/reports/compteur.gen.power.rpt new file mode 100644 index 0000000..04f5023 --- /dev/null +++ b/compteur/implementation/syn/reports/compteur.gen.power.rpt @@ -0,0 +1,14 @@ +============================================================ + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:06 pm + Module: compteur + Operating conditions: PVT_0P9V_125C + Interconnect mode: global + Area mode: timing library +============================================================ + + Leakage Dynamic Total +Instance Cells Power(nW) Power(nW) Power(nW) +------------------------------------------------ +compteur 34 0.799 127636.633 127637.432 + diff --git a/compteur/implementation/syn/reports/compteur.gen.timing.rpt b/compteur/implementation/syn/reports/compteur.gen.timing.rpt new file mode 100644 index 0000000..f969153 --- /dev/null +++ b/compteur/implementation/syn/reports/compteur.gen.timing.rpt @@ -0,0 +1,47 @@ +============================================================ + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:06 pm + Module: compteur + Operating conditions: PVT_0P9V_125C + Interconnect mode: global + Area mode: timing library +============================================================ + + +Path 1: MET (146 ps) Setup Check with Pin cnt_reg[3]/clk->d + Group: clk + Startpoint: (R) cnt_reg[1]/clk + Clock: (R) clk + Endpoint: (R) cnt_reg[3]/d + Clock: (R) clk + + Capture Launch + Clock Edge:+ 1250 0 + Src Latency:+ 0 0 + Net Latency:+ 0 (I) 0 (I) + Arrival:= 1250 0 + + Setup:- 119 + Uncertainty:- 100 + Required Time:= 1031 + Launch Clock:- 0 + Data Path:- 885 + Slack:= 146 + +#-------------------------------------------------------------------------------------------------- +# Timing Point Flags Arc Edge Cell Fanout Load Trans Delay Arrival Instance +# (fF) (ps) (ps) (ps) Location +#-------------------------------------------------------------------------------------------------- + cnt_reg[1]/clk - - R (arrival) 6 - 0 - 0 (-,-) + cnt_reg[1]/q (u) clk->q F unmapped_d_flop 6 506.6 0 454 454 (-,-) + g173/z (u) in_1->z R unmapped_nand2 2 2.0 0 79 533 (-,-) + g162/z (u) in_0->z R unmapped_complex2 2 2.0 0 79 611 (-,-) + g160/z (u) in_0->z F unmapped_nand2 1 1.0 0 68 680 (-,-) + g154/z (u) in_1->z R unmapped_nand2 1 1.0 0 68 748 (-,-) + g152/z (u) in_0->z F unmapped_nand2 1 1.0 0 68 816 (-,-) + g151/z (u) in_0->z R unmapped_nand2 1 1.0 0 68 885 (-,-) + cnt_reg[3]/d <<< - R unmapped_d_flop 1 - - 0 885 (-,-) +#-------------------------------------------------------------------------------------------------- + +(u) : Net has unmapped pin(s). + diff --git a/compteur/implementation/syn/reports/compteur.hier_elab.rpt b/compteur/implementation/syn/reports/compteur.hier_elab.rpt new file mode 100644 index 0000000..5a8e932 --- /dev/null +++ b/compteur/implementation/syn/reports/compteur.hier_elab.rpt @@ -0,0 +1,17 @@ +============================================================ + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:05 pm + Module: compteur + Technology library: slow_vdd1v0 1.0 + Operating conditions: PVT_0P9V_125C + Interconnect mode: global + Area mode: timing library +============================================================ + + Instance Cell Count TNS Cells(same hier) TNS(same hier) +------------------------------------------------------------------------- +compteur 35 0 0 0 + add_57_22 13 0 0 + mux_cnt_50_14 4 0 0 + mux_cnt_54_17 4 0 0 + mux_rstn_sync_39_16 2 0 0 diff --git a/compteur/implementation/syn/reports/compteur.map.area.rpt b/compteur/implementation/syn/reports/compteur.map.area.rpt new file mode 100644 index 0000000..594b122 --- /dev/null +++ b/compteur/implementation/syn/reports/compteur.map.area.rpt @@ -0,0 +1,12 @@ +============================================================ + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:07 pm + Module: compteur + Operating conditions: PVT_0P9V_125C + Interconnect mode: global + Area mode: timing library +============================================================ + +Instance Module Cell Count Cell Area Net Area Total Area +-------------------------------------------------------------- +compteur 20 90.972 22.408 113.380 diff --git a/compteur/implementation/syn/reports/compteur.map.gates.rpt b/compteur/implementation/syn/reports/compteur.map.gates.rpt new file mode 100644 index 0000000..4e64e91 --- /dev/null +++ b/compteur/implementation/syn/reports/compteur.map.gates.rpt @@ -0,0 +1,40 @@ +============================================================ + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:07 pm + Module: compteur + Operating conditions: PVT_0P9V_125C + Interconnect mode: global + Area mode: timing library +============================================================ + + + Gate Instances Area Library +-------------------------------------------- +AND2X1 1 1.368 slow_vdd1v0 +AOI22X1 1 2.052 slow_vdd1v0 +AOI2BB1X1 1 2.052 slow_vdd1v0 +CLKAND2X3 1 3.078 slow_vdd1v0 +CLKBUFX20 4 32.832 slow_vdd1v0 +DFFRHQX1 4 24.624 slow_vdd1v0 +INVX1 1 0.684 slow_vdd1v0 +INVX3 1 1.368 slow_vdd1v0 +NAND2X2 1 1.710 slow_vdd1v0 +NOR2X1 1 1.026 slow_vdd1v0 +OAI21X1 1 1.710 slow_vdd1v0 +OAI31X1 1 2.052 slow_vdd1v0 +SDFFRHQX1 2 16.416 slow_vdd1v0 +-------------------------------------------- +total 20 90.972 + + + + Type Instances Area Area % +--------------------------------------- +sequential 6 41.040 45.1 +inverter 2 2.052 2.3 +buffer 4 32.832 36.1 +logic 8 15.048 16.5 +physical_cells 0 0.000 0.0 +--------------------------------------- +total 20 90.972 100.0 + diff --git a/compteur/implementation/syn/reports/compteur.map.power.rpt b/compteur/implementation/syn/reports/compteur.map.power.rpt new file mode 100644 index 0000000..451a3f2 --- /dev/null +++ b/compteur/implementation/syn/reports/compteur.map.power.rpt @@ -0,0 +1,14 @@ +============================================================ + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:07 pm + Module: compteur + Operating conditions: PVT_0P9V_125C + Interconnect mode: global + Area mode: timing library +============================================================ + + Leakage Dynamic Total +Instance Cells Power(nW) Power(nW) Power(nW) +------------------------------------------------ +compteur 20 3.850 321043.714 321047.564 + diff --git a/compteur/implementation/syn/reports/compteur.map.timing.rpt b/compteur/implementation/syn/reports/compteur.map.timing.rpt new file mode 100644 index 0000000..6a8d199 --- /dev/null +++ b/compteur/implementation/syn/reports/compteur.map.timing.rpt @@ -0,0 +1,43 @@ +============================================================ + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:07 pm + Module: compteur + Operating conditions: PVT_0P9V_125C + Interconnect mode: global + Area mode: timing library +============================================================ + + +Path 1: MET (32 ps) Setup Check with Pin cnt_reg[3]/CK->D + Group: clk + Startpoint: (R) cnt_reg[0]/CK + Clock: (R) clk + Endpoint: (F) cnt_reg[3]/D + Clock: (R) clk + + Capture Launch + Clock Edge:+ 1250 0 + Src Latency:+ 0 0 + Net Latency:+ 0 (I) 0 (I) + Arrival:= 1250 0 + + Setup:- 127 + Uncertainty:- 100 + Required Time:= 1023 + Launch Clock:- 0 + Data Path:- 991 + Slack:= 32 + +#--------------------------------------------------------------------------------------- +# Timing Point Flags Arc Edge Cell Fanout Load Trans Delay Arrival Instance +# (fF) (ps) (ps) (ps) Location +#--------------------------------------------------------------------------------------- + cnt_reg[0]/CK - - R (arrival) 6 - 0 - 0 (-,-) + cnt_reg[0]/Q - CK->Q R DFFRHQX1 3 5.9 135 295 295 (-,-) + g347__1309/Y - B->Y R CLKAND2X3 4 6.2 59 156 451 (-,-) + g342__3772/Y - B0->Y F OAI21X1 1 2.0 166 139 590 (-,-) + g339__4296/Y - A1->Y R AOI22X1 1 2.0 160 193 783 (-,-) + g337__8780/Y - B0->Y F OAI31X1 1 1.9 172 208 991 (-,-) + cnt_reg[3]/D <<< - F DFFRHQX1 1 - - 0 991 (-,-) +#--------------------------------------------------------------------------------------- + diff --git a/compteur/implementation/syn/reports/compteur.syn.area.rpt b/compteur/implementation/syn/reports/compteur.syn.area.rpt index 886e7ea..b4c5ce7 100644 --- a/compteur/implementation/syn/reports/compteur.syn.area.rpt +++ b/compteur/implementation/syn/reports/compteur.syn.area.rpt @@ -1,12 +1,12 @@ ============================================================ - Generated by: Genus(TM) Synthesis Solution 17.10-p007_1 - Generated on: Sep 10 2019 10:42:42 am + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:08 pm Module: compteur - Operating conditions: PVT_1P1V_0C + Operating conditions: PVT_0P9V_125C Interconnect mode: global Area mode: timing library ============================================================ -Instance Module Cells Cell Area Net Area Total Area ---------------------------------------------------------- -compteur 20 89 22 110 +Instance Module Cell Count Cell Area Net Area Total Area +-------------------------------------------------------------- +compteur 20 90.288 22.408 112.696 diff --git a/compteur/implementation/syn/reports/compteur.syn.gates.rpt b/compteur/implementation/syn/reports/compteur.syn.gates.rpt index 139084c..4f3621c 100644 --- a/compteur/implementation/syn/reports/compteur.syn.gates.rpt +++ b/compteur/implementation/syn/reports/compteur.syn.gates.rpt @@ -1,8 +1,8 @@ ============================================================ - Generated by: Genus(TM) Synthesis Solution 17.10-p007_1 - Generated on: Sep 10 2019 10:42:42 am + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:08 pm Module: compteur - Operating conditions: PVT_1P1V_0C + Operating conditions: PVT_0P9V_125C Interconnect mode: global Area mode: timing library ============================================================ @@ -10,30 +10,31 @@ Gate Instances Area Library -------------------------------------------- -ADDHX1 1 3.762 fast_vdd1v0 -AND2X1 1 1.368 fast_vdd1v0 -AOI22X1 1 2.052 fast_vdd1v0 -BUFX20 4 32.832 fast_vdd1v0 -DFFRHQX1 5 30.780 fast_vdd1v0 -INVX1 2 1.368 fast_vdd1v0 -NAND2X1 1 1.026 fast_vdd1v0 -NOR2X1 1 1.026 fast_vdd1v0 -OAI21X1 1 1.710 fast_vdd1v0 -OAI31X1 1 2.052 fast_vdd1v0 -SDFFRHQX1 1 8.208 fast_vdd1v0 -XNOR2X1 1 2.394 fast_vdd1v0 +AND2X1 1 1.368 slow_vdd1v0 +AOI22X1 1 2.052 slow_vdd1v0 +AOI2BB1X1 1 2.052 slow_vdd1v0 +CLKAND2X3 1 3.078 slow_vdd1v0 +CLKBUFX20 4 32.832 slow_vdd1v0 +DFFRHQX1 4 24.624 slow_vdd1v0 +INVX1 1 0.684 slow_vdd1v0 +INVX3 1 1.368 slow_vdd1v0 +NAND2X1 1 1.026 slow_vdd1v0 +NOR2X1 1 1.026 slow_vdd1v0 +OAI21X1 1 1.710 slow_vdd1v0 +OAI31X1 1 2.052 slow_vdd1v0 +SDFFRHQX1 2 16.416 slow_vdd1v0 -------------------------------------------- -total 20 88.578 +total 20 90.288 Type Instances Area Area % --------------------------------------- -sequential 6 38.988 44.0 -inverter 2 1.368 1.5 -buffer 4 32.832 37.1 -logic 8 15.390 17.4 +sequential 6 41.040 45.5 +inverter 2 2.052 2.3 +buffer 4 32.832 36.4 +logic 8 14.364 15.9 physical_cells 0 0.000 0.0 --------------------------------------- -total 20 88.578 100.0 +total 20 90.288 100.0 diff --git a/compteur/implementation/syn/reports/compteur.syn.power.rpt b/compteur/implementation/syn/reports/compteur.syn.power.rpt index 89770e4..4c2df90 100644 --- a/compteur/implementation/syn/reports/compteur.syn.power.rpt +++ b/compteur/implementation/syn/reports/compteur.syn.power.rpt @@ -1,14 +1,14 @@ ============================================================ - Generated by: Genus(TM) Synthesis Solution 17.10-p007_1 - Generated on: Sep 10 2019 10:42:42 am + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:08 pm Module: compteur - Operating conditions: PVT_1P1V_0C + Operating conditions: PVT_0P9V_125C Interconnect mode: global Area mode: timing library ============================================================ - Leakage Dynamic Total -Instance Cells Power(nW) Power(nW) Power(nW) -------------------------------------------------- -compteur 20 7.609 1066410.418 1066418.026 + Leakage Dynamic Total +Instance Cells Power(nW) Power(nW) Power(nW) +------------------------------------------------ +compteur 20 3.823 320889.077 320892.900 diff --git a/compteur/implementation/syn/reports/compteur.syn.timing.rpt b/compteur/implementation/syn/reports/compteur.syn.timing.rpt index 9756f5c..8971299 100644 --- a/compteur/implementation/syn/reports/compteur.syn.timing.rpt +++ b/compteur/implementation/syn/reports/compteur.syn.timing.rpt @@ -1,40 +1,43 @@ ============================================================ - Generated by: Genus(TM) Synthesis Solution 17.10-p007_1 - Generated on: Sep 10 2019 10:42:42 am + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:08 pm Module: compteur - Operating conditions: PVT_1P1V_0C + Operating conditions: PVT_0P9V_125C Interconnect mode: global Area mode: timing library ============================================================ -Path 1: MET (246 ps) Late External Delay Assertion at pin o_cnt[1] +Path 1: MET (36 ps) Setup Check with Pin cnt_reg[3]/CK->D Group: clk - Startpoint: (R) cnt_reg[1]/CK + Startpoint: (R) cnt_reg[0]/CK Clock: (R) clk - Endpoint: (F) o_cnt[1] + Endpoint: (F) cnt_reg[3]/D Clock: (R) clk Capture Launch - Clock Edge:+ 1000 0 + Clock Edge:+ 1250 0 Src Latency:+ 0 0 Net Latency:+ 0 (I) 0 (I) - Arrival:= 1000 0 + Arrival:= 1250 0 - Output Delay:- 300 + Setup:- 127 Uncertainty:- 100 - Required Time:= 600 + Required Time:= 1023 Launch Clock:- 0 - Data Path:- 354 - Slack:= 246 + Data Path:- 987 + Slack:= 36 -#-------------------------------------------------------------------------------- -# Timing Point Flags Arc Edge Cell Fanout Load Trans Delay Arrival -# (fF) (ps) (ps) (ps) -#-------------------------------------------------------------------------------- - cnt_reg[1]/CK - - R (arrival) 6 - 0 - 0 - cnt_reg[1]/Q - CK->Q F SDFFRHQX1 6 9.9 67 85 85 - fopt406/Y - A->Y F BUFX20 1 1001.6 392 262 347 - o_cnt[1] <<< - F (port) - - - 7 354 -#-------------------------------------------------------------------------------- +#--------------------------------------------------------------------------------------- +# Timing Point Flags Arc Edge Cell Fanout Load Trans Delay Arrival Instance +# (fF) (ps) (ps) (ps) Location +#--------------------------------------------------------------------------------------- + cnt_reg[0]/CK - - R (arrival) 6 - 0 - 0 (-,-) + cnt_reg[0]/Q - CK->Q R DFFRHQX1 3 5.9 135 295 295 (-,-) + g347__1309/Y - B->Y R CLKAND2X3 4 5.8 56 155 449 (-,-) + g342__3772/Y - B0->Y F OAI21X1 1 2.0 165 138 587 (-,-) + g339__4296/Y - A1->Y R AOI22X1 1 2.0 159 193 780 (-,-) + g337__8780/Y - B0->Y F OAI31X1 1 1.9 172 207 987 (-,-) + cnt_reg[3]/D <<< - F DFFRHQX1 1 - - 0 987 (-,-) +#--------------------------------------------------------------------------------------- diff --git a/compteur/implementation/syn/reports/compteur.syn.timing_lint.rpt b/compteur/implementation/syn/reports/compteur.timing_lint.rpt similarity index 56% rename from compteur/implementation/syn/reports/compteur.syn.timing_lint.rpt rename to compteur/implementation/syn/reports/compteur.timing_lint.rpt index d2e377e..e7adf33 100644 --- a/compteur/implementation/syn/reports/compteur.syn.timing_lint.rpt +++ b/compteur/implementation/syn/reports/compteur.timing_lint.rpt @@ -1,13 +1,29 @@ ============================================================ - Generated by: Genus(TM) Synthesis Solution 17.10-p007_1 - Generated on: Sep 10 2019 10:42:40 am + Generated by: Genus(TM) Synthesis Solution 18.10-p003_1 + Generated on: Oct 02 2019 02:33:05 pm Module: compteur - Technology library: fast_vdd1v0 1.0 - Operating conditions: PVT_1P1V_0C + Technology library: slow_vdd1v0 1.0 + Operating conditions: PVT_0P9V_125C Interconnect mode: global Area mode: timing library ============================================================ +------------------------------------------------------------------------------- +Timing exceptions with no effect + +The following timing exceptions are not currently affecting timing in the +design. Either no paths in the design satisfy the exception's path +specification, or all paths that satisfy the path specification also satisfy an +exception with a higher priority. You can improve runtime and memory usage by +removing these exceptions if they are not truly needed. To see if there is a +path in the design that satisfies the path specification for an exception, or +to see what other exception is overriding an exception because of priority, use +the command: + report timing -paths [eval [::legacy::get_attribute paths <exception>]] + +exception:compteur/timing.sdc_line_28 +------------------------------------------------------------------------------- + Lint summary Unconnected/logic driven clocks 0 @@ -20,7 +36,7 @@ Lint summary Paths constrained with different clocks 0 Loop-breaking cells for combinational feedback 0 Nets with multiple drivers 0 - Timing exceptions with no effect 0 + Timing exceptions with no effect 1 Suspicious multi_cycle exceptions 0 Pins/ports with conflicting case constants 0 Inputs without clocked external delays 0 @@ -29,4 +45,4 @@ Lint summary Outputs without external load 0 Exceptions with invalid timing start-/endpoints 0 - Total: 0 + Total: 1 diff --git a/compteur/scripts/pnr.tcl b/compteur/scripts/pnr.tcl index 66b3198..e094ac8 100644 --- a/compteur/scripts/pnr.tcl +++ b/compteur/scripts/pnr.tcl @@ -1,14 +1,14 @@ #----------------------------------------------------------------------------- -# Project : Tutoriels - Conception de circuits intégrés numériques +# Project Tutoriels - Conception de circuits intégrés numériques #----------------------------------------------------------------------------- -# File : pnr.tcl -# Authors : Mickael Fiorentino <mickael.fiorentino@polymtl.ca> -# Lab : GRM - Polytechnique Montréal -# Date : <2019-07-24 Wed> +# File pnr.tcl +# Author Mickael Fiorentino <mickael.fiorentino@polymtl.ca> +# Lab GRM - Polytechnique Montreal +# Date <2019-09-10 Tue> #----------------------------------------------------------------------------- -# Description: Placement et routage du compteur BCD avec Innovus -# HOW-TO : source setup.csh && cd implementation/pnr && innovus -# : innovus -files ${SCRIPTS_DIR}/pnr.tcl +# Brief Placement & Routage du mini-mips avec Innovus +# Usage cd implementation +# innovus -files ../scripts/syn.tcl #----------------------------------------------------------------------------- package require Tcl 8.5 @@ -26,13 +26,14 @@ set DO_IO 1 set DO_PLACE 1 set DO_CTS 1 set DO_ROUTE 1 -set DO_CHECK 1 set DO_SAVE 1 set DESIGN compteur -# Create directories if they do not exists +# Répertoires de destination file mkdir $::env(PNR_REP_DIR) $::env(PNR_NET_DIR) +set OPT_DIR $::env(PNR_DIR)/opt +set TIM_DIR $::env(PNR_DIR)/timing #----------------------------------------------------------------------------- # INIT @@ -40,12 +41,12 @@ file mkdir $::env(PNR_REP_DIR) $::env(PNR_NET_DIR) if { $DO_INIT } { set init_oa_ref_lib [list gsclib045_tech gsclib045 giolib045] - set init_mmmc_file $::env(CONST_DIR)/mmmc.tcl set init_verilog $::env(SYN_NET_DIR)/${DESIGN}.syn.v set init_design_settop 1 set init_top_cell $DESIGN set init_gnd_net VSS set init_pwr_net VDD + set init_mmmc_file $::env(CONST_DIR)/mmmc.tcl init_design } @@ -94,7 +95,6 @@ if { $DO_POWER } { #----------------------------------------------------------------------------- if { $DO_IO } { - # Nets set top_nets [list [get_nets -quiet "i_clk"] \ [get_nets -quiet "i_rstn"] \ [get_nets -quiet "i_en"]] @@ -125,11 +125,18 @@ if { $DO_IO } { #----------------------------------------------------------------------------- if { $DO_PLACE } { - setDesignMode -process 45 + # Timing + timeDesign -prePlace -outDir ${TIM_DIR} + + # Placement setPlaceMode -place_global_reorder_scan false deleteAllScanCells placeDesign - report_timing > $::env(PNR_REP_DIR)/${DESIGN}.place.timing.rpt + + # Netlist + saveNetlist $::env(PNR_NET_DIR)/${DESIGN}.place.v + write_sdf -version 2.1 -target_application verilog -interconn noport \ + $::env(PNR_NET_DIR)/${DESIGN}.place.sdf } #----------------------------------------------------------------------------- @@ -137,8 +144,6 @@ if { $DO_PLACE } { #----------------------------------------------------------------------------- if { $DO_CTS } { - optDesign -preCTS -outDir $::env(PNR_REP_DIR)/cts - set_ccopt_property buffer_cells \ [list CLKBUFX20 CLKBUFX16 CLKBUFX12 CLKBUFX8 CLKBUFX6 CLKBUFX4 CLKBUFX3 CLKBUFX2] @@ -147,10 +152,18 @@ if { $DO_CTS } { set_ccopt_property use_inverters true - ccopt_design -cts -outDir $::env(PNR_REP_DIR)/cts - optDesign -postCTS -outDir $::env(PNR_REP_DIR)/cts + # Synthèse de l'arbre d'horloge + optDesign -preCTS -outDir ${OPT_DIR} + ccopt_design -cts -outDir ${OPT_DIR} + optDesign -postCTS -outDir ${OPT_DIR} - report_timing > $::env(PNR_REP_DIR)/${DESIGN}.cts.timing.rpt + # Timing + timeDesign -postCTS -outDir ${TIM_DIR} + + # Netlist + saveNetlist $::env(PNR_NET_DIR)/${DESIGN}.cts.v + write_sdf -version 2.1 -target_application verilog -interconn noport \ + $::env(PNR_NET_DIR)/${DESIGN}.cts.sdf } #----------------------------------------------------------------------------- @@ -158,29 +171,36 @@ if { $DO_CTS } { #----------------------------------------------------------------------------- if { $DO_ROUTE } { - setNanoRouteMode -quiet -routeWithTimingDriven true - routeDesign -globalDetail - + # Ajout des filler cells addFiller -cell FILL32 FILL16 FILL8 FILL4 FILL2 FILL1 -prefix FILLER -} -#----------------------------------------------------------------------------- -# CHECK -#----------------------------------------------------------------------------- -if { $DO_CHECK } { + # Routage timing- et signal-integrity- driven + setNanoRouteMode -routeWithTimingDriven true + setNanoRouteMode -routeWithSIDriven true + routeDesign -GlobalDetail - # DRC + # Extraction des capacités parasites + setExtractRCMode -engine postRoute + extractRC + + # Optimisations post-route + setAnalysisMode -analysisType onChipVariation + setAnalysisMode -cppr both + optDesign -postRoute -setup -hold -outDir ${OPT_DIR} + + # Verifications physiques set_verify_drc_mode -report $::env(PNR_REP_DIR)/${DESIGN}.drc.rpt verify_drc - - # Connectivity verifyConnectivity -type all -error 1000 -warning 50 -report $::env(PNR_REP_DIR)/${DESIGN}.con.rpt # Timing - setAnalysisMode -analysisType onChipVariation - reset_parasitics - extractRC + timeDesign -postRoute -outDir ${TIM_DIR} report_timing > $::env(PNR_REP_DIR)/${DESIGN}.timing.rpt + + # Netlist + saveNetlist $::env(PNR_NET_DIR)/${DESIGN}.route.v + write_sdf -version 2.1 -target_application verilog -interconn noport \ + $::env(PNR_NET_DIR)/${DESIGN}.route.sdf } #----------------------------------------------------------------------------- @@ -191,13 +211,5 @@ if { $DO_SAVE } { if {! [file isdirectory $::env(PNR_OA_LIB)] } { createLib $::env(PNR_OA_LIB) -attachTech gsclib045_tech } - saveDesign -cellview "$::env(PNR_OA_LIB) $DESIGN layout" - - saveNetlist $::env(PNR_NET_DIR)/${DESIGN}.pnr.v - saveNetlist -phys $::env(PNR_NET_DIR)/${DESIGN}.pnr.phy.v - - write_sdf -view av_fast -target_application verilog -interconn noport \ - -recrem split -setuphold split -adjust_setuphold_for_zero_hold_slack \ - $::env(PNR_NET_DIR)/${DESIGN}.pnr.sdf } diff --git a/compteur/scripts/pwr.tcl b/compteur/scripts/pwr.tcl index be82ae3..4477e1f 100644 --- a/compteur/scripts/pwr.tcl +++ b/compteur/scripts/pwr.tcl @@ -1,14 +1,14 @@ #----------------------------------------------------------------------------- -# Project : Tutoriels - Conception de circuits intégrés numériques +# Project Tutoriels - Conception de circuits intégrés numériques #----------------------------------------------------------------------------- -# File : pwr.tcl -# Authors : Mickael Fiorentino <mickael.fiorentino@polymtl.ca> -# Lab : GRM - Polytechnique Montréal -# Date : <2019-07-24 Wed> +# File pwr.tcl +# Authors Mickael Fiorentino <mickael.fiorentino@polymtl.ca> +# Lab GRM - Polytechnique Montréal +# Date <2019-10-02 Wed> #----------------------------------------------------------------------------- -# Description: Estimation du puissance du compteur BCD avec Voltus -# HOW-TO : source setup.csh && cd implementation/pnr -# : > voltus -files ${SCRIPTS_DIR}/pwr.tcl +# Brief Estimation du puissance du compteur BCD avec Voltus +# Usage source setup.csh && cd implementation/pnr +# voltus -files ${SCRIPTS_DIR}/pwr.tcl #----------------------------------------------------------------------------- package require Tcl 8.5 @@ -20,24 +20,33 @@ if { ![info exist ::env(PROJECT_HOME)] } { # CONFIG #----------------------------------------------------------------------------- set DO_INIT 1 -set DO_STAT 0 +set DO_STAT 1 set DO_DYN 1 set DESIGN compteur +set DUT compteur_tb/dut +set PERIOD 1250 set VCD_START 0 -set VCD_END 39 +set VCD_END 54375 #----------------------------------------------------------------------------- # INIT #----------------------------------------------------------------------------- if { $DO_INIT } { + # Unités par défaut + set_time_unit -picoseconds + + # Importation du layout read_design -cellview "$::env(PNR_OA_LIB) $DESIGN layout" -physical_data + # Mise à jour du timing à partir du mmmc + set_analysis_view -update_timing + + # Configuration set_pg_library_mode -extraction_tech_file $::env(BE_QRC_LIB)/gpdk045.tch -celltype techonly \ - -default_area_cap 0.5 -power_pins {VDD 1.1} -ground_pins VSS \ + -power_pins {VDD 1.1} -ground_pins VSS \ -decap_cells DECAP* -filler_cells FILL* \ - -current_distribution propagation generate_pg_library -output $::env(PNR_REP_DIR)/power } @@ -49,19 +58,16 @@ if { $DO_STAT } { set rep ${DESIGN}.stat - # Static mode + # Configuration statique set_power_analysis_mode -reset set_power_analysis_mode -method static \ - -analysis_view av_fast \ -corner max \ -create_binary_db false \ - -write_static_currents false \ - -honor_negative_energy true \ - -ignore_control_signals true + -write_static_currents false - # Activity + # Activité moyenne set_default_switching_activity -reset - set_default_switching_activity -input_activity 0.2 -period 1.0 + set_default_switching_activity -input_activity 0.2 -period $PERIOD } #----------------------------------------------------------------------------- @@ -71,25 +77,22 @@ if { $DO_DYN } { set rep ${DESIGN}.dyn - # Reset mode + # Configuration dynamique set_power_analysis_mode -reset - set_default_switching_activity -reset - - # Set dynamic mode set_power_analysis_mode -method dynamic_vectorbased \ + -enable_rtl_vectorbased_dynamic_analysis true \ -power_grid_library $::env(PNR_REP_DIR)/power/techonly.cl \ - -analysis_view av_fast -corner max \ + -corner max \ -report_stat true \ - -enable_rtl_vectorbased_dynamic_analysis true \ -create_binary_db true \ - -disable_static false \ -write_static_currents true \ -report_missing_flop_outputs false - # Read VCD activity file + # Activité issue du fichier VCD + set_default_switching_activity -reset read_activity_file -reset - read_activity_file -format VCD $::env(SIM_PNR_DIR)/${DESIGN}.pnr.vcd \ - -scope ${DESIGN}_tb/dut -start $VCD_START -end $VCD_END + read_activity_file -format VCD $::env(SIM_DIR)/pnr/${DESIGN}.vcd \ + -scope $DUT -start $VCD_START -end $VCD_END } # Report power diff --git a/compteur/scripts/sim.tcl b/compteur/scripts/sim.tcl index c2abd9e..6b6de4d 100644 --- a/compteur/scripts/sim.tcl +++ b/compteur/scripts/sim.tcl @@ -20,19 +20,16 @@ if { ![info exist ::env(PROJECT_HOME)] } { #----------------------------------------------------------------------------- # CONFIG #----------------------------------------------------------------------------- -set DO_BEH 0; # Simulation du modèle comportemental -set DO_SYN 0; # Smulation de la netlist post-synthèse -set DO_PNR 1; # Simulation de la netlist post-implémentation -set DO_RUN 1; # 0=Compilation; 1=Compilation + Simulation -set DO_WAVE 0; # Chargement des chronogrammes -set DO_VCD 1; # Enregistrement de l'activité dans un fichier vcd +set DO_BEH 0; # Modèle comportemental +set DO_SYN 0; # Netlist post-synthèse +set DO_PNR 1; # Netlist post-placement-routage +set DO_SIM 1; # 0=Compilation; 1=Compilation + Simulation set top compteur -set tb ${top}_tb +set tb compteur_tb set dut dut set work work set lib gpdk45 -set srcD $::env(PROJECT_HOME)/sources if { $DO_BEH } { set workD $::env(SIM_DIR)/beh } if { $DO_SYN } { set workD $::env(SIM_DIR)/syn } @@ -43,53 +40,51 @@ set wlf ${workD}/${top}.wlf set vcd ${workD}/${top}.vcd set wave ${workD}/${top}.wave.do -if { $DO_SYN } { set net $::env(SYN_NET_DIR)/${top}.syn } -if { $DO_PNR } { set net $::env(PNR_NET_DIR)/${top}.pnr } +if { $DO_SYN } { set net $::env(SYN_NET_DIR)/${top}.syn } +if { $DO_PNR } { set net $::env(PNR_NET_DIR)/${top}.route } #----------------------------------------------------------------------------- -# COMPILATION & SIMULATION +# COMPILATION #----------------------------------------------------------------------------- -# Create simulation directory if it does not exists +# Création du répertoire de travail if { ![file exist $workD] } { file mkdir $workD } -# Copy the default modelsim.ini & Map the technology library -if { ![file exist "./modelsim.ini"] } { - vmap -c - vmap $lib $::env(SIMLIB_VER) +# Mise à jour du modelsim.ini avec les librairies GPDK45 +if { [file exist "./modelsim.ini"] } { + file delete "./modelsim.ini" } +vmap -c +vmap $lib $::env(KIT_SIMLIB)/gsclib045_slow -# Update Work Library +# Work if { [file exist ${workD}/${work}] } { vdel -all -lib ${workD}/${work} } vlib ${workD}/${work} vmap ${work} ${workD}/${work} -# Behavioral +# Model if { $DO_BEH } { + vcom -2008 -work $work $::env(SRC_DIR)/${top}.vhd + vcom -2008 -work $work $::env(SRC_DIR)/${tb}.vhd - vcom -2008 -work $work ${srcD}/${top}.vhd - vcom -2008 -work $work ${srcD}/${tb}.vhd - vsim -t ps -voptargs=+acc -logfile $log -wlf $wlf ${work}.${tb} - -# Timing +# Netlist } elseif { $DO_SYN || $DO_PNR } { - vlog -work $work ${net}.v - vcom -2008 -work $work ${srcD}/${tb}.vhd - vsim -t ps -voptargs=+acc -logfile $log -wlf $wlf -L $lib -sdfmax ${dut}=${net}.sdf ${work}.${tb} + vcom -2008 -work $work $::env(SRC_DIR)/${tb}.vhd } #----------------------------------------------------------------------------- -# RUN +# SIMULATION #----------------------------------------------------------------------------- -if { $DO_RUN } { - if { $DO_WAVE } { do $wave } - if { $DO_VCD } { vcd file $vcd; vcd add -r /${tb}/${dut}/* } - run -all - if { $DO_VCD } { vcd flush } +if { $DO_SIM && $DO_BEH } { + vsim -c -t ps -voptargs=+acc -do run.do -logfile $log -wlf $wlf ${work}.${tb} +} + +if { $DO_SIM && ($DO_SYN || $DO_PNR) } { + vsim -c -t ps -voptargs=+acc -do run.do -logfile $log -wlf $wlf -L $lib -sdfmax ${dut}=${net}.sdf ${work}.${tb} } diff --git a/compteur/scripts/syn.tcl b/compteur/scripts/syn.tcl index 34a6068..1989c51 100644 --- a/compteur/scripts/syn.tcl +++ b/compteur/scripts/syn.tcl @@ -1,14 +1,14 @@ #----------------------------------------------------------------------------- -# Project : Tutoriels - Conception de circuits intégrés numériques +# Project Tutoriels - Conception de circuits intégrés numériques #----------------------------------------------------------------------------- -# File : syn.tcl -# Authors : Mickael Fiorentino <mickael.fiorentino@polymtl.ca> -# Lab : GRM - Polytechnique Montréal -# Date : <2019-07-24 Wed> +# File syn.tcl +# Author Mickael Fiorentino <mickael.fiorentino@polymtl.ca> +# Lab GRM - Polytechnique Montreal +# Date <2019-10-01 Tue> #----------------------------------------------------------------------------- -# Description: Script pour la synthèse du compteur BCD avec Genus -# HOW-TO : > source setup.csh && cd implementation/syn -# : > genus -files ${SCRIPTS_DIR}/syn.tcl +# Brief Synthèse du compteur avec Genus +# Usage cd implementation +# genus -files ../scripts/syn.tcl #----------------------------------------------------------------------------- package require Tcl 8.5 @@ -25,59 +25,80 @@ set DO_SDC 1 set DO_SYN 1 set DO_REPORTS 1 -set DESIGN compteur -set SYN_EFFORT high; # low | medium | high | express +set DESIGN compteur; # Top-level +set SYN_EFFORT high; # low | medium | high | express # Create directories if they do not exists file mkdir $::env(SYN_REP_DIR) $::env(SYN_NET_DIR) #----------------------------------------------------------------------------- -# INIT +# CONFIG #----------------------------------------------------------------------------- -if { $DO_INIT } { +set DO_INIT 1 +set DO_ELAB 1 +set DO_SDC 1 +set DO_SYN 1 - # Paramètres de base - set_db / .information_level 9; # Verbosité: 1-11 - set_db / .hdl_vhdl_read_version 2008; # Standard VHDL - set_db / .max_cpus_per_server 4; # Numbre max de thread utilisable par genus +set DESIGN compteur; # Top-level +set SYN_EFFORT high; # low | medium | high | express - # Sources - set_db / .init_hdl_search_path [list $::env(SRC_DIR)] +# Création des répertoires de destination +file mkdir $::env(SYN_REP_DIR) $::env(SYN_NET_DIR) - # Librairies: Timing + Standard Cells + Interconnect - set_db / .init_lib_search_path [list $::env(FE_TIM_LIB) \ - $::env(BE_QRC_LIB) \ - $::env(BE_LEF_LIB) ] +#----------------------------------------------------------------------------- +# SAVE +#----------------------------------------------------------------------------- +proc save { basename } { + report_timing > $::env(SYN_REP_DIR)/${basename}.timing.rpt + report_area > $::env(SYN_REP_DIR)/${basename}.area.rpt + report_gates > $::env(SYN_REP_DIR)/${basename}.gates.rpt + report_power > $::env(SYN_REP_DIR)/${basename}.power.rpt +} - # Librairies "fast" - read_libs "fast_vdd1v0_basicCells.lib" - read_physical -lef "gsclib045_tech.lef" - read_qrc "gpdk045.tch" +#----------------------------------------------------------------------------- +# INIT +#----------------------------------------------------------------------------- +if { $DO_INIT } { - set_db / .interconnect_mode ple; # wireload ou ple (Physical Layout Estimators) + # Paramètres + set_db information_level 11; # Verbosité: 1-11 + set_db max_cpus_per_server 8; # Numbre max de thread utilisable + set_db hdl_vhdl_read_version 2008; # Standard VHDL + set_db hdl_error_on_blackbox true; # Éviter les black-box + set_db hdl_error_on_latch true; # Éviter les latch + + set_db init_hdl_search_path [list $::env(SRC_DIR)] + set_db init_lib_search_path [list $::env(FE_TIM_LIB) \ + $::env(BE_LEF_LIB) \ + $::env(BE_QRC_LIB)] + + # Librairies de timing: max=setup, min=hold + read_libs -max_libs slow_vdd1v0_basicCells.lib -min_libs fast_vdd1v0_basicCells.lib + + # Libraries physiques: stdcells + interconnect + read_physical -lef gsclib045_tech.lef + read_qrc gpdk045.tch + set_db interconnect_mode ple; # wireload | ple (Physical Layout Estimators) } #----------------------------------------------------------------------------- # ELABORATION #----------------------------------------------------------------------------- -set sources [list compteur.vhd] - if { $DO_ELAB } { - # Paramètres de compilation - set_db / .hdl_error_on_blackbox true - set_db / .hdl_error_on_latch true - # Compilation - foreach src $sources { - read_hdl -vhdl $src - } + read_hdl -vhdl [list compteur.vhd] + + # Conserver les compteurs de performance + set_db hdl_preserve_unused_flop true # Élaboration elaborate $DESIGN - # Vérifications - check_design -all + # Rapports + check_design -all > $::env(SYN_REP_DIR)/${DESIGN}.check.rpt + report_module -depth 3 > $::env(SYN_REP_DIR)/${DESIGN}.hier_elab.rpt + write_hdl > $::env(SYN_NET_DIR)/${DESIGN}.elab.v } #----------------------------------------------------------------------------- @@ -88,44 +109,34 @@ if { $DO_SDC } { # Contraintes de timing read_sdc $::env(CONST_DIR)/timing.sdc - # Vérification des contraintes de timing - report_timing -lint > $::env(SYN_REP_DIR)/${DESIGN}.syn.timing_lint.rpt + # Rapports + report_timing -lint -verbose > $::env(SYN_REP_DIR)/${DESIGN}.timing_lint.rpt + report_clocks > $::env(SYN_REP_DIR)/${DESIGN}.clk.rpt + report_clocks -generated >> $::env(SYN_REP_DIR)/${DESIGN}.clk.rpt } #----------------------------------------------------------------------------- -# SYNTHESE +# SYNTHÈSE #----------------------------------------------------------------------------- if { $DO_SYN } { - # Ungroup - ungroup -all -simple - # Synthèse générique - set_db / .syn_generic_effort ${SYN_EFFORT} - syn_generic $DESIGN + set_db syn_generic_effort $SYN_EFFORT + syn_generic ${DESIGN} + save ${DESIGN}.gen - # Mapping des cellules standards - set_db / .syn_map_effort ${SYN_EFFORT} - syn_map $DESIGN + # Map + set_db syn_map_effort $SYN_EFFORT + syn_map ${DESIGN} + save ${DESIGN}.map # Optimisations - set_db / .syn_opt_effort ${SYN_EFFORT} - syn_opt $DESIGN -} - -#----------------------------------------------------------------------------- -# RAPPORTS & NETLIST -#----------------------------------------------------------------------------- -if { $DO_REPORTS } { - - # Rapports - report_timing > $::env(SYN_REP_DIR)/${DESIGN}.syn.timing.rpt - report_area > $::env(SYN_REP_DIR)/${DESIGN}.syn.area.rpt - report_gates > $::env(SYN_REP_DIR)/${DESIGN}.syn.gates.rpt - report_power > $::env(SYN_REP_DIR)/${DESIGN}.syn.power.rpt + set_db syn_opt_effort $SYN_EFFORT + syn_opt ${DESIGN} + save ${DESIGN}.syn # Netlist - write_hdl > $::env(SYN_NET_DIR)/${DESIGN}.syn.v - write_sdf > $::env(SYN_NET_DIR)/${DESIGN}.syn.sdf write_sdc > $::env(CONST_DIR)/${DESIGN}.syn.sdc + write_hdl > $::env(SYN_NET_DIR)/${DESIGN}.syn.v + write_sdf -nonegchecks -setuphold split -version 2.1 > $::env(SYN_NET_DIR)/${DESIGN}.syn.sdf } diff --git a/compteur/setup.csh b/compteur/setup.csh index 56fd162..141eacc 100644 --- a/compteur/setup.csh +++ b/compteur/setup.csh @@ -2,16 +2,16 @@ #----------------------------------------------------------------------------- # Project : Tutoriels - Conception de circuits intégrés numériques #----------------------------------------------------------------------------- -# File : setup.csh -# Authors : Mickael Fiorentino <mickael.fiorentino@polymtl.ca> -# Lab : GRM - Polytechnique Montréal -# Date : <2019-07-24 Wed> +# File setup.csh +# Authors Mickael Fiorentino <mickael.fiorentino@polymtl.ca> +# Lab GRM - Polytechnique Montréal +# Date <2019-10-01 Tue> #----------------------------------------------------------------------------- -# Description: Script de configuration de l'environnement -# + Environnement CMC -# + Hiérarchie du projet -# + kit GPDK045 -# + Outils Cadence & Mentor +# Brief Script de configuration de l'environnement +# - Environnement CMC +# - Hiérarchie du projet +# - kit GPDK45 +# - Outils Cadence & Mentor #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- @@ -39,10 +39,9 @@ source ${CMC_CONFIG} #----------------------------------------------------------------------------- setenv SRC_DIR ${PROJECT_HOME}/sources setenv CONST_DIR ${PROJECT_HOME}/constraints +setenv SCRIPTS_DIR ${PROJECT_HOME}/scripts setenv SIM_DIR ${PROJECT_HOME}/simulation setenv IMP_DIR ${PROJECT_HOME}/implementation -setenv DOC_DIR ${PROJECT_HOME}/../doc -setenv SCRIPTS_DIR ${PROJECT_HOME}/scripts setenv SYN_DIR ${IMP_DIR}/syn setenv SYN_NET_DIR ${SYN_DIR}/netlist setenv SYN_REP_DIR ${SYN_DIR}/reports @@ -55,15 +54,11 @@ setenv PNR_OA_LIB liboa #----------------------------------------------------------------------------- # CONFIGURATION DU KIT GPDK045 #----------------------------------------------------------------------------- -setenv KIT_HOME ${CMC_HOME}/kits/GPDK45 -setenv KIT_SCLIB ${KIT_HOME}/gsclib045 -setenv KIT_IOLIB ${KIT_HOME}/giolib045 -setenv KIT_GPDK ${KIT_HOME}/gpdk045 - -# Simulations -setenv SIMLIB ${KIT_HOME}/simlib -setenv SIMLIB_VHD ${SIMLIB}/gsclib045_vital -setenv SIMLIB_VER ${SIMLIB}/gsclib045_verilog +setenv KIT_HOME ${CMC_HOME}/kits/GPDK45 +setenv KIT_SCLIB ${KIT_HOME}/gsclib045 +setenv KIT_IOLIB ${KIT_HOME}/giolib045 +setenv KIT_GPDK ${KIT_HOME}/gpdk045 +setenv KIT_SIMLIB ${KIT_HOME}/simlib # Front-End setenv FE_DIR ${KIT_SCLIB}/gsclib045 @@ -91,9 +86,6 @@ setenv IO_OA_LIB ${IO_DIR}/oa22/giolib045 # CONFIGURATION DES OUTILS #----------------------------------------------------------------------------- -# MENTOR -source ${CMC_HOME}/scripts/mentor.2017.12.csh - # MODELSIM source ${CMC_HOME}/scripts/mentor.modelsim.10.7c.csh alias vsim "vsim -64" @@ -107,27 +99,26 @@ endif setenv DRCTEMPDIR /export/tmp/$user # GENUS -source ${CMC_HOME}/scripts/cadence.genus17.10.000.csh +source ${CMC_HOME}/scripts/cadence.genus18.10.000.csh alias genus "genus -overwrite" -alias genus_help "${CMC_CDS_GENUS_HOME}/tools/bin/cdnshelp" +alias genus_help "${CMC_CDS_GENUS_HOME}/bin/cdnshelp" # INNOVUS -source ${CMC_HOME}/scripts/cadence.innovus17.11.000.csh +source ${CMC_HOME}/scripts/cadence.innovus18.10.000.csh alias innovus "innovus -overwrite -no_logv" -alias innovus_help "${CMC_CDS_INNOVUS_HOME}/tools/bin/cdnshelp" +alias innovus_help "${CMC_CDS_INNOVUS_HOME}/bin/cdnshelp" # VOLTUS & TEMPUS source ${CMC_HOME}/scripts/cadence.ssv16.16.000.csh alias voltus "voltus -overwrite -no_logv" alias tempus "tempus -overwrite -no_logv" -alias voltus_help "${CMC_CDS_SSV_HOME}/bin/cdnshelp" -alias tempus_help "${CMC_CDS_SSV_HOME}/bin/cdnshelp" +alias ssv_help "${CMC_CDS_SSV_HOME}/bin/cdnshelp" # QUANTUS QRC -source ${CMC_HOME}/scripts/cadence.ext17.21.000.csh +source ${CMC_HOME}/scripts/cadence.ext19.10.000.csh # CONFORMAL -source ${CMC_HOME}/scripts/cadence.conformal17.20.300.csh +source ${CMC_HOME}/scripts/cadence.conformal18.10.100.csh # PVS -source ${CMC_HOME}/scripts/cadence.pvs16.12.000.csh +source ${CMC_HOME}/scripts/cadence.pvs16.15.000.csh diff --git a/compteur/simulation/beh/compteur.wave.do b/compteur/simulation/beh/compteur.wave.do deleted file mode 100644 index 694d8cd..0000000 --- a/compteur/simulation/beh/compteur.wave.do +++ /dev/null @@ -1,25 +0,0 @@ -onerror {resume} -quietly WaveActivateNextPane {} 0 -add wave -noupdate /compteur_tb/clk -add wave -noupdate /compteur_tb/rst_n -add wave -noupdate /compteur_tb/dut/rstn -add wave -noupdate /compteur_tb/en -add wave -noupdate /compteur_tb/cnt -TreeUpdate [SetDefaultTree] -WaveRestoreCursors {{Cursor 1} {3611 ps} 0} -quietly wave cursor active 1 -configure wave -namecolwidth 150 -configure wave -valuecolwidth 100 -configure wave -justifyvalue left -configure wave -signalnamewidth 1 -configure wave -snapdistance 10 -configure wave -datasetprefix 0 -configure wave -rowmargin 4 -configure wave -childrowmargin 2 -configure wave -gridoffset 0 -configure wave -gridperiod 100 -configure wave -griddelta 40 -configure wave -timeline 0 -configure wave -timelineunits ns -update -WaveRestoreZoom {0 ps} {40530 ps} diff --git a/compteur/simulation/modelsim.ini b/compteur/simulation/modelsim.ini new file mode 100644 index 0000000..2583d9e --- /dev/null +++ b/compteur/simulation/modelsim.ini @@ -0,0 +1,2127 @@ +; vsim modelsim.ini file +[Version] +INIVersion = "10.7c" + +; Copyright 1991-2018 Mentor Graphics Corporation +; +; All Rights Reserved. +; +; THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS THE PROPERTY OF +; MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS. +; + +[Library] +others = $MODEL_TECH/../modelsim.ini +; +; VITAL concerns: +; +; The library ieee contains (among other packages) the packages of the +; VITAL 2000 standard. When a design uses VITAL 2000 exclusively, it should use +; the physical library ieee (recommended), or use the physical library +; vital2000, but not both. The design can use logical library ieee and/or +; vital2000 as long as each of these maps to the same physical library, either +; ieee or vital2000. +; +; A design using the 1995 version of the VITAL packages, whether or not +; it also uses the 2000 version of the VITAL packages, must have logical library +; name ieee mapped to physical library vital1995. (A design cannot use library +; vital1995 directly because some packages in this library use logical name ieee +; when referring to the other packages in the library.) The design source +; should use logical name ieee when referring to any packages there except the +; VITAL 2000 packages. Any VITAL 2000 present in the design must use logical +; name vital2000 (mapped to physical library vital2000) to refer to those +; packages. +; ieee = $MODEL_TECH/../vital1995 +; +; For compatiblity with previous releases, logical library name vital2000 maps +; to library vital2000 (a different library than library ieee, containing the +; same packages). +; A design should not reference VITAL from both the ieee library and the +; vital2000 library because the vital packages are effectively different. +; A design that references both the ieee and vital2000 libraries must have +; both logical names ieee and vital2000 mapped to the same library, either of +; these: +; $MODEL_TECH/../ieee +; $MODEL_TECH/../vital2000 +; + +; added mapping for ADMS + +;vhdl_psl_checkers = $MODEL_TECH/../vhdl_psl_checkers // Source files only for this release +;verilog_psl_checkers = $MODEL_TECH/../verilog_psl_checkers // Source files only for this release +;mvc_lib = $MODEL_TECH/../mvc_lib + +; Automatically perform logical->physical mapping for physical libraries that +; appear in -L/-Lf options with filesystem path delimiters (e.g. '.' or '/'). +; The tail of the filesystem path name is chosen as the logical library name. +; For example, in the command "vopt -L ./path/to/lib1 -o opttop top", +; vopt automatically performs the mapping "lib1 -> ./path/to/lib1". +; See the User Manual for more details. +; +; AutoLibMapping = 0 + +gpdk45 = /CMC/kits/GPDK45/simlib/gsclib045_slow +work = /export/tmp/fiorentino/Projects/tutoriel_numerique/compteur/simulation/pnr/work +[DefineOptionset] +; Define optionset entries for the various compilers, vmake, and vsim. +; These option sets can be used with the "-optionset <optionsetname>" syntax. +; i.e. +; vlog -optionset COMPILEDEBUG top.sv +; vsim -optionset UVMDEBUG my_top +; +; Following are some useful examples. + +; define a vsim optionset for uvm debugging +UVMDEBUG = -uvmcontrol=all -msgmode both -displaymsgmode both -classdebug -onfinish stop + +; define a vopt optionset for debugging +VOPTDEBUG = +acc -debugdb + +[encryption] +; For vencrypt and vhencrypt. + +; Controls whether to encrypt whole files by ignoring all protect directives +; (except "viewport" and "interface_viewport") that are present in the input. +; The default is 0, use embedded protect directives to control the encryption. +; Set this to 1 to encrypt whole files by ignoring embedded protect directives. +; wholefile = 0 + +; Sets the data_method to use for the symmetric session key. +; The session key is a symmetric key that is randomly generated for each +; protected region (envelope) and is the heart of all encryption. This is used +; to set the length of the session key to generate and use when encrypting the +; HDL text. Supported values are aes128, aes192, and aes256. +; data_method = aes128 + +; The following 2 are for specifying an IEEE Std. 1735 Version 2 (V2) encryption +; "recipe" comprising an optional common block, at least one tool block (which +; contains the key public key), and the text to be encrypted. The common block +; and any of the tool blocks may contain rights in the form of the "control" +; directive. The text to be encrypted is specified either by setting +; "wholefile" to 1 or by embedding protect "begin" and "end" directives in +; the input HDL files. + +; Common recipe specification file. This file is optional. Its presence will +; require at least one "toolblock" to be specified. +; Directives such as "author" "author_info" and "data_method", +; as well as the common block license specification, go in this file. +; common = <file name> + +; Tool block specification recipe(s). Public key file with optional tool block +; file name. May be multiply-defined; at least one tool block is required if +; a recipe is being specified. +; Key file is a file name with no extension (.deprecated or .active will be +; supplied by the encryption tool). +; Rights file name is optional. +; toolblock = <key file name>[,<rights file name>]{:<key file name>[,<rights file name>]} + +; Location of directory containing recipe files. +; The default location is in the product installation directory. +; keyring = $MODEL_TECH/../keyring + +; Enable encryption statistics. Specify one or more arguments: +; [all,none,time,cmd,msg,perf,verbose,list] +; Add '-' to disable specific statistics. Default is [cmd,msg]. +Stats = cmd,msg + +[vcom] +; VHDL93 variable selects language version as the default. +; Default is VHDL-2002. +; Value of 0 or 1987 for VHDL-1987. +; Value of 1 or 1993 for VHDL-1993. +; Default or value of 2 or 2002 for VHDL-2002. +; Value of 3 or 2008 for VHDL-2008 +; Value of 4 or ams99 for VHDL-AMS-1999 +; Value of 5 or ams07 for VHDL-AMS-2007 +VHDL93 = 2002 + +; Ignore VHDL-2008 declaration of REAL_VECTOR in package STANDARD. Default is off. +; ignoreStandardRealVector = 1 + +; Show source line containing error. Default is off. +; Show_source = 1 + +; Turn off unbound-component warnings. Default is on. +; Show_Warning1 = 0 + +; Turn off process-without-a-wait-statement warnings. Default is on. +; Show_Warning2 = 0 + +; Turn off null-range warnings. Default is on. +; Show_Warning3 = 0 + +; Turn off no-space-in-time-literal warnings. Default is on. +; Show_Warning4 = 0 + +; Turn off multiple-drivers-on-unresolved-signal warnings. Default is on. +; Show_Warning5 = 0 + +; Turn off optimization for IEEE std_logic_1164 package. Default is on. +; Optimize_1164 = 0 + +; Enable compiler statistics. Specify one or more arguments: +; [all,none,time,cmd,msg,perf,verbose,list] +; Add '-' to disable specific statistics. Default is [time,cmd,msg]. +; Stats = time,cmd,msg + +; Turn on resolving of ambiguous function overloading in favor of the +; "explicit" function declaration (not the one automatically created by +; the compiler for each type declaration). Default is off. +; The .ini file has Explicit enabled so that std_logic_signed/unsigned +; will match the behavior of synthesis tools. +Explicit = 1 + +; Turn off acceleration of the VITAL packages. Default is to accelerate. +; NoVital = 1 + +; Turn off VITAL compliance checking. Default is checking on. +; NoVitalCheck = 1 + +; Ignore VITAL compliance checking errors. Default is to not ignore. +; IgnoreVitalErrors = 1 + +; Turn off VITAL compliance checking warnings. Default is to show warnings. +; Show_VitalChecksWarnings = 0 + +; Turn off PSL assertion warning messages. Default is to show warnings. +; Show_PslChecksWarnings = 0 + +; Enable parsing of embedded PSL assertions. Default is enabled. +; EmbeddedPsl = 0 + +; Keep silent about case statement static warnings. +; Default is to give a warning. +; NoCaseStaticError = 1 + +; Keep silent about warnings caused by aggregates that are not locally static. +; Default is to give a warning. +; NoOthersStaticError = 1 + +; Treat as errors: +; case statement static warnings +; warnings caused by aggregates that are not locally static +; Overrides NoCaseStaticError, NoOthersStaticError settings. +; PedanticErrors = 1 + +; Turn off inclusion of debugging info within design units. +; Default is to include debugging info. +; NoDebug = 1 + +; Turn off "Loading..." messages. Default is messages on. +; Quiet = 1 + +; Turn on some limited synthesis rule compliance checking. Checks only: +; -- signals used (read) by a process must be in the sensitivity list +; CheckSynthesis = 1 + +; Activate optimizations on expressions that do not involve signals, +; waits, or function/procedure/task invocations. Default is off. +; ScalarOpts = 1 + +; Turns on lint-style checking. +; Show_Lint = 1 + +; Require the user to specify a configuration for all bindings, +; and do not generate a compile time default binding for the +; component. This will result in an elaboration error of +; 'component not bound' if the user fails to do so. Avoids the rare +; issue of a false dependency upon the unused default binding. +; RequireConfigForAllDefaultBinding = 1 + +; Perform default binding at compile time. +; Default is to do default binding at load time. +; BindAtCompile = 1; + +; Inhibit range checking on subscripts of arrays. Range checking on +; scalars defined with subtypes is inhibited by default. +; NoIndexCheck = 1 + +; Inhibit range checks on all (implicit and explicit) assignments to +; scalar objects defined with subtypes. +; NoRangeCheck = 1 + +; Set the prefix to be honored for synthesis/coverage pragma recognition. +; Default is "". +; AddPragmaPrefix = "" + +; Ignore synthesis and coverage pragmas with this prefix. +; Default is "". +; IgnorePragmaPrefix = "" + +; Turn on code coverage in VHDL design units. Default is off. +; Coverage = sbceft + +; Turn off code coverage in VHDL subprograms. Default is on. +; CoverSub = 0 + +; Automatically exclude VHDL case statement OTHERS choice branches. +; This includes OTHERS choices in selected signal assigment statements. +; Default is to not exclude. +; CoverExcludeDefault = 1 + +; Control compiler and VOPT optimizations that are allowed when +; code coverage is on. Refer to the comment for this in the [vlog] area. +; CoverOpt = 3 + +; Turn on or off clkOpt optimization for code coverage. Default is on. +; CoverClkOpt = 1 + +; Turn on or off clkOpt optimization builtins for code coverage. Default is on. +; CoverClkOptBuiltins = 0 + +; Inform code coverage optimizations to respect VHDL 'H' and 'L' +; values on signals in conditions and expressions, and to not automatically +; convert them to '1' and '0'. Default is to not convert. +; CoverRespectHandL = 0 + +; Increase or decrease the maximum number of rows allowed in a UDP table +; implementing a VHDL condition coverage or expression coverage expression. +; More rows leads to a longer compile time, but more expressions covered. +; CoverMaxUDPRows = 192 + +; Increase or decrease the maximum number of input patterns that are present +; in FEC table. This leads to a longer compile time with more expressions +; covered with FEC metric. +; CoverMaxFECRows = 192 + +; Increase or decrease the limit on the size of expressions and conditions +; considered for expression and condition coverages. Higher FecUdpEffort leads +; to higher compile, optimize and simulation time, but more expressions and +; conditions are considered for coverage in the design. FecUdpEffort can +; be set to a number ranging from 1 (low) to 3 (high), defined as: +; 1 - (low) Only small expressions and conditions considered for coverage. +; 2 - (medium) Bigger expressions and conditions considered for coverage. +; 3 - (high) Very large expressions and conditions considered for coverage. +; The default setting is 1 (low). +; FecUdpEffort = 1 + +; Enable or disable Focused Expression Coverage analysis for conditions and +; expressions. Focused Expression Coverage data is provided by default when +; expression and/or condition coverage is active. +; CoverFEC = 0 + +; Enable or disable UDP Coverage analysis for conditions and expressions. +; UDP Coverage data is disabled by default when expression and/or condition +; coverage is active. +; CoverUDP = 1 + +; Enable or disable Rapid Expression Coverage mode for conditions and expressions. +; Disabling this would convert non-masking conditions in FEC tables to matching +; input patterns. +; CoverREC = 1 + +; Enable or disable bit-blasting multi-bit operands of reduction prefix expressions +; for expression/condition coverage. +; NOTE: Enabling this may have a negative impact on simulation performance. +; CoverExpandReductionPrefix = 0 + +; Enable or disable short circuit evaluation of conditions and expressions when +; condition or expression coverage is active. Short circuit evaluation is enabled +; by default. +; CoverShortCircuit = 0 + +; Enable code coverage reporting of code that has been optimized away. +; The default is not to report. +; CoverReportCancelled = 1 + +; Enable deglitching of code coverage in combinatorial, non-clocked, processes. +; Default is no deglitching. +; CoverDeglitchOn = 1 + +; Control the code coverage deglitching period. A period of 0, eliminates delta +; cycle glitches. The value of CoverDeglitchPeriod needs to be either be 0 or a +; time string that includes time units. Examples: 0 or 10.0ps or "10.0 ps". +; CoverDeglitchPeriod = 0 + +; Use this directory for compiler temporary files instead of "work/_temp" +; CompilerTempDir = /tmp + +; Set this to cause the compilers to force data to be committed to disk +; when the files are closed. +; SyncCompilerFiles = 1 + +; Add VHDL-AMS declarations to package STANDARD +; Default is not to add +; AmsStandard = 1 + +; Range and length checking will be performed on array indices and discrete +; ranges, and when violations are found within subprograms, errors will be +; reported. Default is to issue warnings for violations, because subprograms +; may not be invoked. +; NoDeferSubpgmCheck = 0 + +; Turn ON detection of FSMs having single bit current state variable. +; FsmSingle = 1 + +; Turn off reset state transitions in FSM. +; FsmResetTrans = 0 + +; Turn ON detection of FSM Implicit Transitions. +; FsmImplicitTrans = 1 + +; Controls whether or not to show immediate assertions with constant expressions +; in GUI/report/UCDB etc. By default, immediate assertions with constant +; expressions are shown in GUI/report/UCDB etc. This does not affect +; evaluation of immediate assertions. +; ShowConstantImmediateAsserts = 0 + +; Controls how VHDL basic identifiers are stored with the design unit. +; Does not make the language case-sensitive, affects only how declarations +; declared with basic identifiers have their names stored and printed +; (in the GUI, examine, etc.). +; Default is to preserve the case as originally depicted in the VHDL source. +; Value of 0 indicates to change all basic identifiers to lower case. +; PreserveCase = 0 + +; For Configuration Declarations, controls the effect that USE clauses have +; on visibility inside the configuration items being configured. If 1 +; (the default), then use pre-10.0 behavior. If 0, then for stricter LRM-compliance, +; extend the visibility of objects made visible through USE clauses into nested +; component configurations. +; OldVHDLConfigurationVisibility = 0 + +; Allows VHDL configuration declarations to be in a different library from +; the corresponding configured entity. Default is to not allow this for +; stricter LRM-compliance. +; SeparateConfigLibrary = 1; + +; Determine how mode OUT subprogram parameters of type array and record are treated. +; If 0 (the default), then only VHDL 2008 will do this initialization. +; If 1, always initialize the mode OUT parameter to its default value. +; If 2, do not initialize the mode OUT out parameter. +; Note that prior to release 10.1, all language versions did not initialize mode +; OUT array and record type parameters, unless overridden here via this mechanism. +; In release 10.1 and later, only files compiled with VHDL 2008 will cause this +; initialization, unless overridden here. +; InitOutCompositeParam = 0 + +; Generate symbols debugging database in only some special cases to save on +; the number of files in the library. For other design-units, this database is +; generated on-demand in vsim. +; Default is to to generate debugging database for all design-units. +; SmartDbgSym = 1 + +; Enable or disable automatic creation of missing libraries. +; Default is 1 (enabled) +; CreateLib = 1 + +[vlog] +; Turn off inclusion of debugging info within design units. +; Default is to include debugging info. +; NoDebug = 1 + +; Turn on `protect compiler directive processing. +; Default is to ignore `protect directives. +; Protect = 1 + +; Turn off "Loading..." messages. Default is messages on. +; Quiet = 1 + +; Turn on Verilog hazard checking (order-dependent accessing of global vars). +; Default is off. +; Hazard = 1 + +; Turn on converting regular Verilog identifiers to uppercase. Allows case +; insensitivity for module names. Default is no conversion. +; UpCase = 1 + +; Activate optimizations on expressions that do not involve signals, +; waits, or function/procedure/task invocations. Default is off. +; ScalarOpts = 1 + +; Turns on lint-style checking. +; Show_Lint = 1 + +; Show source line containing error. Default is off. +; Show_source = 1 + +; Turn on bad option warning. Default is off. +; Show_BadOptionWarning = 1 + +; Revert back to IEEE 1364-1995 syntax, default is 0 (off). +; vlog95compat = 1 + +; Turn off PSL warning messages. Default is to show warnings. +; Show_PslChecksWarnings = 0 + +; Enable parsing of embedded PSL assertions. Default is enabled. +; EmbeddedPsl = 0 + +; Enable compiler statistics. Specify one or more arguments: +; [all,none,time,cmd,msg,perf,verbose,list,kb] +; Add '-' to disable specific statistics. Default is [time,cmd,msg]. +; Stats = time,cmd,msg + +; Set the threshold for automatically identifying sparse Verilog memories. +; A memory with total size in bytes equal to or more than the sparse memory +; threshold gets marked as sparse automatically, unless specified otherwise +; in source code or by the +nosparse commandline option of vlog or vopt. +; The default is 1M. (i.e. memories with total size equal +; to or greater than 1Mb are marked as sparse) +; SparseMemThreshold = 1048576 + +; Set the prefix to be honored for synthesis and coverage pragma recognition. +; Default is "". +; AddPragmaPrefix = "" + +; Ignore synthesis and coverage pragmas with this prefix. +; Default is "". +; IgnorePragmaPrefix = "" + +; Set the option to treat all files specified in a vlog invocation as a +; single compilation unit. The default value is set to 0 which will treat +; each file as a separate compilation unit as specified in the P1800 draft standard. +; MultiFileCompilationUnit = 1 + +; Turn on code coverage in Verilog design units. Default is off. +; Coverage = sbceft + +; Automatically exclude Verilog case statement default branches. +; Default is to not automatically exclude defaults. +; CoverExcludeDefault = 1 + +; Increase or decrease the maximum number of rows allowed in a UDP table +; implementing a VHDL condition coverage or expression coverage expression. +; More rows leads to a longer compile time, but more expressions covered. +; CoverMaxUDPRows = 192 + +; Increase or decrease the maximum number of input patterns that are present +; in FEC table. This leads to a longer compile time with more expressions +; covered with FEC metric. +; CoverMaxFECRows = 192 + +; Increase or decrease the limit on the size of expressions and conditions +; considered for expression and condition coverages. Higher FecUdpEffort leads +; to higher compile, optimize and simulation time, but more expressions and +; conditions are considered for coverage in the design. FecUdpEffort can +; be set to a number ranging from 1 (low) to 3 (high), defined as: +; 1 - (low) Only small expressions and conditions considered for coverage. +; 2 - (medium) Bigger expressions and conditions considered for coverage. +; 3 - (high) Very large expressions and conditions considered for coverage. +; The default setting is 1 (low). +; FecUdpEffort = 1 + +; Enable or disable Focused Expression Coverage analysis for conditions and +; expressions. Focused Expression Coverage data is provided by default when +; expression and/or condition coverage is active. +; CoverFEC = 0 + +; Enable or disable UDP Coverage analysis for conditions and expressions. +; UDP Coverage data is disabled by default when expression and/or condition +; coverage is active. +; CoverUDP = 1 + +; Enable or disable Rapid Expression Coverage mode for conditions and expressions. +; Disabling this would convert non-masking conditions in FEC tables to matching +; input patterns. +; CoverREC = 1 + +; Enable or disable bit-blasting multi-bit operands of reduction prefix expressions +; for expression/condition coverage. +; NOTE: Enabling this may have a negative impact on simulation performance. +; CoverExpandReductionPrefix = 0 + +; Enable or disable short circuit evaluation of conditions and expressions when +; condition or expression coverage is active. Short circuit evaluation is enabled +; by default. +; CoverShortCircuit = 0 + +; Enable deglitching of code coverage in combinatorial, non-clocked, processes. +; Default is no deglitching. +; CoverDeglitchOn = 1 + +; Control the code coverage deglitching period. A period of 0, eliminates delta +; cycle glitches. The value of CoverDeglitchPeriod needs to be either be 0 or a +; time string that includes time units. Examples: 0 or 10.0ps or "10.0 ps". +; CoverDeglitchPeriod = 0 + +; Turn on code coverage in VLOG `celldefine modules, modules containing +; specify blocks, and modules included using vlog -v and -y. Default is off. +; CoverCells = 1 + +; Enable code coverage reporting of code that has been optimized away. +; The default is not to report. +; CoverReportCancelled = 1 + +; Control compiler and VOPT optimizations that are allowed when +; code coverage is on. This is a number from 0 to 5, with the following +; meanings (the default is 3): +; 5 -- All allowable optimizations are on. +; 4 -- Turn off removing unreferenced code. +; 3 -- Turn off process, always block and if statement merging. +; 2 -- Turn off expression optimization, converting primitives +; to continuous assignments, VHDL subprogram inlining. +; and VHDL clkOpt (converting FF's to builtins). +; 1 -- Turn off continuous assignment optimizations and clock suppression. +; 0 -- Turn off Verilog module inlining and VHDL arch inlining. +; HOWEVER, if fsm coverage is turned on, optimizations will be forced to +; level 3, with also turning off converting primitives to continuous assigns. +; CoverOpt = 3 + +; Specify the override for the default value of "cross_num_print_missing" +; option for the Cross in Covergroups. If not specified then LRM default +; value of 0 (zero) is used. This is a compile time option. +; SVCrossNumPrintMissingDefault = 0 + +; Setting following to 1 would cause creation of variables which +; would represent the value of Coverpoint expressions. This is used +; in conjunction with "SVCoverpointExprVariablePrefix" option +; in the modelsim.ini +; EnableSVCoverpointExprVariable = 0 + +; Specify the override for the prefix used in forming the variable names +; which represent the Coverpoint expressions. This is used in conjunction with +; "EnableSVCoverpointExprVariable" option of the modelsim.ini +; The default prefix is "expr". +; The variable name is +; variable name => <prefix>_<coverpoint name> +; SVCoverpointExprVariablePrefix = expr + +; Override for the default value of the SystemVerilog covergroup, +; coverpoint, and cross option.goal (defined to be 100 in the LRM). +; NOTE: It does not override specific assignments in SystemVerilog +; source code. NOTE: The modelsim.ini variable "SVCovergroupGoal" +; in the [vsim] section can override this value. +; SVCovergroupGoalDefault = 100 + +; Override for the default value of the SystemVerilog covergroup, +; coverpoint, and cross type_option.goal (defined to be 100 in the LRM) +; NOTE: It does not override specific assignments in SystemVerilog +; source code. NOTE: The modelsim.ini variable "SVCovergroupTypeGoal" +; in the [vsim] section can override this value. +; SVCovergroupTypeGoalDefault = 100 + +; Specify the override for the default value of "strobe" option for the +; Covergroup Type. This is a compile time option which forces "strobe" to +; a user specified default value and supersedes SystemVerilog specified +; default value of '0'(zero). NOTE: This can be overriden by a runtime +; modelsim.ini variable "SVCovergroupStrobe" in the [vsim] section. +; SVCovergroupStrobeDefault = 0 + +; Specify the override for the default value of "per_instance" option for the +; Covergroup variables. This is a compile time option which forces "per_instance" +; to a user specified default value and supersedes SystemVerilog specified +; default value of '0'(zero). +; SVCovergroupPerInstanceDefault = 0 + +; Specify the override for the default value of "get_inst_coverage" option for the +; Covergroup variables. This is a compile time option which forces +; "get_inst_coverage" to a user specified default value and supersedes +; SystemVerilog specified default value of '0'(zero). +; SVCovergroupGetInstCoverageDefault = 0 + +; +; A space separated list of resource libraries that contain precompiled +; packages. The behavior is identical to using the "-L" switch. +; +; LibrarySearchPath = <path/lib> [<path/lib> ...] +LibrarySearchPath = mtiAvm mtiRnm mtiOvm mtiUvm mtiUPF infact + +; The behavior is identical to the "-mixedansiports" switch. Default is off. +; MixedAnsiPorts = 1 + +; Enable SystemVerilog 3.1a $typeof() function. Default is off. +; EnableTypeOf = 1 + +; Only allow lower case pragmas. Default is disabled. +; AcceptLowerCasePragmaOnly = 1 + +; Set the maximum depth permitted for a recursive include file nesting. +; IncludeRecursionDepthMax = 5 + +; Turn ON detection of FSMs having single bit current state variable. +; FsmSingle = 1 + +; Turn off reset state transitions in FSM. +; FsmResetTrans = 0 + +; Turn off detections of FSMs having x-assignment. +; FsmXAssign = 0 + +; Turn ON detection of FSM Implicit Transitions. +; FsmImplicitTrans = 1 + +; List of file suffixes which will be read as SystemVerilog. White space +; in extensions can be specified with a back-slash: "\ ". Back-slashes +; can be specified with two consecutive back-slashes: "\\"; +; SvFileSuffixes = sv svp svh + +; This setting is the same as the vlog -sv command line switch. +; Enables SystemVerilog features and keywords when true (1). +; When false (0), the rules of IEEE Std 1364-2001 are followed and +; SystemVerilog keywords are ignored. +; Svlog = 0 + +; Prints attribute placed upon SV packages during package import +; when true (1). The attribute will be ignored when this +; entry is false (0). The attribute name is "package_load_message". +; The value of this attribute is a string literal. +; Default is true (1). +; PrintSVPackageLoadingAttribute = 1 + +; Do not show immediate assertions with constant expressions in +; GUI/reports/UCDB etc. By default immediate assertions with constant +; expressions are shown in GUI/reports/UCDB etc. This does not affect +; evaluation of immediate assertions. +; ShowConstantImmediateAsserts = 0 + +; Controls if untyped parameters that are initialized with values greater +; than 2147483647 are mapped to generics of type INTEGER or ignored. +; If mapped to VHDL Integers, values greater than 2147483647 +; are mapped to negative values. +; Default is to map these parameter to generic of type INTEGER +; ForceUnsignedToVHDLInteger = 1 + +; Enable AMS wreal (wired real) extensions. Default is 0. +; WrealType = 1 + +; Controls SystemVerilog Language Extensions. These options enable +; some non-LRM compliant behavior. +; SvExtensions = [+|-]<extension>[,[+|-]<extension>*] + +; Generate symbols debugging database in only some special cases to save on +; the number of files in the library. For other design-units, this database is +; generated on-demand in vsim. +; Default is to to generate debugging database for all design-units. +; SmartDbgSym = 1 + +; Controls how $unit library entries are named. Valid options are: +; "file" (generate name based on the first file on the command line) +; "du" (generate name based on first design unit following an item +; found in $unit scope) +; CUAutoName = file + +; Enable or disable automatic creation of missing libraries. +; Default is 1 (enabled) +; CreateLib = 1 + +[sccom] +; Enable use of SCV include files and library. Default is off. +; UseScv = 1 + +; Add C++ compiler options to the sccom command line by using this variable. +; CppOptions = -g + +; Use custom C++ compiler located at this path rather than the default path. +; The path should point directly at a compiler executable. +; CppPath = /usr/bin/g++ + +; Specify the compiler version from the list of support GNU compilers. +; examples 4.3.3, 4.5.0 +; CppInstall = 4.5.0 + +; Enable verbose messages from sccom. Default is off. +; SccomVerbose = 1 + +; sccom logfile. Default is no logfile. +; SccomLogfile = sccom.log + +; Enable use of SC_MS include files and library. Default is off. +; UseScMs = 1 + +; Use SystemC-2.2 instead of the default SystemC-2.3. Default is off. +; Sc22Mode = 1 + +; Enable compiler statistics. Specify one or more arguments: +; [all,none,time,cmd,msg,perf,verbose,list,kb] +; Add '-' to disable specific statistics. Default is [time,cmd,msg]. +; Stats = time,cmd,msg + +; Enable or disable automatic creation of missing libraries. +; Default is 1 (enabled) +; CreateLib = 1 + +; Enable use of UVMC library. Default is off. +; UseUvmc = 1 + +[vopt] +; Turn on code coverage in vopt. Default is off. +; Coverage = sbceft + +; Control compiler optimizations that are allowed when +; code coverage is on. Refer to the comment for this in the [vlog] area. +; CoverOpt = 3 + +; Controls set of CoverConstructs that are being considered for Coverage +; Collection. +; Some of Valid options are: default,set1,set2 +; Covermode = default + +; Controls set of HDL cover constructs that would be considered(or not considered) +; for Coverage Collection. (Default corresponds to covermode default). +; Some of Valid options are: "ca", "citf", "cifl", "tcint", "fsmqs". +; Coverconstruct = noca,nocitf,nofsmtf,nofsmds,noctes,nocicl,nocprc,nocfl,nofsmup,nocifl,nocpm,notcint,nocpkg,nocsva + +; Increase or decrease the maximum number of rows allowed in a UDP table +; implementing a VHDL condition coverage or expression coverage expression. +; More rows leads to a longer compile time, but more expressions covered. +; CoverMaxUDPRows = 192 + +; Increase or decrease the maximum number of input patterns that are present +; in FEC table. This leads to a longer compile time with more expressions +; covered with FEC metric. +; CoverMaxFECRows = 192 + +; Increase or decrease the limit on the size of expressions and conditions +; considered for expression and condition coverages. Higher FecUdpEffort leads +; to higher compile, optimize and simulation time, but more expressions and +; conditions are considered for coverage in the design. FecUdpEffort can +; be set to a number ranging from 1 (low) to 3 (high), defined as: +; 1 - (low) Only small expressions and conditions considered for coverage. +; 2 - (medium) Bigger expressions and conditions considered for coverage. +; 3 - (high) Very large expressions and conditions considered for coverage. +; The default setting is 1 (low). +; FecUdpEffort = 1 + +; Enable code coverage reporting of code that has been optimized away. +; The default is not to report. +; CoverReportCancelled = 1 + +; Enable deglitching of code coverage in combinatorial, non-clocked, processes. +; Default is no deglitching. +; CoverDeglitchOn = 1 + +; Enable compiler statistics. Specify one or more arguments: +; [all,none,time,cmd,msg,perf,verbose,list,kb] +; Add '-' to disable specific statistics. Default is [time,cmd,msg]. +; Stats = time,cmd,msg + +; Control the code coverage deglitching period. A period of 0, eliminates delta +; cycle glitches. The value of CoverDeglitchPeriod needs to be either be 0 or a +; time string that includes time units. Examples: 0 or 10.0ps or "10.0 ps". +; CoverDeglitchPeriod = 0 + +; Do not show immediate assertions with constant expressions in +; GUI/reports/UCDB etc. By default immediate assertions with constant +; expressions are shown in GUI/reports/UCDB etc. This does not affect +; evaluation of immediate assertions. +; ShowConstantImmediateAsserts = 0 + +; Set the maximum number of iterations permitted for a generate loop. +; Restricting this permits the implementation to recognize infinite +; generate loops. +; GenerateLoopIterationMax = 100000 + +; Set the maximum depth permitted for a recursive generate instantiation. +; Restricting this permits the implementation to recognize infinite +; recursions. +; GenerateRecursionDepthMax = 200 + +; Set the number of processes created during the code generation phase. +; By default a heuristic is used to set this value. This may be set to 0 +; to disable this feature completely. +; ParallelJobs = 0 + +; Controls SystemVerilog Language Extensions. These options enable +; some non-LRM compliant behavior. +; SvExtensions = [+|-]<extension>[,[+|-]<extension>*] + +; Load the specified shared objects with the RTLD_GLOBAL flag. +; This gives global visibility to all symbols in the shared objects, +; meaning that subsequently loaded shared objects can bind to symbols +; in the global shared objects. The list of shared objects should +; be whitespace delimited. This option is not supported on the +; Windows or AIX platforms. +; GlobalSharedObjectList = example1.so example2.so example3.so + +; Disable SystemVerilog elaboration system task messages +; IgnoreSVAInfo = 1 +; IgnoreSVAWarning = 1 +; IgnoreSVAError = 1 +; IgnoreSVAFatal = 1 + +; Enable or disable automatic creation of missing libraries. +; Default is 1 (enabled) +; CreateLib = 1 + +[vsim] +; vopt flow +; Set to turn on automatic optimization of a design. +; Default is on +VoptFlow = 1 + +; Simulator resolution +; Set to fs, ps, ns, us, ms, or sec with optional prefix of 1, 10, or 100. +Resolution = ns + +; Disable certain code coverage exclusions automatically. +; Assertions and FSM are exluded from the code coverage by default +; Set AutoExclusionsDisable = fsm to enable code coverage for fsm +; Set AutoExclusionsDisable = assertions to enable code coverage for assertions +; Set AutoExclusionsDisable = all to enable code coverage for all the automatic exclusions +; Or specify comma or space separated list +;AutoExclusionsDisable = fsm,assertions + +; User time unit for run commands +; Set to default, fs, ps, ns, us, ms, or sec. The default is to use the +; unit specified for Resolution. For example, if Resolution is 100ps, +; then UserTimeUnit defaults to ps. +; Should generally be set to default. +UserTimeUnit = default + +; Default run length +RunLength = 100 + +; Maximum iterations that can be run without advancing simulation time +IterationLimit = 10000000 + +; Specify libraries to be searched for precompiled modules +; LibrarySearchPath = <path/lib> [<path/lib> ...] + +; Set XPROP assertion fail limit. Default is 5. +; Any positive integer, -1 for infinity. +; XpropAssertionLimit = 5 + +; Control PSL and Verilog Assume directives during simulation +; Set SimulateAssumeDirectives = 0 to disable assume being simulated as asserts +; Set SimulateAssumeDirectives = 1 to enable assume simulation as asserts +; SimulateAssumeDirectives = 1 + +; Control the simulation of PSL and SVA +; These switches can be overridden by the vsim command line switches: +; -psl, -nopsl, -sva, -nosva. +; Set SimulatePSL = 0 to disable PSL simulation +; Set SimulatePSL = 1 to enable PSL simulation (default) +; SimulatePSL = 1 +; Set SimulateSVA = 0 to disable SVA simulation +; Set SimulateSVA = 1 to enable concurrent SVA simulation (default) +; SimulateSVA = 1 + +; Control SVA and VHDL immediate assertion directives during simulation +; Set SimulateImmedAsserts = 0 to disable simulation of immediate asserts +; Set SimulateImmedAsserts = 1 to enable simulation of immediate asserts +; SimulateImmedAsserts = 1 + +; License feature mappings for Verilog and VHDL +; qhsimvh Single language VHDL license +; qhsimvl Single language Verilog license +; msimhdlsim Language neutral license for either Verilog or VHDL +; msimhdlmix Second language only, language neutral license for either +; Verilog or VHDL +; +; Directives to license manager can be set either as single value or as +; space separated multi-values: +; vhdl Immediately checkout and hold a VHDL license (i.e., one of +; qhsimvh, msimhdlsim, or msimhdlmix) +; vlog Immediately checkout and hold a Verilog license (i.e., one of +; qhsimvl, msimhdlsim, or msimhdlmix) +; plus Immediately checkout and hold a VHDL license and a Verilog license +; noqueue Do not wait in the license queue when a license is not available +; viewsim Try for viewer license but accept simulator license(s) instead +; of queuing for viewer license (PE ONLY) +; noviewer Disable checkout of msimviewer license feature (PE ONLY) +; noslvhdl Disable checkout of qhsimvh license feature +; noslvlog Disable checkout of qhsimvl license feature +; nomix Disable checkout of msimhdlmix license feature +; nolnl Disable checkout of msimhdlsim license feature +; mixedonly Disable checkout of qhsimvh and qhsimvl license features +; lnlonly Disable checkout of qhsimvh,qhsimvl, and msimhdlmix license features +; +; Examples (remove ";" comment character to activate licensing directives): +; Single directive: +; License = plus +; Multi-directive (Note: space delimited directives): +; License = noqueue plus + +; Severity level of a VHDL assertion message or of a SystemVerilog severity system task +; which will cause a running simulation to stop. +; VHDL assertions and SystemVerilog severity system task that occur with the +; given severity or higher will cause a running simulation to stop. +; This value is ignored during elaboration. +; 0 = Note 1 = Warning 2 = Error 3 = Failure 4 = Fatal +BreakOnAssertion = 3 + +; Severity level of a tool message which will cause a running simulation to +; stop. This value is ignored during elaboration. Default is to not break. +; 0 = Note 1 = Warning 2 = Error 3 = Fatal +;BreakOnMessage = 2 + +; The class debug feature enables more visibility and tracking of class instances +; during simulation. By default this feature is disabled (0). To enable this +; feature set ClassDebug to 1. +; ClassDebug = 1 + +; Message Format conversion specifications: +; %S - Severity Level of message/assertion +; %R - Text of message +; %T - Time of message +; %D - Delta value (iteration number) of Time +; %K - Kind of path: Instance/Region/Signal/Process/Foreign Process/Unknown/Protected +; %i - Instance/Region/Signal pathname with Process name (if available) +; %I - shorthand for one of these: +; " %K: %i" +; " %K: %i File: %F" (when path is not Process or Signal) +; except that the %i in this case does not report the Process name +; %O - Process name +; %P - Instance/Region path without leaf process +; %F - File name +; %L - Line number; if assertion message, then line number of assertion or, if +; assertion is in a subprogram, line from which the call is made +; %u - Design unit name in form library.primary +; %U - Design unit name in form library.primary(secondary) +; %% - The '%' character itself +; +; If specific format for Severity Level is defined, use that format. +; Else, for a message that occurs during elaboration: +; -- Failure/Fatal message in VHDL region that is not a Process, and in +; certain non-VHDL regions, uses MessageFormatBreakLine; +; -- Failure/Fatal message otherwise uses MessageFormatBreak; +; -- Note/Warning/Error message uses MessageFormat. +; Else, for a message that occurs during runtime and triggers a breakpoint because +; of the BreakOnAssertion setting: +; -- if in a VHDL region that is not a Process, uses MessageFormatBreakLine; +; -- otherwise uses MessageFormatBreak. +; Else (a runtime message that does not trigger a breakpoint) uses MessageFormat. +; +; MessageFormatNote = "** %S: %R\n Time: %T Iteration: %D%I\n" +; MessageFormatWarning = "** %S: %R\n Time: %T Iteration: %D%I\n" +; MessageFormatError = "** %S: %R\n Time: %T Iteration: %D %K: %i File: %F\n" +; MessageFormatFail = "** %S: %R\n Time: %T Iteration: %D %K: %i File: %F\n" +; MessageFormatFatal = "** %S: %R\n Time: %T Iteration: %D %K: %i File: %F\n" +; MessageFormatBreakLine = "** %S: %R\n Time: %T Iteration: %D %K: %i File: %F Line: %L\n" +; MessageFormatBreak = "** %S: %R\n Time: %T Iteration: %D %K: %i File: %F\n" +; MessageFormat = "** %S: %R\n Time: %T Iteration: %D%I\n" + +; Error File - alternate file for storing error messages +; ErrorFile = error.log + +; Simulation Breakpoint messages +; This flag controls the display of function names when reporting the location +; where the simulator stops because of a breakpoint or fatal error. +; Example with function name: # Break in Process ctr at counter.vhd line 44 +; Example without function name: # Break at counter.vhd line 44 +; Default value is 1. +ShowFunctions = 1 + +; Default radix for all windows and commands. +; Radix may be one of: symbolic, ascii, binary, octal, decimal, hex, unsigned +; Flags may be one of: enumnumeric, showbase, wreal +DefaultRadix = hexadecimal +DefaultRadixFlags = showbase +; Set to 1 for make the signal_force VHDL and Verilog functions use the +; default radix when processing the force value. Prior to 10.2 signal_force +; used the default radix, now it always uses symbolic unless value explicitly indicates base +;SignalForceFunctionUseDefaultRadix = 0 + +; VSIM Startup command +; Startup = do startup.do + +; VSIM Shutdown file +; Filename to save u/i formats and configurations. +; ShutdownFile = restart.do +; To explicitly disable auto save: +; ShutdownFile = --disable-auto-save + +; Run simulator in batch mode as if -batch were specified on the command line if none of -c, -gui, or -i specified. +; Simulator runs in interactive mode as if -i were specified if this option is 0. Default is 0. +; BatchMode = 1 + +; File for saving command transcript when -batch option used +; This option is ignored when -c, -gui, or -i options are used or if BatchMode above is zero +; default is unset so command transcript only goes to stdout for better performance +; BatchTranscriptFile = transcript + +; File for saving command transcript, this option is ignored when -batch option is used +TranscriptFile = transcript + +; Transcript file long line wrapping mode(s) +; mode == 0 :: no wrapping, line recorded as is +; mode == 1 :: wrap at first whitespace after WSColumn +; or at Column. +; mode == 2 :: wrap as above, but add continuation +; character ('\') at end of each wrapped line +; +; WrapMode = 0 +; WrapColumn = 30000 +; WrapWSColumn = 27000 + +; File for saving command history +; CommandHistory = cmdhist.log + +; Specify whether paths in simulator commands should be described +; in VHDL or Verilog format. +; For VHDL, PathSeparator = / +; For Verilog, PathSeparator = . +; Must not be the same character as DatasetSeparator. +PathSeparator = / + +; Specify the dataset separator for fully rooted contexts. +; The default is ':'. For example: sim:/top +; Must not be the same character as PathSeparator. +DatasetSeparator = : + +; Specify a unique path separator for the Signal Spy set of functions. +; The default will be to use the PathSeparator variable. +; Must not be the same character as DatasetSeparator. +; SignalSpyPathSeparator = / + +; Used to control parsing of HDL identifiers input to the tool. +; This includes CLI commands, vsim/vopt/vlog/vcom options, +; string arguments to FLI/VPI/DPI calls, etc. +; If set to 1, accept either Verilog escaped Id syntax or +; VHDL extended id syntax, regardless of source language. +; If set to 0, the syntax of the source language must be used. +; Each identifier in a hierarchical name may need different syntax, +; e.g. "/top/\vhdl*ext*id\/middle/\vlog*ext*id /bottom" or +; "top.\vhdl*ext*id\.middle.\vlog*ext*id .bottom" +; GenerousIdentifierParsing = 1 + +; Disable VHDL assertion messages +; IgnoreNote = 1 +; IgnoreWarning = 1 +; IgnoreError = 1 +; IgnoreFailure = 1 + +; Disable SystemVerilog assertion messages +; IgnoreSVAInfo = 1 +; IgnoreSVAWarning = 1 +; IgnoreSVAError = 1 +; IgnoreSVAFatal = 1 + +; Do not print any additional information from Severity System tasks. +; Only the message provided by the user is printed along with severity +; information. +; SVAPrintOnlyUserMessage = 1; + +; Default force kind. May be freeze, drive, deposit, or default +; or in other terms, fixed, wired, or charged. +; A value of "default" will use the signal kind to determine the +; force kind, drive for resolved signals, freeze for unresolved signals +; DefaultForceKind = freeze + +; Control the iteration of events when a VHDL signal is forced to a value +; This flag can be set to honour the signal update event in next iteration, +; the default is to update and propagate in the same iteration. +; ForceSigNextIter = 1 + +; Enable simulation statistics. Specify one or more arguments: +; [all,none,time,cmd,msg,perf,verbose,list,kb,eor] +; Add '-' to disable specific statistics. Default is [time,cmd,msg]. +; Stats = time,cmd,msg + +; If zero, open files when elaborated; otherwise, open files on +; first read or write. Default is 0. +; DelayFileOpen = 1 + +; Control VHDL files opened for write. +; 0 = Buffered, 1 = Unbuffered +UnbufferedOutput = 0 + +; Control the number of VHDL files open concurrently. +; This number should always be less than the current ulimit +; setting for max file descriptors. +; 0 = unlimited +ConcurrentFileLimit = 40 + +; If nonzero, close files as soon as there is either an explicit call to +; file_close, or when the file variable's scope is closed. When zero, a +; file opened in append mode is not closed in case it is immediately +; reopened in append mode; otherwise, the file will be closed at the +; point it is reopened. +; AppendClose = 1 + +; Control the number of hierarchical regions displayed as +; part of a signal name shown in the Wave window. +; A value of zero tells VSIM to display the full name. +; The default is 0. +; WaveSignalNameWidth = 0 + +; Turn off warnings when changing VHDL constants and generics +; Default is 1 to generate warning messages +; WarnConstantChange = 0 + +; Turn off warnings from accelerated versions of the std_logic_arith, +; std_logic_unsigned, and std_logic_signed packages. +; StdArithNoWarnings = 1 + +; Turn off warnings from accelerated versions of the IEEE numeric_std +; and numeric_bit packages. +; NumericStdNoWarnings = 1 + +; Use old-style (pre-6.6) VHDL FOR GENERATE statement iteration names +; in the design hierarchy. +; This style is controlled by the value of the GenerateFormat +; value described next. Default is to use new-style names, which +; comprise the generate statement label, '(', the value of the generate +; parameter, and a closing ')'. +; Set this to 1 to use old-style names. +; OldVhdlForGenNames = 1 + +; Control the format of the old-style VHDL FOR generate statement region +; name for each iteration. Do not quote the value. +; The format string here must contain the conversion codes %s and %d, +; in that order, and no other conversion codes. The %s represents +; the generate statement label; the %d represents the generate parameter value +; at a particular iteration (this is the position number if the generate parameter +; is of an enumeration type). Embedded whitespace is allowed (but discouraged); +; leading and trailing whitespace is ignored. +; Application of the format must result in a unique region name over all +; loop iterations for a particular immediately enclosing scope so that name +; lookup can function properly. The default is %s__%d. +; GenerateFormat = %s__%d + +; Enable more efficient logging of VHDL Variables. +; Logging VHDL variables without this enabled, while possible, is very +; inefficient. Enabling this will provide a more efficient logging methodology +; at the expense of more memory usage. By default this feature is disabled (0). +; To enabled this feature, set this variable to 1. +; VhdlVariableLogging = 1 + +; Enable logging of VHDL access type variables and their designated objects. +; This setting will allow both variables of an access type ("access variables") +; and their designated objects ("access objects") to be logged. Logging a +; variable of an access type will automatically also cause the designated +; object(s) of that variable to be logged as the simulation progresses. +; Further, enabling this allows access objects to be logged by name. By default +; this feature is disabled (0). To enable this feature, set this variable to 1. +; Enabling this will automatically enable the VhdlVariableLogging feature also. +; AccessObjDebug = 1 + +; Make each VHDL package in a PDU has its own separate copy of the package instead +; of sharing the package between PDUs. The default is to share packages. +; To ensure that each PDU has its own set of packages, set this variable to 1. +; VhdlSeparatePduPackage = 1 + +; Specify whether checkpoint files should be compressed. +; The default is 1 (compressed). +; CheckpointCompressMode = 0 + +; Specify gcc compiler used in the compilation of automatically generated DPI exportwrapper. +; Use custom gcc compiler located at this path rather than the default path. +; The path should point directly at a compiler executable. +; DpiCppPath = <your-gcc-installation>/bin/gcc +; +; Specify the compiler version from the list of support GNU compilers. +; examples 4.5.0, 4.7.4 +; DpiCppInstall = 4.7.4 + +; Specify whether to enable SystemVerilog DPI "out-of-the-blue" calls. +; The term "out-of-the-blue" refers to SystemVerilog export function calls +; made from C functions that don't have the proper context setup +; (as is the case when running under "DPI-C" import functions). +; When this is enabled, one can call a DPI export function +; (but not task) from any C code. +; the setting of this variable can be one of the following values: +; 0 : dpioutoftheblue call is disabled (default) +; 1 : dpioutoftheblue call is enabled, but export call debug support is not available. +; 2 : dpioutoftheblue call is enabled, and limited export call debug support is available. +; DpiOutOfTheBlue = 1 + +; Specify whether continuous assignments are run before other normal priority +; processes scheduled in the same iteration. This event ordering minimizes race +; differences between optimized and non-optimized designs, and is the default +; behavior beginning with the 6.5 release. For pre-6.5 event ordering, set +; ImmediateContinuousAssign to 0. +; The default is 1 (enabled). +; ImmediateContinuousAssign = 0 + +; List of dynamically loaded objects for Verilog PLI applications +; Veriuser = veriuser.sl + +; Which default VPI object model should the tool conform to? +; The 1364 modes are Verilog-only, for backwards compatibility with older +; libraries, and SystemVerilog objects are not available in these modes. +; +; In the absence of a user-specified default, the tool default is the +; latest available LRM behavior. +; Options for PliCompatDefault are: +; VPI_COMPATIBILITY_VERSION_1364v1995 +; VPI_COMPATIBILITY_VERSION_1364v2001 +; VPI_COMPATIBILITY_VERSION_1364v2005 +; VPI_COMPATIBILITY_VERSION_1800v2005 +; VPI_COMPATIBILITY_VERSION_1800v2008 +; +; Synonyms for each string are also recognized: +; VPI_COMPATIBILITY_VERSION_1364v1995 (1995, 95, 1364v1995, 1364V1995, VL1995) +; VPI_COMPATIBILITY_VERSION_1364v2001 (2001, 01, 1364v2001, 1364V2001, VL2001) +; VPI_COMPATIBILITY_VERSION_1364v2005 (1364v2005, 1364V2005, VL2005) +; VPI_COMPATIBILITY_VERSION_1800v2005 (2005, 05, 1800v2005, 1800V2005, SV2005) +; VPI_COMPATIBILITY_VERSION_1800v2008 (2008, 08, 1800v2008, 1800V2008, SV2008) + + +; PliCompatDefault = VPI_COMPATIBILITY_VERSION_1800v2005 + +; Specify whether the Verilog system task $fopen or vpi_mcd_open() +; will create directories that do not exist when opening the file +; in "a" or "w" mode. +; The default is 0 (do not create non-existent directories) +; CreateDirForFileAccess = 1 + +; Specify default options for the restart command. Options can be one +; or more of: -force -nobreakpoint -nolist -nolog -nowave -noassertions +; DefaultRestartOptions = -force + + +; Specify default UVM-aware debug options if the vsim -uvmcontrol switch is not used. +; Valid options include: all, none, verbose, disable, struct, reseed, msglog, trlog, certe. +; Options can be enabled by just adding the name, or disabled by prefixing the option with a "-". +; The list of options must be delimited by commas, without spaces or tabs. +; +; Some examples +; To turn on all available UVM-aware debug features: +; UVMControl = all +; To turn on the struct window, mesage logging, and transaction logging: +; UVMControl = struct,msglog,trlog +; To turn on all options except certe: +; UVMControl = all,-certe +; To completely disable all UVM-aware debug functionality: +; UVMControl = disable + +; Specify the WildcardFilter setting. +; A space separated list of object types to be excluded when performing +; wildcard matches with log, wave, etc commands. The default value for this variable is: +; "Variable Constant Generic Parameter SpecParam Memory Assertion Cover Endpoint ScVariable CellInternal ImmediateAssert VHDLFile" +; See "Using the WildcardFilter Preference Variable" in the documentation for +; details on how to use this variable and for descriptions of the filter types. +WildcardFilter = Variable Constant Generic Parameter SpecParam Memory Assertion Cover Endpoint ScVariable CellInternal ImmediateAssert VHDLFile + +; Specify the WildcardSizeThreshold setting. +; This integer setting specifies the size at which objects will be excluded when +; performing wildcard matches with log, wave, etc commands. Objects of size equal +; to or greater than the WildcardSizeThreshold will be filtered out from the wildcard +; matches. The size is a simple calculation of number of bits or items in the object. +; The default value is 8k (8192). Setting this value to 0 will disable the checking +; of object size against this threshold and allow all objects of any size to be logged. +WildcardSizeThreshold = 8192 + +; Specify whether warning messages are output when objects are filtered out due to the +; WildcardSizeThreshold. The default is 0 (no messages generated). +WildcardSizeThresholdVerbose = 0 + +; Turn on (1) or off (0) WLF file compression. +; The default is 1 (compress WLF file). +; WLFCompress = 0 + +; Specify whether to save all design hierarchy (1) in the WLF file +; or only regions containing logged signals (0). +; The default is 0 (save only regions with logged signals). +; WLFSaveAllRegions = 1 + +; WLF file time limit. Limit WLF file by time, as closely as possible, +; to the specified amount of simulation time. When the limit is exceeded +; the earliest times get truncated from the file. +; If both time and size limits are specified the most restrictive is used. +; UserTimeUnits are used if time units are not specified. +; The default is 0 (no limit). Example: WLFTimeLimit = {100 ms} +; WLFTimeLimit = 0 + +; WLF file size limit. Limit WLF file size, as closely as possible, +; to the specified number of megabytes. If both time and size limits +; are specified then the most restrictive is used. +; The default is 0 (no limit). +; WLFSizeLimit = 1000 + +; Specify whether or not a WLF file should be deleted when the +; simulation ends. A value of 1 will cause the WLF file to be deleted. +; The default is 0 (do not delete WLF file when simulation ends). +; WLFDeleteOnQuit = 1 + +; Specify whether or not a WLF file should be optimized during +; simulation. If set to 0, the WLF file will not be optimized. +; The default is 1, optimize the WLF file. +; WLFOptimize = 0 + +; Specify the name of the WLF file. +; The default is vsim.wlf +; WLFFilename = vsim.wlf + +; Specify whether to lock the WLF file. +; Locking the file prevents other invocations of ModelSim/Questa tools from +; inadvertently overwriting the WLF file. +; The default is 1, lock the WLF file. +; WLFFileLock = 0 + +; Specify the update interval for the WLF file in live simulation. +; The interval is given in seconds. +; The value is the smallest interval between WLF file updates. The WLF file +; will be flushed (updated) after (at least) the interval has elapsed, ensuring +; that the data is correct when viewed from a separate viewer. +; A value of 0 means that no updating will occur. +; The default value is 10 seconds. +; WLFUpdateInterval = 10 + +; Specify the WLF cache size limit for WLF files. +; The value is given in megabytes. A value of 0 turns off the cache. +; On non-Windows platforms the default WLFCacheSize setting is 2000 (megabytes). +; On Windows, the default value is 1000 (megabytes) to help to avoid filling +; process memory. +; WLFSimCacheSize allows a different cache size to be set for a live simulation +; WLF file, independent of post-simulation WLF file viewing. If WLFSimCacheSize +; is not set, it defaults to the WLFCacheSize value. +; WLFCacheSize = 2000 +; WLFSimCacheSize = 500 + +; Specify the WLF file event collapse mode. +; 0 = Preserve all events and event order. (same as -wlfnocollapse) +; 1 = Only record values of logged objects at the end of a simulator iteration. +; (same as -wlfcollapsedelta) +; 2 = Only record values of logged objects at the end of a simulator time step. +; (same as -wlfcollapsetime) +; The default is 1. +; WLFCollapseMode = 0 + +; Specify whether WLF file logging can use threads on multi-processor machines. +; If 0, no threads will be used; if 1, threads will be used if the system has +; more than one processor. +; WLFUseThreads = 1 + +; Specify the size of objects that will trigger "large object" messages +; at log/wave/list time. The size calculation of the object is the same as that +; used by the WildcardSizeThreshold. The default LargeObjectSize size is 500,000. +; Setting LargeObjectSize to 0 will disable these messages. +; LargeObjectSize = 500000 + +; Specify the depth of stack frames returned by $stacktrace([level]). +; This depth will be picked up when the optional 'level' argument +; is not specified or its value is not a positive integer. +; StackTraceDepth = 100 + +; Turn on/off undebuggable SystemC type warnings. Default is on. +; ShowUndebuggableScTypeWarning = 0 + +; Turn on/off unassociated SystemC name warnings. Default is off. +; ShowUnassociatedScNameWarning = 1 + +; Turn on/off SystemC IEEE 1666 deprecation warnings. Default is off. +; ScShowIeeeDeprecationWarnings = 1 + +; Turn on/off the check for multiple drivers on a SystemC sc_signal. Default is off. +; ScEnableScSignalWriteCheck = 1 + +; Set SystemC default time unit. +; Set to fs, ps, ns, us, ms, or sec with optional +; prefix of 1, 10, or 100. The default is 1 ns. +; The ScTimeUnit value is honored if it is coarser than Resolution. +; If ScTimeUnit is finer than Resolution, it is set to the value +; of Resolution. For example, if Resolution is 100ps and ScTimeUnit is ns, +; then the default time unit will be 1 ns. However if Resolution +; is 10 ns and ScTimeUnit is ns, then the default time unit will be 10 ns. +ScTimeUnit = ns + +; Set SystemC sc_main stack size. The stack size is set as an integer +; number followed by the unit which can be Kb(Kilo-byte), Mb(Mega-byte) or +; Gb(Giga-byte). Default is 10 Mb. The stack size for sc_main depends +; on the amount of data on the sc_main() stack and the memory required +; to succesfully execute the longest function call chain of sc_main(). +ScMainStackSize = 10 Mb + +; Set SystemC thread stack size. The stack size is set as an integer +; number followed by the unit which can be Kb(Kilo-byte), Mb(Mega-byte) or +; Gb(Giga-byte). The stack size for sc_thread depends +; on the amount of data on the sc_thread stack and the memory required +; to succesfully execute the thread. +; ScStackSize = 1 Mb + +; Turn on/off execution of remainder of sc_main upon quitting the current +; simulation session. If the cumulative length of sc_main() in terms of +; simulation time units is less than the length of the current simulation +; run upon quit or restart, sc_main() will be in the middle of execution. +; This switch gives the option to execute the remainder of sc_main upon +; quitting simulation. The drawback of not running sc_main till the end +; is memory leaks for objects created by sc_main. If on, the remainder of +; sc_main will be executed ignoring all delays. This may cause the simulator +; to crash if the code in sc_main is dependent on some simulation state. +; Default is on. +ScMainFinishOnQuit = 1 + +; Enable calling of the DPI export taks/functions from the +; SystemC start_of_simulation() callback. +; The default is off. +; EnableDpiSosCb = 1 + + +; Set the SCV relationship name that will be used to identify phase +; relations. If the name given to a transactor relation matches this +; name, the transactions involved will be treated as phase transactions +ScvPhaseRelationName = mti_phase + +; Customize the vsim kernel shutdown behavior at the end of the simulation. +; Some common causes of the end of simulation are $finish (implicit or explicit), +; sc_stop(), tf_dofinish(), and assertion failures. +; This should be set to "ask", "exit", or "stop". The default is "ask". +; "ask" -- In batch mode, the vsim kernel will abruptly exit. +; In GUI mode, a dialog box will pop up and ask for user confirmation +; whether or not to quit the simulation. +; "stop" -- Cause the simulation to stay loaded in memory. This can make some +; post-simulation tasks easier. +; "exit" -- The simulation will abruptly exit without asking for any confirmation. +; "final" -- Run SystemVerilog final blocks then behave as "stop". +; Note: This variable can be overridden with the vsim "-onfinish" command line switch. +OnFinish = ask + +; Print pending deferred assertion messages. +; Deferred assertion messages may be scheduled after the $finish in the same +; time step. Deferred assertions scheduled to print after the $finish are +; printed before exiting with severity level NOTE since it's not known whether +; the assertion is still valid due to being printed in the active region +; instead of the reactive region where they are normally printed. +; OnFinishPendingAssert = 1; + +; Print "simstats" result. Default is 0. +; 0 == do not print simstats +; 1 == print at end of simulation +; 2 == print at end of each run command and end of simulation +; PrintSimStats = 1 + +; Assertion File - alternate file for storing VHDL/PSL/Verilog assertion messages +; AssertFile = assert.log + +; Enable assertion counts. Default is off. +; AssertionCounts = 1 + +; Run simulator in assertion debug mode. Default is off. +; AssertionDebug = 1 + +; Turn on/off PSL/SVA/VHDL assertion enable. Default is on. +; AssertionEnable = 0 + +; Set PSL/SVA/VHDL concurrent assertion fail limit. Default is -1. +; Any positive integer, -1 for infinity. +; AssertionLimit = 1 + +; Turn on/off concurrent assertion pass log. Default is off. +; Assertion pass logging is only enabled when assertion is browseable +; and assertion debug is enabled. +; AssertionPassLog = 1 + +; Turn on/off PSL concurrent assertion fail log. Default is on. +; The flag does not affect SVA +; AssertionFailLog = 0 + +; Turn on/off SVA concurrent assertion local var printing in -assertdebug mode. Default is on. +; AssertionFailLocalVarLog = 0 + +; Set action type for PSL/SVA concurrent assertion fail action. Default is continue. +; 0 = Continue 1 = Break 2 = Exit +; AssertionFailAction = 1 + +; Enable the active thread monitor in the waveform display when assertion debug is enabled. +; AssertionActiveThreadMonitor = 1 + +; Control how many waveform rows will be used for displaying the active threads. Default is 5. +; AssertionActiveThreadMonitorLimit = 5 + +; Assertion thread limit after which assertion would be killed/switched off. +; The default is -1 (unlimited). If the number of threads for an assertion go +; beyond this limit, the assertion would be either switched off or killed. This +; limit applies to only assert directives. +;AssertionThreadLimit = -1 + +; Action to be taken once the assertion thread limit is reached. Default +; is kill. It can have a value of off or kill. In case of kill, all the existing +; threads are terminated and no new attempts are started. In case of off, the +; existing attempts keep on evaluating but no new attempts are started. This +; variable applies to only assert directives. +;AssertionThreadLimitAction = kill + +; Cover thread limit after which cover would be killed/switched off. +; The default is -1 (unlimited). If the number of threads for a cover go +; beyond this limit, the cover would be either switched off or killed. This +; limit applies to only cover directives. +;CoverThreadLimit = -1 + +; Action to be taken once the cover thread limit is reached. Default +; is kill. It can have a value of off or kill. In case of kill, all the existing +; threads are terminated and no new attempts are started. In case of off, the +; existing attempts keep on evaluating but no new attempts are started. This +; variable applies to only cover directives. +;CoverThreadLimitAction = kill + + +; By default immediate assertions do not participate in Assertion Coverage calculations +; unless they are executed. This switch causes all immediate assertions in the design +; to participate in Assertion Coverage calculations, whether attempted or not. +; UnattemptedImmediateAssertions = 0 + +; By default immediate covers participate in Coverage calculations +; whether they are attempted or not. This switch causes all unattempted +; immediate covers in the design to stop participating in Coverage +; calculations. +; UnattemptedImmediateCovers = 0 + +; By default pass action block is not executed for assertions on vacuous +; success. The following variable is provided to enable execution of +; pass action block on vacuous success. The following variable is only effective +; if the user does not disable pass action block execution by using either +; system tasks or CLI. Also there is a performance penalty for enabling +; the following variable. +;AssertionEnableVacuousPassActionBlock = 1 + +; As per strict 1850-2005 PSL LRM, an always property can either pass +; or fail. However, by default, Questa reports multiple passes and +; multiple fails on top always/never property (always/never operator +; is the top operator under Verification Directive). The reason +; being that Questa reports passes and fails on per attempt of the +; top always/never property. Use the following flag to instruct +; Questa to strictly follow LRM. With this flag, all assert/never +; directives will start an attempt once at start of simulation. +; The attempt can either fail, match or match vacuously. +; For e.g. if always is the top operator under assert, the always will +; keep on checking the property at every clock. If the property under +; always fails, the directive will be considered failed and no more +; checking will be done for that directive. A top always property, +; if it does not fail, will show a pass at end of simulation. +; The default value is '0' (i.e. zero is off). For example: +; PslOneAttempt = 1 + +; Specify the number of clock ticks to represent infinite clock ticks. +; This affects eventually!, until! and until_!. If at End of Simulation +; (EOS) an active strong-property has not clocked this number of +; clock ticks then neither pass or fail (vacuous match) is returned +; else respective fail/pass is returned. The default value is '0' (zero) +; which effectively does not check for clock tick condition. For example: +; PslInfinityThreshold = 5000 + +; Control how many thread start times will be preserved for ATV viewing for a given assertion +; instance. Default is -1 (ALL). +; ATVStartTimeKeepCount = -1 + +; Turn on/off code coverage +; CodeCoverage = 0 + +; This option applies to condition and expression coverage UDP tables. It +; has no effect unless UDP is enabled for coverage with vcom/vlog/vopt -coverudp. +; If this option is used and a match occurs in more than one row in the UDP table, +; none of the counts for all matching rows is incremented. By default, counts are +; incremented for all matching rows. +; CoverCountAll = 1 + +; Turn off automatic inclusion of VHDL integers in toggle coverage. Default +; is to include them. +; ToggleNoIntegers = 1 + +; Set the maximum number of values that are collected for toggle coverage of +; VHDL integers. Default is 100; +; ToggleMaxIntValues = 100 + +; Set the maximum number of values that are collected for toggle coverage of +; Verilog real. Default is 100; +; ToggleMaxRealValues = 100 + +; Turn on automatic inclusion of Verilog integers in toggle coverage, except +; for enumeration types. Default is to include them. +; ToggleVlogIntegers = 0 + +; Turn on automatic inclusion of Verilog real type in toggle coverage, except +; for shortreal types. Default is to not include them. +; ToggleVlogReal = 1 + +; Turn on automatic inclusion of Verilog fixed-size unpacked arrays, VHDL multi-d arrays +; and VHDL arrays-of-arrays in toggle coverage. +; Default is to not include them. +; ToggleFixedSizeArray = 1 + +; Increase or decrease the maximum size of Verilog unpacked fixed-size arrays, +; VHDL multi-d arrays and VHDL arrays-of-arrays that are included for toggle coverage. +; This leads to a longer simulation time with bigger arrays covered with toggle coverage. +; Default is 1024. +; ToggleMaxFixedSizeArray = 1024 + +; Treat Verilog multi-dimensional packed vectors and packed structures as equivalently sized +; one-dimensional packed vectors for toggle coverage. Default is 0. +; TogglePackedAsVec = 0 + +; Treat Verilog enumerated types as equivalently sized one-dimensional packed vectors for +; toggle coverage. Default is 0. +; ToggleVlogEnumBits = 0 + +; Turn off automatic inclusion of VHDL records in toggle coverage. +; Default is to include them. +; ToggleVHDLRecords = 0 + +; Limit the widths of registers automatically tracked for toggle coverage. Default is 128. +; For unlimited width, set to 0. +; ToggleWidthLimit = 128 + +; Limit the counts that are tracked for toggle coverage. When all edges for a bit have +; reached this count, further activity on the bit is ignored. Default is 1. +; For unlimited counts, set to 0. +; ToggleCountLimit = 1 + +; Change the mode of extended toggle coverage. Default is 3. Valid modes are 1, 2 and 3. +; Following is the toggle coverage calculation criteria based on extended toggle mode: +; Mode 1: 0L->1H & 1H->0L & any one 'Z' transition (to/from 'Z'). +; Mode 2: 0L->1H & 1H->0L & one transition to 'Z' & one transition from 'Z'. +; Mode 3: 0L->1H & 1H->0L & all 'Z' transitions. +; ExtendedToggleMode = 3 + +; Enable toggle statistics collection only for ports. Default is 0. +; TogglePortsOnly = 1 + +; Limit the counts that are tracked for Focussed Expression Coverage. When a bin has +; reached this count, further tracking of the input patterns linked to it is ignored. +; Default is 1. For unlimited counts, set to 0. +; NOTE: Changing this value from its default value may affect simulation performance. +; FecCountLimit = 1 + +; Limit the counts that are tracked for UDP Coverage. When a bin has +; reached this count, further tracking of the input patterns linked to it is ignored. +; Default is 1. For unlimited counts, set to 0. +; NOTE: Changing this value from its default value may affect simulation performance. +; UdpCountLimit = 1 + +; Control toggle coverage deglitching period. A period of 0, eliminates delta +; cycle glitches. This is the default. The value of ToggleDeglitchPeriod needs to be either +; 0 or a time string that includes time units. Examples: 0 or 10.0ps or "10.0 ps". +; ToggleDeglitchPeriod = 10.0ps + +; Turn on/off all PSL/SVA cover directive enables. Default is on. +; CoverEnable = 0 + +; Turn on/off PSL/SVA cover log. Default is off "0". +; CoverLog = 1 + +; Set "at_least" value for all PSL/SVA cover directives. Default is 1. +; CoverAtLeast = 2 + +; Set "limit" value for all PSL/SVA cover directives. Default is -1. +; Any positive integer, -1 for infinity. +; CoverLimit = 1 + +; Specify the coverage database filename. +; Default is "" (i.e. database is NOT automatically saved on close). +; UCDBFilename = vsim.ucdb + +; Specify the maximum limit for the number of Cross (bin) products reported +; in XML and UCDB report against a Cross. A warning is issued if the limit +; is crossed. Default is zero. vsim switch -cvgmaxrptrhscross can override this +; setting. +; MaxReportRhsSVCrossProducts = 1000 + +; Specify the override for the "auto_bin_max" option for the Covergroups. +; If not specified then value from Covergroup "option" is used. +; SVCoverpointAutoBinMax = 64 + +; Specify the override for the value of "cross_num_print_missing" +; option for the Cross in Covergroups. If not specified then value +; specified in the "option.cross_num_print_missing" is used. This +; is a runtime option. NOTE: This overrides any "cross_num_print_missing" +; value specified by user in source file and any SVCrossNumPrintMissingDefault +; specified in modelsim.ini. +; SVCrossNumPrintMissing = 0 + +; Specify whether to use the value of "cross_num_print_missing" +; option in report and GUI for the Cross in Covergroups. If not specified then +; cross_num_print_missing is ignored for creating reports and displaying +; covergroups in GUI. Default is 0, which means ignore "cross_num_print_missing". +; UseSVCrossNumPrintMissing = 0 + +; Specify the threshold of Coverpoint wildcard bin value range size, above which +; a warning will be triggered. The default is 4K -- 12 wildcard bits. +; SVCoverpointWildCardBinValueSizeWarn = 4096 + +; Specify the override for the value of "strobe" option for the +; Covergroup Type. If not specified then value in "type_option.strobe" +; will be used. This is runtime option which forces "strobe" to +; user specified value and supersedes user specified values in the +; SystemVerilog Code. NOTE: This also overrides the compile time +; default value override specified using "SVCovergroupStrobeDefault" +; SVCovergroupStrobe = 0 + +; Override for explicit assignments in source code to "option.goal" of +; SystemVerilog covergroup, coverpoint, and cross. It also overrides the +; default value of "option.goal" (defined to be 100 in the SystemVerilog +; LRM) and the value of modelsim.ini variable "SVCovergroupGoalDefault". +; SVCovergroupGoal = 100 + +; Override for explicit assignments in source code to "type_option.goal" of +; SystemVerilog covergroup, coverpoint, and cross. It also overrides the +; default value of "type_option.goal" (defined to be 100 in the SystemVerilog +; LRM) and the value of modelsim.ini variable "SVCovergroupTypeGoalDefault". +; SVCovergroupTypeGoal = 100 + +; Enforce the 6.3 behavior of covergroup get_coverage() and get_inst_coverage() +; builtin functions, and report. This setting changes the default values of +; option.get_inst_coverage and type_option.merge_instances to ensure the 6.3 +; behavior if explicit assignments are not made on option.get_inst_coverage and +; type_option.merge_instances by the user. There are two vsim command line +; options, -cvg63 and -nocvg63 to override this setting from vsim command line. +; The default value of this variable from release 6.6 onwards is 0. This default +; drives compliance with the clarified behavior in the IEEE 1800-2009 standard. +; SVCovergroup63Compatibility = 0 + +; Enforce the default behavior of covergroup get_coverage() builtin function, GUI +; and report. This variable sets the default value of type_option.merge_instances. +; There are two vsim command line options, -cvgmergeinstances and +; -nocvgmergeinstances to override this setting from vsim command line. +; The default value of this variable, -1 (don't care), allows the tool to determine +; the effective value, based on factors related to capacity and optimization. +; The type_option.merge_instances appears in the GUI and coverage reports as either +; auto(1) or auto(0), depending on whether the effective value was determined to +; be a 1 or a 0. +; SVCovergroupMergeInstancesDefault = -1 + +; Enable or disable generation of more detailed information about the sampling +; of covergroup, cross, and coverpoints. It provides the details of the number +; of times the covergroup instance and type were sampled, as well as details +; about why covergroup, cross and coverpoint were not covered. A non-zero value +; is to enable this feature. 0 is to disable this feature. Default is 0 +; SVCovergroupSampleInfo = 0 + +; Specify the maximum number of Coverpoint bins in whole design for +; all Covergroups. +; MaxSVCoverpointBinsDesign = 2147483648 + +; Specify maximum number of Coverpoint bins in any instance of a Covergroup, default is 2^10 bins +; MaxSVCoverpointBinsInst = 1048576 + +; Specify the maximum number of Cross bins in whole design for +; all Covergroups. +; MaxSVCrossBinsDesign = 2147483648 + +; Specify maximum number of Cross bins in any instance of a Covergroup, default is 2^16 bins +; MaxSVCrossBinsInst = 67108864 + +; Specify whether vsim will collect the coverage data of zero-weight coverage items or not. +; By default, this variable is set 0, in which case option.no_collect setting will take effect. +; If this variable is set to 1, all zero-weight coverage items will not be saved. +; Note that the usage of vsim switch -cvgzwnocollect, if present, will override the setting +; of this variable. +; CvgZWNoCollect = 1 + +; Specify a space delimited list of double quoted TCL style +; regular expressions which will be matched against the text of all messages. +; If any regular expression is found to be contained within any message, the +; status for that message will not be propagated to the UCDB TESTSTATUS. +; If no match is detected, then the status will be propagated to the +; UCDB TESTSTATUS. More than one such regular expression text is allowed, +; and each message text is compared for each regular expression in the list. +; UCDBTestStatusMessageFilter = "Done with Test Bench" "Ignore .* message" + +; Set weight for all PSL/SVA cover directives. Default is 1. +; CoverWeight = 2 + +; Check vsim plusargs. Default is 0 (off). +; 0 = Don't check plusargs +; 1 = Warning on unrecognized plusarg +; 2 = Error and exit on unrecognized plusarg +; CheckPlusargs = 1 + +; Load the specified shared objects with the RTLD_GLOBAL flag. +; This gives global visibility to all symbols in the shared objects, +; meaning that subsequently loaded shared objects can bind to symbols +; in the global shared objects. The list of shared objects should +; be whitespace delimited. This option is not supported on the +; Windows or AIX platforms. +; GlobalSharedObjectList = example1.so example2.so example3.so + +; Generate the stub definitions for the undefined symbols in the shared libraries being +; loaded in the simulation. When this flow is turned on, the undefined symbols will not +; prevent vsim from loading. Calling undefined symbols at runtime will cause fatal error. +; The valid arguments are: on, off, verbose. +; on : turn on the automatic generation of stub definitions. +; off: turn off the flow. The undefined symbols will trigger an immediate load failure. +; verbose: Turn on the flow and report the undefined symbols for each shared library. +; NOTE: This variable can be overriden with vsim switch "-undefsyms". +; The default is on. +; +; UndefSyms = off + +; Enable the support for checkpointing foreign C++ libraries. +; The valid arguments are: 1 and 0. +; 1 : turn on the support +; 0 : turn off the support (default) +; This option is not supported on the Windows platforms. +; +; AllowCheckpointCpp = 1 + +; Initial seed for the random number generator of the root thread (SystemVerilog). +; NOTE: This variable can be overridden with the vsim "-sv_seed" command line switch. +; The default value is 0. +; Sv_Seed = 0 + +; Specify the solver "engine" that vsim will select for constrained random +; generation. +; Valid values are: +; "auto" - automatically select the best engine for the current +; constraint scenario +; "bdd" - evaluate all constraint scenarios using the BDD solver engine +; "act" - evaluate all constraint scenarios using the ACT solver engine +; While the BDD solver engine is generally efficient with constraint scenarios +; involving bitwise logical relationships, the ACT solver engine can exhibit +; superior performance with constraint scenarios involving large numbers of +; random variables related via arithmetic operators (+, *, etc). +; NOTE: This variable can be overridden with the vsim "-solveengine" command +; line switch. +; The default value is "auto". +; SolveEngine = auto + +; Specifies the maximum size that a dynamic array may be resized to by the +; solver. If the solver attempts to resize a dynamic array to a size greater +; than the specified limit, the solver will abort with an error. +; The default value is 10000. A value of 0 indicates no limit. +; SolveArrayResizeMax = 10000 + +; Error message severity when normal randomize() and randomize(null) failures are detected. +; Integer value up to two digits are allowed with each digit having the following legal values: +; 0 = No error 1 = Warning 2 = Error 3 = Failure 4 = Fatal +; +; 1) When a value with two digits is used, the digit at tenth place (leftmost digit) represents +; the severtity setting for normal randomize() calls. The digit at ones place (rightmost digit) +; represents the setting for randomize(null) calls. +; +; 2) When a single digit value is used, the setting is applied to both normal randomize() call +; and randomize(null) call. +; +; Example: -solvefailseverity=40 means: +; fatal error for failed normal randomize() calls and NO error for failed randomize(null) calls. +; +; The default is 0 (no error). +; SolveFailSeverity = 0 + +; Error message severity for suppressible errors that are detected in a +; solve/before constraint. +; NOTE: This variable can be overridden with the vsim "-solvebeforeerrorseverity" +; command line switch. +; 0 = No error 1 = Warning 2 = Error 3 = Failure 4 = Fatal +; The default is 3 (failure). +; SolveBeforeErrorSeverity = 3 + +; Error message severity for suppressible errors that are related to +; solve engine capacity limits +; NOTE: This variable can be overridden with the vsim "-solveengineerrorseverity" +; command line switch. +; 0 = No error 1 = Warning 2 = Error 3 = Failure 4 = Fatal +; The default is 3 (failure). +; SolveEngineErrorSeverity = 3 + +; Enable/disable debug information for randomize() failures. +; NOTE: This variable can be overridden with the vsim "-solvefaildebug" command +; line switch. +; The default is 0 (disabled). Set to 1 to enable basic debug (with no +; performance penalty). Set to 2 for enhanced debug (will result in slower +; runtime performance). +; SolveFailDebug = 0 + +; Upon encountering a randomize() failure, generate a simplified testcase that +; will reproduce the failure. Optionally output the testcase to a file. +; Testcases for 'no-solution' failures will only be produced if SolveFailDebug +; is enabled (see above). +; NOTE: This variable can be overridden with the vsim "-solvefailtestcase" +; command line switch. +; The default is OFF (do not generate a testcase). To enable testcase +; generation, uncomment this variable. To redirect testcase generation to a +; file, specify the name of the output file. +; SolveFailTestcase = + +; Specify solver timeout threshold (in seconds). randomize() will fail if the +; CPU time required to evaluate any randset exceeds the specified timeout. +; The default value is 500. A value of 0 will disable timeout failures. +; SolveTimeout = 500 + +; Specify the maximum size of the solution graph generated by the BDD solver. +; This value can be used to force the BDD solver to abort the evaluation of a +; complex constraint scenario that cannot be evaluated with finite memory. +; This value is specified in 1000s of nodes. +; The default value is 10000. A value of 0 indicates no limit. +; SolveGraphMaxSize = 10000 + +; Specify the maximum number of evaluations that may be performed on the +; solution graph by the BDD solver. This value can be used to force the BDD +; solver to abort the evaluation of a complex constraint scenario that cannot +; be evaluated in finite time. This value is specified in 10000s of evaluations. +; The default value is 10000. A value of 0 indicates no limit. +; SolveGraphMaxEval = 10000 + +; Specify random sequence compatiblity with a prior letter release. This +; option is used to get the same random sequences during simulation as +; as a prior letter release. Only prior letter releases (of the current +; number release) are allowed. +; NOTE: Only those random sequence changes due to solver optimizations are +; reverted by this variable. Random sequence changes due to solver bugfixes +; cannot be un-done. +; NOTE: This variable can be overridden with the vsim "-solverev" command +; line switch. +; Default value set to "" (no compatibility). +; SolveRev = + +; Environment variable expansion of command line arguments has been depricated +; in favor shell level expansion. Universal environment variable expansion +; inside -f files is support and continued support for MGC Location Maps provide +; alternative methods for handling flexible pathnames. +; The following line may be uncommented and the value set to 1 to re-enable this +; deprecated behavior. The default value is 0. +; DeprecatedEnvironmentVariableExpansion = 0 + +; Specify the memory threshold for the System Verilog garbage collector. +; The value is the number of megabytes of class objects that must accumulate +; before the garbage collector is run. +; The GCThreshold setting is used when class debug mode is disabled to allow +; less frequent garbage collection and better simulation performance. +; The GCThresholdClassDebug setting is used when class debug mode is enabled +; to allow for more frequent garbage collection. +; GCThreshold = 100 +; GCThresholdClassDebug = 5 + +; Turn on/off collapsing of bus ports in VCD dumpports output +DumpportsCollapse = 1 + +; Location of Multi-Level Verification Component (MVC) installation. +; The default location is the product installation directory. +MvcHome = $MODEL_TECH/.. + +; Location of InFact installation. The default is $MODEL_TECH/../../infact +; +; InFactHome = $MODEL_TECH/../../infact + +; Initialize SystemVerilog enums using the base type's default value +; instead of the leftmost value. +; EnumBaseInit = 1 + +; Suppress file type registration. +; SuppressFileTypeReg = 1 + +; Enable/disable non-LRM compliant SystemVerilog language extensions. +; Valid extensions are: +; altdpiheader - Alternative style function signature generated in DPI header", +; cfce - generate an error if $cast fails as a function +; cfmt - C like formatting for specifiers with '#' prefix ('%#x', '%#h') +; dfsp - sets default format specifier as %p, if no format specifier is given for unpacked array in $display and related systasks +; expdfmt - enable format string extensions for $display/$sformatf +; extscan - support values greater than 32 bit for string builtin methods (atohex, atobin, atooct, atoi) +; fmtcap - prints capital hex digits with %X/%H in display calls +; iddp - ignore DPI disable protocol check +; lfmt - zero-pad data if '0' prefixes width in format specifier (e.g. "%04h") +; noexptc - ignore DPI export type name overloading check +; realrand - support randomize() with real variables and constraints (Default) +; thrdrngshfl - use the thread RNG for array.shuffle +; SvExtensions = [+|-]<extension>[,[+|-]<extension>*] + +; Enable/disable non-LRM compliant SystemVerilog constrained-random language extensions. +; Valid extensions are: +; arraymode - consider rand_mode of unpacked array field independently from its elements +; deepcheck - allow randomize(null) to recursively consider constraints from member rand class handles +; funcback - enable function backtracking (ACT only) +; nodist - interpret 'dist' constraint as 'inside' (ACT only) +; noorder - ignore solve/before ordering constraints (ACT only) +; promotedist - promote priority of 'dist' constraint if LHS has no solve/before +; randindex - allow random index in constraint (Default) +; randstruct - consider all fields of unpacked structs as 'rand' +; skew - skew randomize results (ACT only) +; strictstab - strict random stability +; SvRandExtensions = [+|-]<extension>[,[+|-]<extension>*] + +; Controls the formatting of '%p' and '%P' conversion specification, used in $display +; and similar system tasks. +; 1. SVPrettyPrintFlags=I<n><S|T> use <n> spaces(S) or tabs(T) per indentation level. +; The 'I' flag when present causes relevant data types to be expanded and indented into +; a more readable format. +; (e.g. SVPrettyPrintFlags=I4S will cause 4 spaces to be used per indentation level). +; 2. SVPrettyPrintFlags=L<numLines> limits the output to <numLines> lines. +; (e.g. SVPrettyPrintFlags=L20 will limit the output to 20 lines). +; 3. SVPrettyPrintFlags=C<numChars> limits the output to <numChars> characters. +; (e.g. SVPrettyPrintFlags=C256 will limit the output to 256 characters). +; 4. SVPrettyPrintFlags=F<numFields> limits the output to <numFields> of relevant datatypes +; (e.g. SVPrettyPrintFlags=F4 will limit the output to 4 fields of a structure). +; 5. SVPrettyPrintFlags=E<numElements> limits the output to <numElements> of relevant datatypes +; (e.g. SVPrettyPrintFlags=E50 will limit the output to 50 elements of an array). +; 6. SVPrettyPrintFlags=D<depth> suppresses the output of sub-elements below <depth>. +; (e.g. SVPrettyPrintFlags=D5 will suppresses the output of sub elements below a depth of 5). +; 7. SVPrettyPrintFlags=R<specifier> shows the output of specifier %p as per the specifed radix. +; It changes the output in $display and similar systasks. It does not affect formatted output functions ($displayh etc)). +; (e.g. SVPrettyPrintFlags=Rb will show the output of %p specifier in binary format. +; 8. Items 1-7 above can be combined as a comma separated list. +; (e.g. SVPrettyPrintFlags=I4S,L20,C256,F4,E50,D5,Rb) +; SVPrettyPrintFlags=I4S + +[lmc] +; The simulator's interface to Logic Modeling's SmartModel SWIFT software +libsm = $MODEL_TECH/libsm.sl +; The simulator's interface to Logic Modeling's SmartModel SWIFT software (Windows NT) +; libsm = $MODEL_TECH/libsm.dll +; Logic Modeling's SmartModel SWIFT software (HP 9000 Series 700) +; libswift = $LMC_HOME/lib/hp700.lib/libswift.sl +; Logic Modeling's SmartModel SWIFT software (IBM RISC System/6000) +; libswift = $LMC_HOME/lib/ibmrs.lib/swift.o +; Logic Modeling's SmartModel SWIFT software (Sun4 Solaris) +; libswift = $LMC_HOME/lib/sun4Solaris.lib/libswift.so +; Logic Modeling's SmartModel SWIFT software (Windows NT) +; libswift = $LMC_HOME/lib/pcnt.lib/libswift.dll +; Logic Modeling's SmartModel SWIFT software (non-Enterprise versions of Linux) +; libswift = $LMC_HOME/lib/x86_linux.lib/libswift.so +; Logic Modeling's SmartModel SWIFT software (Enterprise versions of Linux) +; libswift = $LMC_HOME/lib/linux.lib/libswift.so + +; The simulator's interface to Logic Modeling's hardware modeler SFI software +libhm = $MODEL_TECH/libhm.sl +; The simulator's interface to Logic Modeling's hardware modeler SFI software (Windows NT) +; libhm = $MODEL_TECH/libhm.dll +; Logic Modeling's hardware modeler SFI software (HP 9000 Series 700) +; libsfi = <sfi_dir>/lib/hp700/libsfi.sl +; Logic Modeling's hardware modeler SFI software (IBM RISC System/6000) +; libsfi = <sfi_dir>/lib/rs6000/libsfi.a +; Logic Modeling's hardware modeler SFI software (Sun4 Solaris) +; libsfi = <sfi_dir>/lib/sun4.solaris/libsfi.so +; Logic Modeling's hardware modeler SFI software (Windows NT) +; libsfi = <sfi_dir>/lib/pcnt/lm_sfi.dll +; Logic Modeling's hardware modeler SFI software (Linux) +; libsfi = <sfi_dir>/lib/linux/libsfi.so + +[msg_system] +; Change a message severity or suppress a message. +; The format is: <msg directive> = <msg number>[,<msg number>...] +; suppress can be used to achieve +nowarn<CODE> functionality +; The format is: suppress = <CODE>,<msg number>,[<CODE>,<msg number>,...] +; Examples: +suppress = 8780 ;an explanation can be had by running: verror 8780 +; note = 3009 +; warning = 3033 +; error = 3010,3016 +; fatal = 3016,3033 +; suppress = 3009,3016,3601 +; suppress = 3009,CNNODP,3601,TFMPC +; suppress = 8683,8684 +; The command verror <msg number> can be used to get the complete +; description of a message. + +; Control transcripting of Verilog display system task messages and +; PLI/FLI print function call messages. The system tasks include +; $display[bho], $strobe[bho], $monitor[bho], and $write[bho]. They +; also include the analogous file I/O tasks that write to STDOUT +; (i.e. $fwrite or $fdisplay). The PLI/FLI calls include io_printf, +; vpi_printf, mti_PrintMessage, and mti_PrintFormatted. The default +; is to have messages appear only in the transcript. The other +; settings are to send messages to the wlf file only (messages that +; are recorded in the wlf file can be viewed in the MsgViewer) or +; to both the transcript and the wlf file. The valid values are +; tran {transcript only (default)} +; wlf {wlf file only} +; both {transcript and wlf file} +; displaymsgmode = tran + +; Control transcripting of elaboration/runtime messages not +; addressed by the displaymsgmode setting. The default is to +; have messages appear only in the transcript. The other settings +; are to send messages to the wlf file only (messages that are +; recorded in the wlf file can be viewed in the MsgViewer) or to both +; the transcript and the wlf file. The valid values are +; tran {transcript only (default)} +; wlf {wlf file only} +; both {transcript and wlf file} +; msgmode = tran + +; Controls number of displays of a particluar message +; default value is 5 +; MsgLimitCount = 5 + +[utils] +; Default Library Type (while creating a library with "vlib") +; 0 - legacy library using subdirectories for design units +; 2 - flat library +; DefaultLibType = 2 + +; Flat Library Page Size (while creating a library with "vlib") +; Set the size in bytes for flat library file pages. Libraries containing +; very large files may benefit from a larger value. +; FlatLibPageSize = 8192 + +; Flat Library Page Cleanup Percentage (while creating a library with "vlib") +; Set the percentage of total pages deleted before library cleanup can occur. +; This setting is applied together with FlatLibPageDeleteThreshold. +; FlatLibPageDeletePercentage = 50 + +; Flat Library Page Cleanup Threshold (while creating a library with "vlib") +; Set the number of pages deleted before library cleanup can occur. +; This setting is applied together with FlatLibPageDeletePercentage. +; FlatLibPageDeleteThreshold = 1000 + diff --git a/compteur/simulation/pnr/compteur.wave.do b/compteur/simulation/pnr/compteur.wave.do deleted file mode 100644 index 96fc0e5..0000000 --- a/compteur/simulation/pnr/compteur.wave.do +++ /dev/null @@ -1,24 +0,0 @@ -onerror {resume} -quietly WaveActivateNextPane {} 0 -add wave -noupdate /compteur_tb/clk -add wave -noupdate /compteur_tb/rst_n -add wave -noupdate {/compteur_tb/dut/rstn_sync[1]} -add wave -noupdate /compteur_tb/dut/o_cnt -TreeUpdate [SetDefaultTree] -WaveRestoreCursors {{Cursor 1} {8064 ps} 0} -quietly wave cursor active 1 -configure wave -namecolwidth 150 -configure wave -valuecolwidth 100 -configure wave -justifyvalue left -configure wave -signalnamewidth 1 -configure wave -snapdistance 10 -configure wave -datasetprefix 0 -configure wave -rowmargin 4 -configure wave -childrowmargin 2 -configure wave -gridoffset 0 -configure wave -gridperiod 100 -configure wave -griddelta 40 -configure wave -timeline 0 -configure wave -timelineunits ns -update -WaveRestoreZoom {0 ps} {40530 ps} diff --git a/compteur/simulation/run.do b/compteur/simulation/run.do new file mode 100644 index 0000000..cc99201 --- /dev/null +++ b/compteur/simulation/run.do @@ -0,0 +1,18 @@ +global tb +global dut +global vcd + +set StdArithNoWarnings 1 +set NumericStdNoWarnings 1 + +log * -r +add wave -r /* + +onerror { break } +onbreak { quit -sim } + +vcd file $vcd +vcd add -r /${tb}/${dut}/* + +run -all +vcd flush diff --git a/compteur/simulation/syn/compteur.wave.do b/compteur/simulation/syn/compteur.wave.do deleted file mode 100644 index 8146711..0000000 --- a/compteur/simulation/syn/compteur.wave.do +++ /dev/null @@ -1,24 +0,0 @@ -onerror {resume} -quietly WaveActivateNextPane {} 0 -add wave -noupdate /compteur_tb/clk -add wave -noupdate /compteur_tb/rst_n -add wave -noupdate {/compteur_tb/dut/rstn_sync[1]} -add wave -noupdate /compteur_tb/dut/o_cnt -TreeUpdate [SetDefaultTree] -WaveRestoreCursors {{Cursor 1} {5364 ps} 0} -quietly wave cursor active 1 -configure wave -namecolwidth 150 -configure wave -valuecolwidth 100 -configure wave -justifyvalue left -configure wave -signalnamewidth 1 -configure wave -snapdistance 10 -configure wave -datasetprefix 0 -configure wave -rowmargin 4 -configure wave -childrowmargin 2 -configure wave -gridoffset 0 -configure wave -gridperiod 100 -configure wave -griddelta 40 -configure wave -timeline 0 -configure wave -timelineunits ns -update -WaveRestoreZoom {0 ps} {40530 ps} diff --git a/compteur/sources/compteur.vhd b/compteur/sources/compteur.vhd index c7e93d7..48000f2 100644 --- a/compteur/sources/compteur.vhd +++ b/compteur/sources/compteur.vhd @@ -1,14 +1,14 @@ ------------------------------------------------------------------------------- --- Project : Tutoriels - Conception de circuits intégrés numériques +-- Project Tutoriels - Conception de circuits intégrés numériques ------------------------------------------------------------------------------- --- File : compteur.vhd --- Author : Mickael Fiorentino <mickael.fiorentino@polymtl.ca> --- Lab : grm@polymtl --- Date : 2019-07-24 +-- File compteur.vhd +-- Author Mickael Fiorentino <mickael.fiorentino@polymtl.ca> +-- Lab grm@polymtl +-- Date 2019-10-02 ------------------------------------------------------------------------------- --- Description: Compteur BCD à 1 chiffre (4 bits) +-- Brief Compteur BCD à 1 chiffre (4 bits) ------------------------------------------------------------------------------- -library ieee; +library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; @@ -27,24 +27,24 @@ architecture beh of compteur is signal cnt : unsigned(3 downto 0); signal rstn_sync : std_logic_vector(1 downto 0); alias rstn : std_logic is rstn_sync(1); - + begin - -- Output + -- Output o_cnt <= std_logic_vector(cnt); -- Reset synchronizer p_rstn: process (i_clk) - begin + begin if (i_rstn = '0') then rstn_sync <= (others => '0'); elsif rising_edge(i_clk) then rstn_sync(0) <= '1'; rstn_sync(1) <= rstn_sync(0); - end if; + end if; end process p_rstn; - -- Main process with asynchronous reset + -- Main process with asynchronous reset p_bcd: process (i_clk, rstn) begin if (rstn = '0') then @@ -59,5 +59,5 @@ begin end if; end if; end process p_bcd; - + end architecture beh; diff --git a/compteur/sources/compteur_tb.vhd b/compteur/sources/compteur_tb.vhd index bb9f4d5..4d8280a 100644 --- a/compteur/sources/compteur_tb.vhd +++ b/compteur/sources/compteur_tb.vhd @@ -1,24 +1,24 @@ ------------------------------------------------------------------------------- --- Project : Tutoriels - Conception de circuits intégrés numériques +-- Project Tutoriels - Conception de circuits intégrés numériques ------------------------------------------------------------------------------- --- File : compteur_tb.vhd --- Author : Mickael Fiorentino <mickael.fiorentino@polymtl.ca> --- Lab : grm@polymtl --- Date : 2019-07-24 +-- File compteur_tb.vhd +-- Author Mickael Fiorentino <mickael.fiorentino@polymtl.ca> +-- Lab grm@polymtl +-- Date 2019-10-02 ------------------------------------------------------------------------------- --- Description: Banc d'essai du compteur BCD +-- Brief Banc d'essai du compteur BCD ------------------------------------------------------------------------------- -library ieee; +library ieee; use ieee.std_logic_1164.all; library std; -use std.textio.all; +use std.textio.all; use std.env.all; library work; use work.all; -entity compteur_tb is +entity compteur_tb is end compteur_tb; architecture tb of compteur_tb is @@ -30,55 +30,80 @@ architecture tb of compteur_tb is i_en : in std_logic; o_cnt : out std_logic_vector(3 downto 0)); end component compteur; - - signal clk : std_logic := '0'; - signal rst_n : std_logic := '0'; - signal en : std_logic := '0'; - signal cnt : std_logic_vector(3 downto 0); - constant PERIOD : time := 1 ns; + signal clk : std_logic := '0'; + signal clk_en : std_logic := '0'; + signal rstn : std_logic := '0'; + signal rst_en : std_logic := '0'; + signal en : std_logic := '0'; + signal cnt : std_logic_vector(3 downto 0); + + constant PERIOD : time := 1250 ps; constant TB_LOOP : positive := 2; - constant EXPECTED : std_logic_vector(3 downto 0) := "0011"; - + constant EXPECTED : std_logic_vector(3 downto 0) := "0100"; + begin - -- Clock - clk <= not clk after PERIOD / 2; + clk <= not clk after PERIOD/2 when clk_en = '1' else '0'; + + -- Reset + p_rst : process(clk) + begin + if falling_edge(clk) then + if rst_en = '1' then + rstn <= not rstn; + end if; + end if; + end process p_rst; -- DUT dut: compteur port map ( i_clk => clk, - i_rstn => rst_n, + i_rstn => rstn, i_en => en, o_cnt => cnt); -- Main TB process p_main : process begin - report "SIMULATION STARTS"; + report "BEGIN SIMULATION"; + + -- Start the clock after 2 period to let the Xs settle. + wait for 2*PERIOD; + clk_en <= '1'; for i in 0 to TB_LOOP-1 loop - en <= '0'; - rst_n <= '0'; - wait for 2.3 * PERIOD; - rst_n <= '1'; - en <= '1'; + + -- Toggle Reset + wait until rising_edge(clk); + rst_en <= '1'; + wait for PERIOD; + rst_en <= '0'; + en <= '1'; + + -- Count 15 cycles wait for 15 * PERIOD; - en <= '0'; + en <= '0'; - -- Assertion - wait for 1*PERIOD; + -- Check final value + wait for PERIOD; assert cnt = EXPECTED report " cnt = " & to_hstring(cnt) & ", should be = " & to_hstring(EXPECTED) severity WARNING; - wait for 1*PERIOD; - + wait for PERIOD; + + -- Toggle reset + rst_en <= '1'; + wait for PERIOD; + rst_en <= '0'; + wait for PERIOD; + end loop; - + report "SIMULATION ENDS"; - stop; + finish; end process p_main; - + end architecture tb; -- GitLab