diff --git a/openlane/aes/config.tcl b/openlane/aes/config.tcl
index bdec18d..971f604 100755
--- a/openlane/aes/config.tcl
+++ b/openlane/aes/config.tcl
@@ -28,20 +28,20 @@
 
 set ::env(CLOCK_PORT) "clock"
 set ::env(CLOCK_NET) "aes.clock"
-set ::env(CLOCK_PERIOD) "50"
+set ::env(CLOCK_PERIOD) "15"
 
 
 #Specifies a time margin for the slack when fixing hold violations. 
 #Normally the resizer will stop when it reaches zero slack.
 # This option allows you to overfix. (Default: 0.1ns)
 
-set ::env(GLB_RESIZER_HOLD_SLACK_MARGIN) {0.6}
-set ::env(PL_RESIZER_HOLD_SLACK_MARGIN) {0.6}
+set ::env(GLB_RESIZER_HOLD_SLACK_MARGIN) {0.9}
+set ::env(PL_RESIZER_HOLD_SLACK_MARGIN) {0.9}
 
 #area
 
 set ::env(FP_SIZING) absolute
-set ::env(DIE_AREA) "0 0 800 1000"
+set ::env(DIE_AREA) "0 0 800 800"
 set ::env(PL_TARGET_DENSITY) 0.3
 #set ::env(PL_BASIC_PLACEMENT) 1
 set ::env(GLB_RT_ALLOW_CONGESTION) 1
@@ -63,6 +63,6 @@
 set ::env(VDD_NETS) [list {vccd1}]
 set ::env(GND_NETS) [list {vssd1}]
 
-set ::env(DIODE_INSERTION_STRATEGY) 4 
+set ::env(DIODE_INSERTION_STRATEGY) 1 
 # If you're going to use multiple power domains, then disable cvc run.
 set ::env(RUN_CVC) 1
diff --git a/openlane/aes/config.tcl.gold b/openlane/aes/config.tcl.gold
deleted file mode 100644
index 711143c..0000000
--- a/openlane/aes/config.tcl.gold
+++ /dev/null
@@ -1,58 +0,0 @@
-# SPDX-FileCopyrightText: 2020 Efabless Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# SPDX-License-Identifier: Apache-2.0
-
-set ::env(PDK) "sky130A"
-set ::env(STD_CELL_LIBRARY) "sky130_fd_sc_hd"
-
-set script_dir [file dirname [file normalize [info script]]]
-
-set ::env(DESIGN_NAME) aes
-
-
-set ::env(VERILOG_FILES) "\
-	$script_dir/../../verilog/rtl/aes/generated/*.v"
-
-set ::env(DESIGN_IS_CORE) 0
-
-set ::env(CLOCK_PORT) "clock"
-set ::env(CLOCK_NET) "aes.clock"
-set ::env(CLOCK_PERIOD) "100"
-
-set ::env(FP_SIZING) absolute
-set ::env(DIE_AREA) "0 0 1000 1000"
-
-#set ::env(FP_PIN_ORDER_CFG) $script_dir/pin_order.cfg
-#set ::env(PL_SKIP_INITIAL_PLACEMENT) 0
-#set ::env(PL_BASIC_PLACEMENT) 1
-set ::env(PL_TARGET_DENSITY) 0.1
-set ::env(GLB_RT_ALLOW_CONGESTION) 1
-#set ::env(ROUTING_CORES) 4
-
-# Maximum layer used for routing is metal 4.
-# This is because this macro will be inserted in a top level (user_project_wrapper) 
-# where the PDN is planned on metal 5. So, to avoid having shorts between routes
-# in this macro and the top level metal 5 stripes, we have to restrict routes to metal4.  
-# 
-# set ::env(GLB_RT_MAXLAYER) 5
-
-set ::env(RT_MAX_LAYER) {met4}
-
-# You can draw more power domains if you need to 
-set ::env(VDD_NETS) [list {vccd1}]
-set ::env(GND_NETS) [list {vssd1}]
-
-set ::env(DIODE_INSERTION_STRATEGY) 4 
-# If you're going to use multiple power domains, then disable cvc run.
-set ::env(RUN_CVC) 1
diff --git a/verilog/dv/aes_test/Makefile b/verilog/dv/aes_test/Makefile
index 483de8e..82d9c65 100644
--- a/verilog/dv/aes_test/Makefile
+++ b/verilog/dv/aes_test/Makefile
@@ -24,11 +24,13 @@
 CONFIG = caravel_user_project
 
 
+
 include $(MCW_ROOT)/verilog/dv/make/env.makefile
 include $(MCW_ROOT)/verilog/dv/make/var.makefile
 include $(MCW_ROOT)/verilog/dv/make/cpu.makefile
-SOURCE_FILES := $(SOURCE_FILES) $(shell pwd)/tiny-AES-c/aes.c
-$(info SOURCE_FILES=$(SOURCE_FILES) )
+
+SOURCE_FILES  := $(SOURCE_FILES) $(shell pwd)/tiny-AES-c_lite/aes.c
+
 include $(MCW_ROOT)/verilog/dv/make/sim.makefile
 
 
diff --git a/verilog/dv/aes_test/aes_test.c b/verilog/dv/aes_test/aes_test.c
index 9cb985d..5c22f02 100644
--- a/verilog/dv/aes_test/aes_test.c
+++ b/verilog/dv/aes_test/aes_test.c
@@ -19,6 +19,12 @@
 	aes[8] = 0x1;
 	
 	while(aes[9]==0x00000000); //aes finish
+	
+	//Word
+	word[0] = aes[0];
+  word[1] = aes[1];
+	word[2] = aes[2];
+	word[3] = aes[3]; 
 }
 
 void caravel_setup(){
@@ -56,37 +62,40 @@
 
 void main(int argc, char** argv) {	
   caravel_setup();
+
+//AES HARDWARE 
 	int key[] = {0x00010203, 0x04050607, 0x08090a0b, 0x0c0d0e0f};
 	int word[] = {0x00112233, 0x44556677, 0x8899aabb, 0xccddeeff};
 	aes_crypt(key , word);
-  uint8_t i, j;
-  for (i = 0; i < 4; ++i)
-  {
-    for (j = 0; j < 4; ++j)
-    {
-     // (*state)[j][i] = getSBoxValue((*state)[j][i]);
-    }
-  }
+
 	reg_mprj_datal = 0xCAFE0000;
 
+//AES SOFTWARE
 	struct AES_ctx ctx;
-	uint8_t aeskey[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };
-	uint8_t str[] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff };
-	reg_mprj_datal = 0x12340000;
-	reg_mprj_datal = 0xBEEF0000;
+	uint8_t aeskey[]	= { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };
+	uint8_t str[] 		= { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff };
 	AES_init_ctx(&ctx, aeskey);
-	
-	reg_mprj_datal = 0x12340000;
-	reg_mprj_datal = 0xBEEF0000;
-	AES_CBC_encrypt_buffer(&ctx, str, 16);
-
-	int k;
-	for ( k= 0; k < 16; ++k) {
-   		reg_mprj_datal = (int)str[i];
+	AES_ECB_encrypt(&ctx, str);
+  
+ reg_mprj_datal= 0;
+ bool pass=true;
+ char count=0;	    
+ int a,b;
+ uint8_t i, k;	
+	for ( k= 0; (k < 4) && pass; ++k) {	
+		for ( i= 3; (i >= 0) && pass; --i) {
+	      reg_mprj_datal = a = (( word[k] >> i*8 ) & 0xFF) << 24;
+	      reg_mprj_datal = 0;
+   			reg_mprj_datal = b = ((int) str[count])					<< 24;
+				if(a!=b) pass	 = false;
+				count++;
+	 	}
 	}
-
+	
+	
+ 
 	// Flag end of the test
-	reg_mprj_datal = 0xAB610000;
+	if(pass) reg_mprj_datal = 0xAB610000;
 
 }
 
diff --git a/verilog/dv/aes_test/aes_test_tb.v b/verilog/dv/aes_test/aes_test_tb.v
index fee53e2..18da711 100644
--- a/verilog/dv/aes_test/aes_test_tb.v
+++ b/verilog/dv/aes_test/aes_test_tb.v
@@ -42,7 +42,7 @@
 	initial begin
 		clock = 0;
 	end
-  parameter ncycles= 1000;
+  parameter ncycles= 70;
 	initial begin
 		$dumpfile("aes_test.vcd");
 		$dumpvars(0, aes_test_tb);
