2D+Design+Challenge+2013

=The Winner= Congratulation for the winners: view.

=The Story= toc The company Digi-alpha decided to improve their ALU (arithmetic and logic unit) design by speeding up their 32-bit adder. In their original design, the 32-bit adder worked with a clock frequency of about 70 MHz. The company wanted to increase the clock frequency to about 300 MHz. To do this, the 32-bit adder must be able to work in a pipelined stage with a clock period of about 3 ns.

=The Challenge= The company needs to speed up the 32-bit adder of their ALU design so that it can work with a clock period of 3 ns. Their original 32-bit adder design worked with a clock cycle of about 14 ns. This means that the company needs to improve the speed by about five times (5x). Not only that, the company needs to ensure that the 32-bit adder still functions as the original 32-bit adder. To do a thorough hardware verification during the design stage, the chief engineer decided to implement Combinational Equivalence Checking (CEC) using SAT (Satisfiability) technique. The company then has to divide the work into two separate tasks:
 * 1) optimize the original 32-bit adder to work with a clock period of 3 ns.
 * 2) implement CEC using SAT technique to verify the functionality of the optimized hardware design.

=Design= You are tasked to work on both the optimization of the 32-bit adder as well as the software implementation of the CEC-SAT verification. A more detailed guide on the two tasks can be found on the following link. Download the following files: =Why is this a 2D+ Challenge?= Below is a cross list that correlates sample tasks in the design challenge with material from various courses. =Milestones= Deliverable 1: You need to submit the optimized design netlist of the 32-bit adder using the JSim and 50.002 Checkoff system. The system will compare for plagiarism or duplicate copy.
 * 1) 32-bit Adder optimization
 * 2) CEC-SAT verification software
 * JSim Checkoff files for 32-bit adder optimization
 * **Design subtask** || **Techniques from** || **ISTD Subject** ||
 * 32-bit adder optimization || * combinational logic synthesis
 * timing specification || 50.002 Computation Structure ||
 * CEC-SAT verification software || * satisfiability problem, DPLL
 * recursion
 * immutable list || 50.001 Introduction to Information Systems and Programming ||

Deliverable 2: You need to submit a short report describing the translation process of the output circuit netlist obtained from the optimization task into Conjunctive Normal Form (CNF) which is required as the input for the CEC-SAT verification software. If you decided to write a software to do this translation task, you will need to submit the source code as well. In this case, the report needs to explain about the source code instead. The report and the source code is to be submitted through 50.002 eDimension. You can use either Python or Java for this purpose.

Deliverable 3: You need to submit the source code for the CEC-SAT verification software (SAT Solver).

Deliverable 4: You need to demo/present to instructors on your optimized hardware and CEC-SAT Solver. The execution time of your SAT Solver will be tested by our provided .cnf file (about 6000 clauses).

Deliverables 1-3 must be submitted by **Thursday, 14th of November 2013**.

Deliverable 4 (Demo) will be on **Friday, 15th of November 2013**.

=Design Evaluation and Reports= The evaluation for the optimized 32-bit adder will be done according to the minimum clock period you can achieve. The table that relates clock period and points you will get can be found on the detailed handout. The maximum point for this task is 10 points. The evaluation for Deliverable 2 report is based on clarity and correctness of derivation from gate netlist to CNF. You will get 5 points for either doing the translation in a written report or developing a software to do the translation.

The software design and implementation for CEC-SAT verification will be graded for 10 points. The table shows the point allocation.

Translating gate netlist to CNF ||= 10 5 || 50.002 (15%) || Rubrics: =Consultation Hour= There will be no class during 2D week, however, instructors will come at the following timeslot.
 * ~ Task ||~ Maximum points ||~ Course percentage ||
 * Optimize 32-bit adder
 * CEC-Verification SAT software ||= 10 || 50.001 (10%) ||
 * Translating gate netlist to CNF

Venue: Computer Lab 1-1 Schedule:
 * Monday, 1-3pm
 * Tuesday, 4-5.30pm
 * Thursday, 4-5.30pm

=Grouping= Each group is 5-6 person. Students are free to form their own groups. Please submit the name of the your group members at the link below by **Friday, 8th of November 2013**:
 * Submit your group member names

=Competition= The students will compete to design the fastest 32-bit adder and the faster SAT solver. The best team will get a cash prize of $500. The winner will be the team that has the best timing for both point 1 and 2 above.
 * 1) Students can design their 32-bit adder to be working with clock period smaller than 3 ns. The smallest time for the speed and chip area will be recorded for consideration in the competition.
 * 2) Students will run their SAT solver for 6000 clauses test case provided by the instructor. The shortest time for the SAT solver to finish will be recorded for consideration in the competition.

=Links=
 * Powerpoint slide during briefing