aws / aws-fpga
Source Code Overview

Analysis scope, overview of main, test, generated, deployment, build, and other code.

Source Code Analysis Scope
Files includes and excluded from analyses
sv
v
txt
do
vh
vhd
svh
tcl
veo
vho
f
patch
ui
gitmodules
lpr
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

main1763230 LOC (92%) 3,233 files
test163 LOC (<1%) 3 files
generated3800 LOC (<1%) 1 file
build and deployment55870 LOC (2%) 280 files
other81581 LOC (4%) 834 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
v
sv
vhd
vh
vho
do
veo
svh
tcl
f
ui
lpr
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 3233 files match defined criteria (1,763,230 LOC, 100.0% vs. main code):
    • 125 *.xml files (477,717 LOC)
    • 762 *.v files (432,031 LOC)
    • 739 *.sv files (400,883 LOC)
    • 198 *.vhd files (186,101 LOC)
    • 349 *.vh files (132,383 LOC)
    • 52 *.cxx files (36,227 LOC)
    • 116 *.h files (35,337 LOC)
    • 56 *.vho files (15,768 LOC)
    • 494 *.do files (11,992 LOC)
    • 72 *.veo files (10,716 LOC)
    • 96 *.svh files (8,484 LOC)
    • 28 *.c files (6,242 LOC)
    • 54 *.cpp files (5,029 LOC)
    • 53 *.tcl files (1,856 LOC)
    • 12 *.py files (1,061 LOC)
    • 15 *.inc files (545 LOC)
    • 3 *.pl files (406 LOC)
    • 3 *.f files (282 LOC)
    • 1 *.hpp files (113 LOC)
    • 2 *.ui files (46 LOC)
    • 2 *.html files (6 LOC)
    • 1 *.lpr files (5 LOC)
  • " *.xml" is biggest, containing 27.09% of LOC.
  • " *.lpr" is smallest, containing 0% of LOC.


*.xml477717 LOC (27%) 125 files
*.v432031 LOC (24%) 762 files
*.sv400883 LOC (22%) 739 files
*.vhd186101 LOC (10%) 198 files
*.vh132383 LOC (7%) 349 files
*.cxx36227 LOC (2%) 52 files
*.h35337 LOC (2%) 116 files
*.vho15768 LOC (<1%) 56 files
*.do11992 LOC (<1%) 494 files
*.veo10716 LOC (<1%) 72 files
*.svh8484 LOC (<1%) 96 files
*.c6242 LOC (<1%) 28 files
*.cpp5029 LOC (<1%) 54 files
*.tcl1856 LOC (<1%) 53 files
*.py1061 LOC (<1%) 12 files
*.inc545 LOC (<1%) 15 files
*.pl406 LOC (<1%) 3 files
*.f282 LOC (<1%) 3 files
*.hpp113 LOC (<1%) 1 file
*.ui46 LOC (<1%) 2 files
*.html6 LOC (<1%) 2 files
*.lpr5 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
sv
svh
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/test_.*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*/[Tt]ests/.*".
  • 3 files match defined criteria (163 LOC, 0.0% vs. main code):
    • 1 *.sv files (98 LOC)
    • 1 *.svh files (46 LOC)
    • 1 *.c files (19 LOC)
  • " *.sv" is biggest, containing 60.12% of LOC.
  • " *.c" is smallest, containing 11.66% of LOC.


*.sv98 LOC (60%) 1 file
*.svh46 LOC (28%) 1 file
*.c19 LOC (11%) 1 file
Generated Code
Automatically generated files, not manually changed after generation.
v
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with any line of content like "//[ ]*Generated by .*".
  • 1 file matches defined criteria (3,800 LOC, 0.2% vs. main code). All matches are in *.v files.


*.v3800 LOC (100%) 1 file
Build and Deployment Code
Source code used to configure or support build and deployment process.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[.]gitmodules".
  • 280 files match defined criteria (55,870 LOC, 3.2% vs. main code). All matches are in *.sh files.


*.sh55870 LOC (100%) 280 files
Other Code
sv
txt
patch
tcl
svh
f
vh
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]patch".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.](rst|rest|resttxt|rsttxt)".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
  • 834 files match defined criteria (81,581 LOC, 4.6% vs. main code):
    • 108 *.sv files (28,792 LOC)
    • 580 *.txt files (28,601 LOC)
    • 24 *.rst files (7,044 LOC)
    • 10 *.patch files (4,740 LOC)
    • 23 *.c files (3,114 LOC)
    • 22 *.md files (3,072 LOC)
    • 20 *.tcl files (2,185 LOC)
    • 5 *.svh files (979 LOC)
    • 5 *.py files (834 LOC)
    • 14 *.f files (778 LOC)
    • 1 *.inc files (615 LOC)
    • 14 *.h files (554 LOC)
    • 8 *.vh files (273 LOC)
  • " *.sv" is biggest, containing 35.29% of LOC.
  • " *.vh" is smallest, containing 0.33% of LOC.


*.sv28792 LOC (35%) 108 files
*.txt28601 LOC (35%) 580 files
*.rst7044 LOC (8%) 24 files
*.patch4740 LOC (5%) 10 files
*.c3114 LOC (3%) 23 files
*.md3072 LOC (3%) 22 files
*.tcl2185 LOC (2%) 20 files
*.svh979 LOC (1%) 5 files
*.py834 LOC (1%) 5 files
*.f778 LOC (<1%) 14 files
*.inc615 LOC (<1%) 1 file
*.h554 LOC (<1%) 14 files
*.vh273 LOC (<1%) 8 files
Analyzers
Info about analyzers used for source code examinations.


2025-05-03 22:08