diff --git a/README.md b/README.md
index 2c7273800d7ca626927da9f5e21342d25f1a8ecc..9a5f9449b7d8077f5d003f0fb6ee177bc3004a65 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-## Installer Openocd
+0## Installer Openocd
 
 Si ce n'est pas le cas, Les outils suivants doivent être installés : make, libtool, pkg-config, autoconf, automake, texinfo.
 
@@ -50,6 +50,7 @@ Une ligne ressemblant à celle-ci doit s'afficher :
 ```
 Bus 005 Device 003: ID 0403:6014 Future Technology Devices International, Ltd FT232HSingle HS USB-UART/FIFO IC
 ```
+Débrancher le câble HS2.
 
 ## Installer gdb-multiarch
 
@@ -116,24 +117,18 @@ git apply 0001-coremark-modification.patch
 cd sw/app
 ```
 
-Les scripts liés à coremark sont en python2...
+Un script lié à coremark est en python2. Dans le fichier ../utils/bin2mem.py, remplacer python par python2.
 
 ```
-sudo rm /usr/bin/python
-sudo ln -s /usr/bin/python2.7 /usr/bin/python
-
 make coremark.mem
 cd ../..
-
-sudo rm /usr/bin/python
-sudo ln -s /usr/bin/python3 /usr/bin/python
-
 make cva6_fpga
 ```
 
 ## Charger le projet dans Vivado.
 
-Pour le moment, connecter uniquement le câble USB vers le port usb JTAG de la carte.
+Pour le moment, connecter uniquement le câble USB vers le port USB JTAG de la carte.
+Brancher et allumer la carte vcu118.
 
 Dans vivado :
 
@@ -142,7 +137,7 @@ Open project /fpga/cva6_fpga.xpr
 Sous PROGRAM AND DEBUG/Open Hardware Manager
 
 1. Open Target(AutoConnect)
-2. Program Device(xc7z020_1)
+2. Program Device(xcvu9p_0)
 
 Sur la carte, la led bleue s’allume quand le programme est chargé.
 Fermer vivado.
@@ -166,7 +161,7 @@ Dans un terminal :
 Verifier quel ttyUSB est connecté au port uart de la carte
 déconnecter le câble, `ls /dev/ttyUSB*`, 
 reconnecter le cable, `ls /dev/ttyUSB*`. 
-En comparant les deux résultats, on trouve les deux nouveaux dev qui correspondent au port uart de la carte (nommés ttyUSB0 et ttyUSB1 par la suite).
+En comparant les deux résultats, on trouve les deux nouveaux dev qui correspondent au port uart de la carte (nommés ttyUSB0 et ttyUSB1 par la suite). D'après nos expériences, il faut utiliser le plus grand des deux.
 
 Dans un nouveau terminal qu’on laisse ouvert pour avoir les retours de l’UART
 
diff --git a/fpga/constraints/vcu118.xdc b/fpga/constraints/vcu118.xdc
new file mode 100644
index 0000000000000000000000000000000000000000..a0f7baaa78247f726dc7d7fead1e12a2fe013df8
--- /dev/null
+++ b/fpga/constraints/vcu118.xdc
@@ -0,0 +1,27 @@
+
+set_property -dict {PACKAGE_PIN G31 IOSTANDARD LVDS} [get_ports clk_sys_p]
+set_property -dict {PACKAGE_PIN F31 IOSTANDARD LVDS} [get_ports clk_sys_n]
+
+set_property -dict {PACKAGE_PIN BE22 IOSTANDARD LVCMOS18} [get_ports reset]
+
+## To use FTDI FT2232 JTAG
+set_property -dict {PACKAGE_PIN AV16 IOSTANDARD LVCMOS18} [get_ports trst_n]
+set_property -dict {PACKAGE_PIN AV15 IOSTANDARD LVCMOS18} [get_ports tck]
+set_property -dict {PACKAGE_PIN AY15 IOSTANDARD LVCMOS18} [get_ports tdi]
+set_property -dict {PACKAGE_PIN AW15 IOSTANDARD LVCMOS18} [get_ports tdo]
+set_property -dict {PACKAGE_PIN AY14 IOSTANDARD LVCMOS18} [get_ports tms]
+
+## UART
+set_property -dict {PACKAGE_PIN BB21 IOSTANDARD LVCMOS18} [get_ports tx]
+set_property -dict {PACKAGE_PIN AW25 IOSTANDARD LVCMOS18} [get_ports rx]
+
+## JTAG
+# minimize routing delay
+
+set_max_delay -to [get_ports tdo] 20.000
+set_max_delay -from [get_ports tms] 20.000
+set_max_delay -from [get_ports tdi] 20.000
+set_max_delay -from [get_ports trst_n] 20.000
+
+# reset signal
+set_false_path -from [get_ports trst_n]
diff --git a/sw/utils/bin2mem.py b/sw/utils/bin2mem.py
index a8700696897d9b23c1a6f5b7c4dd542876a7b060..6e1fd9e8470c8a8b5728b5c5f13137d2ebea5c77 100755
--- a/sw/utils/bin2mem.py
+++ b/sw/utils/bin2mem.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
 # Copyright (c) 2020 Thales.
 #