diff --git a/compteur/constraints/compteur.syn.sdc b/compteur/constraints/compteur.syn.sdc
new file mode 100644
index 0000000000000000000000000000000000000000..e285f8a8151719730216e9b44d49672848245ba3
--- /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 4c37e84ee79f19a31e03ec97620abf9a2b5d4e78..865702b66fea51012a71d994846417d515e43f83 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 b3d3f9252cae84793c1bc86c1f9f3735b25e95f6..9acdcb873b0b7027c29669541f9ff2c33fc01d21 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 0000000000000000000000000000000000000000..b4193518768a1eef39b2da7835bad5e9742d1303
--- /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 0000000000000000000000000000000000000000..9c69656eda7d734e3122b60032baea8728695b72
--- /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 0000000000000000000000000000000000000000..b489764c15c12d492f0a8c04bbec5fe28a31c593
--- /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 cfc93770aa0858c9541487731d87e8919bba6883..0000000000000000000000000000000000000000
--- 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 7dc594c3d589b57feb0b86354e579b5b2e4ef65b..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..016704744756295be33250bcbeb49e4b38e9feac
--- /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 0000000000000000000000000000000000000000..ad4d60622f8c8a7fd2367ca3675a4edd12bba876
--- /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 0000000000000000000000000000000000000000..e01e751c1e3622b31edad4e1fb54882f11c7a743
--- /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 0000000000000000000000000000000000000000..a098964cc4f36ebca347b9731875e9c2a0ab3378
--- /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 ac7533186f58814a56870b202f32ae3440eb89a0..0000000000000000000000000000000000000000
--- 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 6bdf8d9844ef6cbbf3b76bc69ecb4c04442a7e63..0000000000000000000000000000000000000000
--- 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 201ff5247e16827dbff67e994ed9e8a4ebf9f5b7..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..520704f948cbd3e6cd8d4b431e386c3292bd5a73
--- /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 0000000000000000000000000000000000000000..e385e114232672b8f3d6f338b9d2a36c2f3eb837
--- /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 00e69d41f684dfa3f43fad16ee9759e9a68e3bab..89ce38ba275ba48cc8b55c8e04af3b7215da362a 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 57e70cbef8f097d7ca905f574b1e71b78e25a794..6fad5b1b6d7e24389476236ad13c8bceebc22c8e 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 e5e5326751de1de0e8e0a25fbb12f2ad4db9535a..479a1361f73a18e7070fb8cab3004bae90036de9 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 734c02f18d727e2050db693e37078a3eee395871..a3cee456d1314d433e0aa6941e1df75859d43a09 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 8d9d669cfc242b35da80172062f1c972c1b737d3..d87d08ac6615eca67aa59cb0716fc7d9ce41a04c 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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postCTS.cap.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postCTS.fanout.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postCTS.length.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postCTS.summary.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postCTS.tran.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postCTS_all.tarpt.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postCTS_default.tarpt.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postCTS_reg2reg.tarpt.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postRoute.SI_Glitches.rpt.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postRoute.cap.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postRoute.fanout.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postRoute.length.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postRoute.summary.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postRoute.tran.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postRoute_all.tarpt.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postRoute_default.tarpt.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_postRoute_reg2reg.tarpt.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_prePlace.summary.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_prePlace_all.tarpt.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_prePlace_default.tarpt.gz differ
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
Binary files /dev/null and b/compteur/implementation/pnr/timing/compteur_prePlace_reg2reg.tarpt.gz differ
diff --git a/compteur/implementation/syn/.gitignore b/compteur/implementation/syn/.gitignore
deleted file mode 100644
index d90dde6a2db294e859118caf08ee31603b8344f9..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..d8787fb506e8b1ca76801e2a355562bc3d0c4932
--- /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 a45e2c06dcaf8aedd0aaacce64d657319f2662db..ee77b43c81a491ce87b542f6f2de60bc3897de3d 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 af80e8c65e6dc0445895e3c3cfc4fac7ae19e31b..1f1c14c41effe48dffa145ec4780849a725fb625 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 0000000000000000000000000000000000000000..527cadeed3878f314015b827ecf678f99b2f03fa
--- /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 0000000000000000000000000000000000000000..bf05d87fcdaeb75ed2abda2464f7cebe23a7ce89
--- /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 0000000000000000000000000000000000000000..784ce004b1c2792a5300708a2ab745d2e8247774
--- /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 0000000000000000000000000000000000000000..14105c7ad0d5ba3c8e8cb0bf29cccf991d86d4f3
--- /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 0000000000000000000000000000000000000000..04f5023cf55aaa8a68afac856b44ac77bb978e2b
--- /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 0000000000000000000000000000000000000000..f969153ff88307b9a1131d7acfe1f61b37baf73e
--- /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 0000000000000000000000000000000000000000..5a8e93298eb02ca8a35aaeb1f947700d4bcf6078
--- /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 0000000000000000000000000000000000000000..594b12271de83ff742b8f29e282166f37cd9bc25
--- /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 0000000000000000000000000000000000000000..4e64e91d16365cc52a1a388e48d6854023b25353
--- /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 0000000000000000000000000000000000000000..451a3f2181b0e99e1c23d129606fdf81285c2190
--- /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 0000000000000000000000000000000000000000..6a8d199122ab28b7490040b6d366e663420091e9
--- /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 886e7ea1e7899b3bd33b8ff78547706a72fd4f01..b4c5ce752af2b69589b1aa6cff10fb9f0ca04d6a 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 139084c6876b9f3d121f79f920050ab8c22ae3f2..4f3621c2d91bc94d1a33a802c895ae315c14af48 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 89770e44e1d969a252df21631297d3616cce3d32..4c2df9047fbd6f2ff567694d566669a035a7da57 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 9756f5cd7c41eeec317cd0ec6dd109ce8c56b3bf..897129983865e3979f702ab65ddc4259e7315add 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 d2e377e11b150d4d84d18afede49ec776626683b..e7adf33e6a54bb913aa9a12115709a32167f6b08 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 66b3198c51c7f2c4926e417ef7e30779c5556bd1..e094ac8327f85599054391cf7979a94f753c2704 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 be82ae3097e797358935920829319cdb8d0b2079..4477e1fc4c44332d6638d3491c054625507fdd2d 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 c2abd9ef44a6117705cc1aec517040742368cc70..6b6de4d56c3e145c888d62d8e63771fda3ed51b3 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 34a60684ef96d3343ed0b660b1cf83488f98e6d2..1989c5141b0c23550649d3f750080c7b9e04dad0 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 56fd162d0261c4e964a399604d2881a6d25463e9..141eacc2477b20faecfbb154d44956e4547f0a80 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 694d8cdab6690d4d1a78026e75506c5b9dbbe8c8..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..2583d9ed0064220e6f0ccb8c00e04d10db11bca4
--- /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 96fc0e5dcc8c5c2ffd51fec902d2e3e4fcbc2065..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..cc992010f2b3b6263cb95893b9f5c96e9051b471
--- /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 8146711eab9679fbfce77f2a293ca2f47e9c1951..0000000000000000000000000000000000000000
--- 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 c7e93d77f58149d5a47d477f3c7a0905891c51c6..48000f2b4ca33398fdb10e34a54ff9a0a2639774 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 bb9f4d5b675fc842a805484ee74b8b234564e3eb..4d8280a136f2ce5033300ceec02f127c57c9c059 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;