Skip to content

Commit

Permalink
Flow stuck on detailed routing
Browse files Browse the repository at this point in the history
  • Loading branch information
Asma-Mohsin committed Dec 7, 2024
1 parent 06e18ee commit 7310bdf
Show file tree
Hide file tree
Showing 14 changed files with 23,189 additions and 125 deletions.
Binary file added gds/N_term_RAM_IO.gds
Binary file not shown.
236 changes: 118 additions & 118 deletions openlane/user_project_wrapper/macro_manipulated_test.cfg
Original file line number Diff line number Diff line change
@@ -1,121 +1,121 @@
eFPGA_top_i.eFPGA_inst.Tile_X0Y1_W_IO 218 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y2_W_IO 218 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y3_W_IO 218 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y4_W_IO 218 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y5_W_IO 218 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y6_W_IO 218 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y7_W_IO 218 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y8_W_IO 218 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y9_W_IO 218 865 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y10_W_IO 218 635 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y11_W_IO 218 405 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y12_W_IO 218 175 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y0_N_term_single 303 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y1_LUT4AB 303 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y2_LUT4AB 303 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y3_LUT4AB 303 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y4_LUT4AB 303 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y5_LUT4AB 303 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y6_LUT4AB 303 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y7_LUT4AB 303 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y8_LUT4AB 303 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y9_LUT4AB 303 865 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y10_LUT4AB 303 635 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y11_LUT4AB 303 405 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y12_LUT4AB 303 175 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y13_S_term_single 303 100 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y0_N_term_single 538 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y1_LUT4AB 538 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y2_LUT4AB 538 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y3_LUT4AB 538 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y4_LUT4AB 538 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y5_LUT4AB 538 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y6_LUT4AB 538 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y7_LUT4AB 538 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y8_LUT4AB 538 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y9_LUT4AB 538 865 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y10_LUT4AB 538 635 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y11_LUT4AB 538 405 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y12_LUT4AB 538 175 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y13_S_term_single 538 100 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y0_N_term_single2 768 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y1_RegFile 768 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y2_RegFile 768 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y3_RegFile 768 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y4_RegFile 768 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y5_RegFile 768 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y6_RegFile 768 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y7_RegFile 768 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y8_RegFile 768 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y9_RegFile 768 865 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y10_RegFile 768 635 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y11_RegFile 768 405 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y12_RegFile 768 175 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y13_S_term_single2 768 100 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y0_N_term_single 1008 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y1_LUT4AB 1008 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y2_LUT4AB 1008 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y3_LUT4AB 1008 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y4_LUT4AB 1008 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y5_LUT4AB 1008 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y6_LUT4AB 1008 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y7_LUT4AB 1008 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y8_LUT4AB 1008 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y9_LUT4AB 1008 865 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y10_LUT4AB 1008 635 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y11_LUT4AB 1008 405 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y12_LUT4AB 1008 175 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y13_S_term_single 1008 100 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y0_N_term_single 1238 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y1_LUT4AB 1238 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y2_LUT4AB 1238 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y3_LUT4AB 1238 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y4_LUT4AB 1238 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y5_LUT4AB 1238 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y6_LUT4AB 1238 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y7_LUT4AB 1238 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y8_LUT4AB 1238 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y9_LUT4AB 1238 865 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y10_LUT4AB 1238 635 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y11_LUT4AB 1238 405 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y12_LUT4AB 1238 175 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y13_S_term_single 1238 100 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y0_N_term_DSP 1478 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y1_DSP 1478 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y3_DSP 1478 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y5_DSP 1478 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y7_DSP 1478 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y9_DSP 1478 635 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y11_DSP 1478 175 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y13_S_term_DSP 1478 100 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y0_N_term_single 1713 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y1_LUT4AB 1713 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y2_LUT4AB 1713 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y3_LUT4AB 1713 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y4_LUT4AB 1713 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y5_LUT4AB 1713 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y6_LUT4AB 1713 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y7_LUT4AB 1713 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y8_LUT4AB 1713 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y9_LUT4AB 1713 865 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y10_LUT4AB 1713 635 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y11_LUT4AB 1713 405 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y12_LUT4AB 1713 175 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y13_S_term_single 1713 100 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y0_N_term_single 1945 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y1_LUT4AB 1945 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y2_LUT4AB 1945 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y3_LUT4AB 1945 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y4_LUT4AB 1945 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y5_LUT4AB 1945 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y6_LUT4AB 1945 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y7_LUT4AB 1945 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y8_LUT4AB 1945 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y9_LUT4AB 1945 865 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y10_LUT4AB 1945 635 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y11_LUT4AB 1945 405 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y12_LUT4AB 1945 175 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y13_S_term_single 1945 100 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y1_W_IO 202 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y2_W_IO 202 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y3_W_IO 202 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y4_W_IO 202 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y5_W_IO 202 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y6_W_IO 202 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y7_W_IO 202 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y8_W_IO 202 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y9_W_IO 202 865 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y10_W_IO 202 635 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y11_W_IO 202 405 N
eFPGA_top_i.eFPGA_inst.Tile_X0Y12_W_IO 202 175 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y0_N_term_single 289 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y1_LUT4AB 289 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y2_LUT4AB 289 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y3_LUT4AB 289 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y4_LUT4AB 289 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y5_LUT4AB 289 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y6_LUT4AB 289 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y7_LUT4AB 289 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y8_LUT4AB 289 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y9_LUT4AB 289 865 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y10_LUT4AB 289 635 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y11_LUT4AB 289 405 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y12_LUT4AB 289 175 N
eFPGA_top_i.eFPGA_inst.Tile_X1Y13_S_term_single 289 100 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y0_N_term_single 526 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y1_LUT4AB 526 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y2_LUT4AB 526 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y3_LUT4AB 526 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y4_LUT4AB 526 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y5_LUT4AB 526 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y6_LUT4AB 526 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y7_LUT4AB 526 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y8_LUT4AB 526 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y9_LUT4AB 526 865 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y10_LUT4AB 526 635 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y11_LUT4AB 526 405 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y12_LUT4AB 526 175 N
eFPGA_top_i.eFPGA_inst.Tile_X2Y13_S_term_single 526 100 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y0_N_term_single2 758 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y1_RegFile 758 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y2_RegFile 758 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y3_RegFile 758 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y4_RegFile 758 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y5_RegFile 758 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y6_RegFile 758 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y7_RegFile 758 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y8_RegFile 758 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y9_RegFile 758 865 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y10_RegFile 758 635 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y11_RegFile 758 405 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y12_RegFile 758 175 N
eFPGA_top_i.eFPGA_inst.Tile_X3Y13_S_term_single2 758 100 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y0_N_term_single 1000 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y1_LUT4AB 1000 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y2_LUT4AB 1000 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y3_LUT4AB 1000 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y4_LUT4AB 1000 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y5_LUT4AB 1000 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y6_LUT4AB 1000 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y7_LUT4AB 1000 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y8_LUT4AB 1000 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y9_LUT4AB 1000 865 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y10_LUT4AB 1000 635 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y11_LUT4AB 1000 405 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y12_LUT4AB 1000 175 N
eFPGA_top_i.eFPGA_inst.Tile_X4Y13_S_term_single 1000 100 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y0_N_term_single 1232 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y1_LUT4AB 1232 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y2_LUT4AB 1232 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y3_LUT4AB 1232 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y4_LUT4AB 1232 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y5_LUT4AB 1232 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y6_LUT4AB 1232 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y7_LUT4AB 1232 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y8_LUT4AB 1232 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y9_LUT4AB 1232 865 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y10_LUT4AB 1232 635 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y11_LUT4AB 1232 405 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y12_LUT4AB 1232 175 N
eFPGA_top_i.eFPGA_inst.Tile_X5Y13_S_term_single 1232 100 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y0_N_term_DSP 1474 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y1_DSP 1474 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y3_DSP 1474 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y5_DSP 1474 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y7_DSP 1474 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y9_DSP 1474 635 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y11_DSP 1474 175 N
eFPGA_top_i.eFPGA_inst.Tile_X6Y13_S_term_DSP 1474 100 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y0_N_term_single 1711 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y1_LUT4AB 1711 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y2_LUT4AB 1711 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y3_LUT4AB 1711 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y4_LUT4AB 1711 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y5_LUT4AB 1711 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y6_LUT4AB 1711 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y7_LUT4AB 1711 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y8_LUT4AB 1711 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y9_LUT4AB 1711 865 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y10_LUT4AB 1711 635 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y11_LUT4AB 1711 405 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y12_LUT4AB 1711 175 N
eFPGA_top_i.eFPGA_inst.Tile_X7Y13_S_term_single 1711 100 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y0_N_term_single 1943 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y1_LUT4AB 1943 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y2_LUT4AB 1943 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y3_LUT4AB 1943 2245 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y4_LUT4AB 1943 2015 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y5_LUT4AB 1943 1785 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y6_LUT4AB 1943 1555 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y7_LUT4AB 1943 1325 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y8_LUT4AB 1943 1095 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y9_LUT4AB 1943 865 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y10_LUT4AB 1943 635 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y11_LUT4AB 1943 405 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y12_LUT4AB 1943 175 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y13_S_term_single 1943 100 N
eFPGA_top_i.eFPGA_inst.Tile_X9Y0_N_term_RAM_IO 2175 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X9Y1_RAM_IO 2175 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X9Y2_RAM_IO 2175 2475 N
Expand Down
2 changes: 1 addition & 1 deletion openlane/user_project_wrapper/macro_placement.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ eFPGA_top_i.eFPGA_inst.Tile_X8Y10_LUT4AB 1945 635 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y11_LUT4AB 1945 405 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y12_LUT4AB 1945 175 N
eFPGA_top_i.eFPGA_inst.Tile_X8Y13_S_term_single 1945 100 N
eFPGA_top_i.eFPGA_inst.Tile_X9Y0_N_term_RAM_IO 2175 3033 N
eFPGA_top_i.eFPGA_inst.Tile_X9Y0_N_term_RAM_IO 2175 3024 N
eFPGA_top_i.eFPGA_inst.Tile_X9Y1_RAM_IO 2175 2705 N
eFPGA_top_i.eFPGA_inst.Tile_X9Y2_RAM_IO 2175 2475 N
eFPGA_top_i.eFPGA_inst.Tile_X9Y3_RAM_IO 2175 2245 N
Expand Down
9 changes: 3 additions & 6 deletions scripts/manipulate_macro_cfg.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
#!/usr/bin/env python3
import math
import re
import shutil
import os
from datetime import datetime

#TODO: Improve this script so e.g. arguments can be given from the command line

Expand Down Expand Up @@ -301,7 +298,7 @@ def main():
angle = -90 # Rotation angle in degrees
x_offset = 100
y_offset = 100
x_space_offset = 2
x_space_offset = 5
y_space_offset = 1
pdn_pitch_vertical = 75

Expand All @@ -314,8 +311,8 @@ def main():
# tiles = change_space_between_tiles_horizontal(tiles, x_space_offset, False,
# x_start, x_stop)
#FIXME: This is just a workaround, function does not work correctly
x_start = 8
x_stop = 7
x_start = 9
x_stop = 0
# tiles = change_space_between_tiles_horizontal(tiles, x_space_offset, False,
# x_start, x_stop)
tiles = change_space_between_tiles_horizontal(tiles, x_space_offset, False,
Expand Down
99 changes: 99 additions & 0 deletions scripts/update_verilator_directives.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
#!/usr/bin/env python3

import os
import argparse

# List of valid Tilename values
TILE_NAMES = [
"S_term_single", "S_term_single2", "S_term_RAM_IO", "S_term_DSP",
"N_term_single", "N_term_single2", "N_term_RAM_IO", "N_term_DSP",
"DSP", "RAM_IO", "RegFile", "W_IO"
]

# Individual Verilator directives
LINT_OFF_LINES = [
"/* verilator lint_off UNUSEDSIGNAL */",
"/* verilator lint_off UNDRIVEN */",
"/* verilator lint_off UNUSEDPARAM */"
]

LINT_ON_LINES = [
"/* verilator lint_on UNUSEDSIGNAL */",
"/* verilator lint_on UNDRIVEN */",
"/* verilator lint_on UNUSEDPARAM */"
]

def ensure_directives(lines, directives, position):
"""
Ensures the given directives are present at the specified position.
Args:
lines (list): The lines of the file.
directives (list): List of directives to ensure.
position (int): Position to insert directives (1 for after the first line, -1 for end).
"""
if position == 1:
insertion_index = 1
range_to_check = lines[:5] # Check near the start
else:
insertion_index = len(lines)
range_to_check = lines[-5:] # Check near the end
if not lines[-1].strip(): # Ensure trailing newline for consistent formatting
insertion_index -= 1

# Add missing directives
for directive in directives:
if not any(directive in line for line in range_to_check):
lines.insert(insertion_index, directive + "\n")
insertion_index += 1

def update_verilog_file(filepath):
"""
Updates a Verilog file to add Verilator directives if they are missing.
Args:
filepath (str): Path to the Verilog file.
"""
with open(filepath, 'r') as file:
lines = file.readlines()

# Ensure Lint-Off directives are present after the first line
ensure_directives(lines, LINT_OFF_LINES, position=1)

# Ensure Lint-On directives are present at the end of the file
ensure_directives(lines, LINT_ON_LINES, position=-1)

# Write back the updated content
with open(filepath, 'w') as file:
file.writelines(lines)

def process_files(base_dir, tile_names):
"""
Processes Verilog files in the given directory.
Args:
base_dir (str): Base directory containing the Verilog files.
tile_names (list): List of valid tile names.
"""
for tile_name in tile_names:
filepath = os.path.join(base_dir, tile_name, f"{tile_name}.v")
if os.path.exists(filepath):
print(f"Processing {filepath}...")
update_verilog_file(filepath)
else:
print(f"File not found: {filepath}")

def main():
parser = argparse.ArgumentParser(description="Add Verilator directives to Verilog files.")
parser.add_argument(
"--base-dir",
type=str,
default="./verilog/rtl/Tile",
help="Base directory containing the Verilog files."
)
args = parser.parse_args()

process_files(args.base_dir, TILE_NAMES)

if __name__ == "__main__":
main()
Loading

0 comments on commit 7310bdf

Please sign in to comment.