OpenCores
URL https://opencores.org/ocsvn/aes_pipe/aes_pipe/trunk

Subversion Repositories aes_pipe

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /aes_pipe/trunk
    from Rev 10 to Rev 11
    Reverse comparison

Rev 10 → Rev 11

/doc/arch.png Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
doc/arch.png Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: doc/clock.pdf =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: doc/clock.pdf =================================================================== --- doc/clock.pdf (nonexistent) +++ doc/clock.pdf (revision 11)
doc/clock.pdf Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: doc/aes_arch.tex =================================================================== --- doc/aes_arch.tex (nonexistent) +++ doc/aes_arch.tex (revision 11) @@ -0,0 +1,95 @@ +\documentclass[a4paper]{article} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{amsfonts} +\usepackage{graphicx} +\DeclareGraphicsExtensions{.pdf,.eps,.png,.jpg} +\usepackage{color} +\usepackage{psfig} +\usepackage{float} +\usepackage{subfigure} +\setlength\topmargin{0 in} +\setlength\oddsidemargin{0 in} +\setlength\textwidth{6.5 in} + +\title{Fully Pipelined AES Core} +\author{Subhasis Das} +\date{} + +\begin{document} +\maketitle +\section*{Basic Architecture} +This core meets the NIST FIPS-197 specifications. The basic block diagram is given in Figure \ref{arch}. +\begin{figure}[h] +\centering +\includegraphics[scale=0.7]{arch} +\caption{Basic Architecture} +\label{arch} +\end{figure} + +I have generated each of the roundkeys in two steps. Let us call +\[ +\text{RotWord}(\text{ Sbox}(C_3)\;)\text{ xor RCon}\; = \;f(C_3) +\] +Then, we can see that +\begin{equation*} +\begin{aligned} +C_0^\prime &= f(C_3) \;\text{xor}\; C_0 \\ +C_1^\prime &= f(C_3) \;\text{xor}\; C_0 \;\text{xor}\; C_1 \\ +C_2^\prime &= f(C_3) \;\text{xor}\; C_0 \;\text{xor}\; C_1 \;\text{xor}\; C_2 \\ +C_3^\prime &= f(C_3) \;\text{xor}\; C_0 \;\text{xor}\; C_1 \;\text{xor}\; C_2 \;\text{xor}\; C_3 +\end{aligned} +\end{equation*} +where $C_i$ is the column i of the current roundkey and $C_i^\prime$ is the column i of the next roundkey. +This first step of generating $f(C_3)$ is done alongwith the addkey step of the previous cycle and the second step is done in the combined S-Box and ShiftRows step. + +The inputs to the overall processor are as follows: +\begin{itemize} +\item clk\_i: System Clock, Data I/O at rising edge +\item rst\_i: Asynchronous Reset, active high, initializes all inputs to all stages and the final output to zero. +\item plaintext\_i: 16$\times$8 bits plaintext input +\item keyblock\_i: 16$\times$8 bits keyblock input +\end{itemize} +The output is +\begin{itemize} +\item ciphertext\_o: 16$\times$8 bits ciphertext output +\end{itemize} + +The timing diagram is shown in Figure \ref{clock}. +\begin{figure}[H] +\centering +\includegraphics[scale=0.7]{clock} +\caption{Timing Diagram} +\label{clock} +\end{figure} + +The \texttt{trunk/rtl/vhdl} directory contains the whole source code. + +The sample testbench is in \texttt{trunk/bench/vhdl}. + +For compiling and running the testbench, the script \texttt{sim.sh} in \texttt{trunk/sim/rtl\_sim/run} directory can be used. It uses Xilinx free Isim simulator. The testbench takes in plaintext and key data from \texttt{vectors.dat} in \texttt{trunk/sim/rtl\_sim/src} directory. The expected ciphertext data should be present in \texttt{cipher.dat} in \texttt{trunk/sim/rtl\_sim/src} directory. The results are written to \texttt{output.log} in \texttt{trunk/sim/rtl\_sim/log} directory. + +The \texttt{trunk/syn/Xilinx/run} directory contains the \texttt{synth.sh} shell script, which will synthesize the design when run using Xilinx ISE WebPack tools. + +The speed optimized synthesis results with timing driven map on a Xilinx 5VLX50T device is shown in Table \ref{stats}. +\begin{table}[h] +\centering + \begin{tabular}{|l|l|} + \hline + $f_{max}$ & $\approx$ 330 MHz \\ + \hline + Max throughput & $\approx$ 42 Gbps \\ + \hline + Slice Registers's & 7873 (27\%) \\ + \hline + Slice LUT's & 14724 (51\%) \\ + \hline + Bonded IOB's & 386 (80\%) \\ + \hline + \end{tabular} + \caption{Design Statistics} + \label{stats} +\end{table} + +All the synthesis, map and place and route logs are available in \texttt{trunk/syn/Xilinx/log} directory. +\end{document} Index: doc/arch.pdf =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: doc/arch.pdf =================================================================== --- doc/arch.pdf (nonexistent) +++ doc/arch.pdf (revision 11)
doc/arch.pdf Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: doc/timing.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: doc/timing.png =================================================================== --- doc/timing.png (nonexistent) +++ doc/timing.png (revision 11)
doc/timing.png Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: doc/aes_arch.pdf =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: doc/aes_arch.pdf =================================================================== --- doc/aes_arch.pdf (nonexistent) +++ doc/aes_arch.pdf (revision 11)
doc/aes_arch.pdf Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.