 |


Recommended Specification Outline
Software
projects
-
Introduction and motivation.
Placement of the problem in the broader research area.
Why is this project worth working on?
Why is it original? Why is it practical?
-
Language, platform, and compiler used
for a primary implementation (e.g., GNU C under Unix). The program portability to other platforms.
-
Additional software required (e.g., a library of arithmetic operations on large numbers,
cryptographic library, etc.).
-
Detailed specification of the input and output of the program(s), including the exact format of input/output files.
-
Brief description of the function performed by the program(s),
including any specific references to standards and detailed descriptions of algorithms in the literature.
-
Procedures for testing the functionality and performance of the program(s).
Source of test vectors.
-
Plan of experiments to be performed using the program(s).
-
Time schedule, including the detailed intermediate goals to be achieved by the dates of
the progress reports.
-
A list of possible areas, where the specification can change depending on the progress of the project.
-
Tentative table of contents of your final report.
-
List of literature. -
Anything else you consider important.
Hardware
projects
-
Introduction and motivation.
Placement of the problem in the broader research area.
Why is this project worth working on?
Why is it original? Why is it practical?
-
Design entry method (e.g., VHDL, Verilog,
AHDL, etc.), target implementation (e.g., Xilinx or Altera FPGA, ASIC semi-custom
standard-cell circuit), CAD tools used to specify, implement, and verify the design (e.g.,
Aldec Active-HDL, Synplicity Synplify Pro, Xilinx ISE, Altera Quartus II,
ModelSim, Synopsys). -
Additional libraries of basic digital circuits required (e.g., Xilinx LogiBlox,
TSMC library, etc.).
-
Detailed specification of the input and output of the circuit(s).
-
Brief description of the function performed by the circuit(s),
including any specific references to standards and detailed descriptions of algorithms in the literature.
-
Procedures for testing the functionality and performance of the circuit(s), including
-
a. The simulator in use.
-
b. The source of test vectors.
-
c. The format of input stimuli (e.g., VHDL test bench, simulator script).
-
d. Performance parameters to be determined by simulation
(e.g., throughput, key setup time, time to encrypt one block, time to switch keys).
-
e. Parameters to be determined using the implementation tools
(e.g., number of CLBs in the FPGA implementation, minimum size FPGA device able to hold the device, area of the circuit in the standard-cell
implementation).
-
Plan of simulation experiments to be performed using the circuit(s). -
Time schedule, including intermediate goals
to be achieved by the dates of progress reports. -
A list of possible areas, where the specification can change depending
on the progress of the project. -
Tentative table of contents of your final report. -
List of literature. -
Anything else you consider important.
Analytical projects
-
Introduction and motivation.
Placement of the problem in the broader research area.
Why is this project worth working on?
Why is it original? Why is it practical?
-
List of alternative
protocols/algorithms/implementations you are planning to compare.
-
Detailed description of problems/hypotheses you are planning to investigate.
-
A tentative list of questions you will be seeking an answer to.
-
Procedure for verifying the results of your investigation.
-
Time schedule, including intermediate goals to be achieved by the dates of progress reports.
-
A list of possible areas, where the specification can change depending on the progress of the project.
-
Tentative table of contents of your final report.
-
List of literature.
-
Anything else you consider important.
|