\documentclass[border=1mm]{standalone}

\usepackage{cmap}
\usepackage[cp1250]{inputenc}	
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{lmodern}
\usepackage{tikz}
\usepackage{float}
\usepackage{siunitx}
\usepackage{amsmath}
\usepackage{upgreek}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\usepgfplotslibrary{units}
% \makeatletter
%\pgfplotsset{
%  unit code/.code 2 args=
%    \begingroup
%    \protected@edef\x{\endgroup\si{#2}}\x
%} 
%\makeatother

\pgfkeys{%
  /tikz/on layer/.code={
    \pgfonlayer{#1}\begingroup
    \aftergroup\endpgfonlayer
    \aftergroup\endgroup
  }
}

\begin{document}
	\begin{tikzpicture}
	
		\begin{axis}[
			name=main plot,
			height=5cm,	width=10cm,	grid=major,
    		y unit=\SI{}{\mega\hertz},
			ylabel={$f_\mathrm{0}$},
			xmin=0, 
			xmax=81,
			ymin=580,
			ymax=660,
			%xtick distance = 250e-12,
			ytick distance = 20,
			ytick = {580,600,625,650,660},
			set layers,
			%x tick label style={/pgf/number format/.cd, set thousands separator={}},
			xticklabel shift = 2 pt,
			legend pos=north east,
			xticklabels =\empty,
			scaled x ticks = false,
			xlabel =,
			ymajorgrids=true,
      		xmajorgrids=false,
      		xmajorticks=false,
		]		
			
			\addplot +[only marks,color=black,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{freq}*1e-6, col sep=semicolon] {../cadence_data/corners_nom.csv};
			\addplot +[only marks,color=red,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{freq}*1e-6, col sep=semicolon] {../cadence_data/corners_ff.csv};
			\addplot +[only marks,color=green!70!black,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{freq}*1e-6, col sep=semicolon] {../cadence_data/corners_fs.csv};
			\addplot +[only marks,color=cyan,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{freq}*1e-6, col sep=semicolon] {../cadence_data/corners_sf.csv};
			\addplot +[only marks,color=blue,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{freq}*1e-6, col sep=semicolon] {../cadence_data/corners_ss.csv};
			\addplot +[only marks,color=blue,mark=*,mark options={solid,fill=blue!25!white}] table [x expr=\thisrow{val},y expr = \thisrow{freq}*1e-6, col sep=semicolon] {../cadence_data/corners_ss_bad1.csv};
			\addplot +[only marks,color=blue,mark=square*,mark options={solid,fill=blue!25!white}] table [x expr=\thisrow{val},y expr = \thisrow{freq}*1e-6, col sep=semicolon] {../cadence_data/corners_ss_bad2.csv};
			
		\end{axis}
		\begin{axis}[
			name = second plot,
      		at={(main plot.below south west)},
      		height=5cm,	width=10cm,	grid=major,
      		anchor=north west,    % <-- added
      		yshift=-0.1cm,          % <-- adjusted
      		xmin=0, 
      		xmax=81,
      		ymin=0.5,ymax=1,
      		ytick distance = 0.1,
      		%xtick distance = 250e-12,
      		ylabel=$V_\mathrm{CPO}$,
      		y unit=\SI{}{\volt},
      		xticklabels =\empty,
			scaled x ticks = false,
			xlabel =,
			legend style={at={(0.5,0.4)},anchor=north},
			ymajorgrids=true,
      		xmajorgrids=false,
      		xmajorticks=false,
      		]
      		
      		\addplot +[only marks,color=black,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{cpo}, col sep=semicolon] {../cadence_data/corners_nom.csv}; 
      		\addplot +[only marks,color=red,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{cpo}, col sep=semicolon] {../cadence_data/corners_ff.csv};
      		\addplot +[only marks,color=green!70!black,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{cpo}, col sep=semicolon] {../cadence_data/corners_fs.csv};
      		\addplot +[only marks,color=cyan,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{cpo}, col sep=semicolon] {../cadence_data/corners_sf.csv}; 
      		\addplot +[only marks,color=blue,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{cpo}, col sep=semicolon] {../cadence_data/corners_ss.csv};
      		\addplot +[only marks,color=blue,mark=*,mark options={solid,fill=blue!25!white}] table [x expr=\thisrow{val},y expr = \thisrow{cpo}, col sep=semicolon] {../cadence_data/corners_ss_bad1.csv};
      		\addplot +[only marks,color=blue,mark=square*,mark options={solid,fill=blue!25!white}] table [x expr=\thisrow{val},y expr = \thisrow{cpo}, col sep=semicolon] {../cadence_data/corners_ss_bad2.csv};      		
      		
    	\end{axis}
    	
    	\begin{axis}[
			name = third plot,
      		at={(second plot.below south west)},
      		height=5cm,	width=10cm,	grid=major,
      		anchor=north west,    % <-- added
      		yshift=-0.1cm,          % <-- adjusted
      		xmin=0, 
      		xmax=81,
      		ymin=10,ymax=25,
      		%ytick distance = 10,
      		%xtick distance = 250e-12,
      		ylabel=$I_\mathrm{BIAS}$,
      		y unit=\SI{}{\micro\ampere},
      		xticklabels =\empty,
			scaled x ticks = false,
			xlabel =,
			legend style={at={(0.5,0.4)},anchor=north},
			ymajorgrids=true,
      		xmajorgrids=false,
      		xmajorticks=false,
      		]
      		
      		\addplot +[only marks,color=black,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{current}*1e6, col sep=semicolon] {../cadence_data/corners_nom.csv}; 
      		\addplot +[only marks,color=red,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{current}*1e6, col sep=semicolon] {../cadence_data/corners_ff.csv};
      		\addplot +[only marks,color=green!70!black,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{current}*1e6, col sep=semicolon] {../cadence_data/corners_fs.csv}; 
      		\addplot +[only marks,color=cyan,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{current}*1e6, col sep=semicolon] {../cadence_data/corners_sf.csv};
      		\addplot +[only marks,color=blue,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{current}*1e6, col sep=semicolon] {../cadence_data/corners_ss.csv};
      		\addplot +[only marks,color=blue,mark=*,mark options={solid,fill=blue!25!white}] table [x expr=\thisrow{val},y expr = \thisrow{current}*1e6, col sep=semicolon] {../cadence_data/corners_ss_bad1.csv};
      		\addplot +[only marks,color=blue,mark=square*,mark options={solid,fill=blue!25!white}] table [x expr=\thisrow{val},y expr = \thisrow{current}*1e6, col sep=semicolon] {../cadence_data/corners_ss_bad2.csv};        		
      		
    	\end{axis}
    	
    	\begin{axis}[
			name = fourth plot,
      		at={(third plot.below south west)},
      		height=5cm,	width=10cm,	grid=major,
      		anchor=north west,    % <-- added
      		yshift=-0.1cm,          % <-- adjusted
      		xmin=0, 
      		xmax=81,
      		ymin=-25,ymax=10,
      		ytick distance = 5,
      		%xtick distance = 250e-12,
      		ylabel=FPD $t_\mathrm{in}$,
      		y unit=\SI{}{\pico\second},
      		xlabel = PVT corners,
      		ymajorgrids=true,
      		xmajorgrids=false,
      		xmajorticks=false,
      		%x unit = \SI{}{\nano\second},
      		xticklabels =\empty,
			scaled x ticks = false,
			legend columns =-1,
			legend style={at={(0.5,-0.17)},anchor=north},
			legend style={/tikz/every even column/.append style={column sep=0.2cm}}
      		]
      		
      		\addplot +[only marks,color=black,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{phase}*1e12, col sep=semicolon] {../cadence_data/corners_nom.csv}; 
      		\addplot +[only marks,color=red,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{phase}*1e12, col sep=semicolon] {../cadence_data/corners_ff.csv};
      		\addplot +[only marks,color=green!70!black,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{phase}*1e12, col sep=semicolon] {../cadence_data/corners_fs.csv}; 
      		\addplot +[only marks,color=cyan,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{phase}*1e12, col sep=semicolon] {../cadence_data/corners_sf.csv};
      		\addplot +[only marks,color=blue,mark=x] table [x expr=\thisrow{val},y expr = \thisrow{phase}*1e12, col sep=semicolon] {../cadence_data/corners_ss.csv};   
      		\addplot +[only marks,color=blue,mark=*,mark options={solid,fill=blue!25!white}] table [x expr=\thisrow{val},y expr = \thisrow{phase}*1e12, col sep=semicolon] {../cadence_data/corners_ss_bad1.csv};
      		\addplot +[only marks,color=blue,mark=square*,mark options={solid,fill=blue!25!white}] table [x expr=\thisrow{val},y expr = \thisrow{phase}*1e12, col sep=semicolon] {../cadence_data/corners_ss_bad2.csv};     			
      		\addlegendentry{nominal};
      		\addlegendentry{FF};
      		\addlegendentry{FS};
      		\addlegendentry{SF};
      		\addlegendentry{SS};
      		\addlegendentry{SSa};
      		\addlegendentry{SSb};
      		
    	\end{axis}
		
	\end{tikzpicture}
\end{document}