Skip to content
This repository has been archived by the owner on Apr 25, 2023. It is now read-only.

Final project repo of ECE551 in Fall 2021 at UW Madison. Owned by Team Doraemon.

Notifications You must be signed in to change notification settings

ShichenQiao/ECE551_FA2021_Knights_Tour

Repository files navigation

ECE551_FA2021_Knight's_Tour

Final project repo of ECE551 in Fall 2021 at UW Madison.
Owned by Team Doraemon: Shichen (Justin) Qiao, Xin Su, Wenfei Huang, and Kailun Teng.
Project Demo: https://youtu.be/-lrbFcMndcw

Project Statistics

Total Area: 13937.84
Total Area FASTSIM: 13740.97
Min Delay Slack: 0.00 (MET)
Max Delay Slack: 0.36 (MET)
Max Delay Slack FASTSIM: 0.38 (MET)
Test Suite Code Coverage: 97.41%

Important Notes

Targeting area: 14052(Tommy), 16242(Eric)
Changed xx and yy in KnightsPhysics.sv to type logic. Changed cal_done, lftIR, cntrIR, rghtIR, and start_tour in KnightsTour.sv to type logic. Both for pre-synthesis testing purposes.
Remember to TURN OFF FASTSIM in provided_files/KnightsTour.sv to 0 before synthesis.
Remember to ADD `timescale 1ns/1ps to all v, sv, and vg files involved in post synthesis validation.
Only do rst and cal for post synthesis validation in project demo.
Project Demo Date/Time: Fri. 12/10/2021 4PM

File Directories

ECE551_FA2021_Knights_Tour-main
├── EX21_cmd_proc__charge.pdf
├── Ex23_KnightsTour.pdf
├── ProjectSpec.pdf
├── README.md
├── TopLevelTestingSynthesis.pdf
├── backups
│   ├── 1st_synth
│   │   ├── ...
│   ├── ...
│   ├── 6th_synth_final
│   │   ├── ...
│   ├── KnightPhysics_need_eric.sv
│   ├── KnightPhysics_old.sv
│   ├── PID_nopipe.sv
│   ├── PID_pipe_P.sv
│   ├── PID_tb_nopipe.sv
│   ├── TourCmd_tb_vert.sv
│   ├── TourCmd_vert.sv
│   ├── TourLogic_debug.sv
│   ├── TourLogic_record_possibles.sv
│   ├── post_synth_validation_FASTSIM_OFF
│   │   ├── ...
│   ├── post_synth_validation_old
│   │   ├── ...
│   └── test_suite_coverages.zip
├── code_coverage
│   ├── DUT_coverage.zip
│   ├── ModelsimTutorial_s21.pdf
│   ├── improved_DUT_coverage.zip
│   ├── test_suite
│   │   ├── Test1_rst&cal.sv
│   │   ├── ...
│   │   ├── Test8_tour_from_center.sv
│   │   └── tb_tasks.sv
│   └── test_suite_improved
│       ├── Test1_rst&cal.sv
│       ├── Test2_simple_moves.sv
│       ├── Test3_simple_fanfare.sv
│       ├── Test4_corner_turns.sv
│       ├── Test5_tour_with_fanfare.sv
│       ├── Test6_resp.sv
│       ├── Test7_all_possible_TL.sv
│       ├── Test8_tour_from_center.sv
│       ├── Test9_invalid_opcodes_added_after_coverage
│       │   ├── Test9_console.jpg
│       │   ├── Test9_invalid_opcodes.sv
│       │   └── Test9_waves.jpg
│       └── tb_tasks.sv
├── lib
│   ├── ...
├── post_synth_validation
│   ├── KnightPhysics.sv
│   ├── KnightsTour.vg
│   ├── KnightsTour_tb.sv
│   ├── RemoteComm.sv
│   ├── SPI_iNEMO4.sv
│   ├── UART.v
│   ├── UART_rx.sv
│   ├── UART_tx.sv
│   ├── post_synth.cr.mti
│   ├── post_synth.mpf
│   ├── post_synth_rst&cal.jpg
│   ├── tb_tasks.sv
│   ├── transcript
│   ├── vsim.wlf
│   └── work
│       ├── ...
├── pre_synth_simulation
│   ├── Test1_console.jpg
│   ├── Test1_waves.jpg
│   ├── ...
│   ├── Test8_console.txt
│   └── Test8_waves.jpg
├── provided_files
│   ├── IR_intf.sv
│   ├── KnightPhysics.sv
│   ├── KnightsTour.sv
│   ├── SPI_iNEMO4.sv
│   └── inertial_integrator.sv
├── src
│   ├── MtrDrv.sv
│   ├── PID.sv
│   ├── PWM11.sv
│   ├── SPI_mnrch.sv
│   ├── TourCmd.sv
│   ├── TourLogic.sv
│   ├── UART.v
│   ├── UART_rx.sv
│   ├── UART_tx.sv
│   ├── UART_wrapper.sv
│   ├── charge.sv
│   ├── cmd_proc.sv
│   ├── inert_intf.sv
│   └── reset_synch.sv
├── synthesis
│   ├── KnightsTour.dc
│   ├── KnightsTour.sdc
│   ├── KnightsTour.vg
│   ├── KnightsTour_area.txt
│   ├── KnightsTour_max_delay.rpt
│   ├── KnightsTour_min_delay.rpt
│   ├── ...
├── synthesis_FASTSIM
│   ├── ...
└── tests
    ├── KnightsTour_tb_shell.sv
    ├── RemoteComm.sv
    ├── Unit_tests
    │   ├── CommTB.sv
    │   ├── MtrDrv_tb.sv
    │   ├── PID_tb.sv
    │   ├── PWM11_tb.sv
    │   ├── SPI_mnrch_tb.sv
    │   ├── TourCmd_tb.sv
    │   ├── TourLogic_tb.sv
    │   ├── UART_tb.sv
    │   ├── UART_tx_tb.sv
    │   ├── charge_modelsim_tb.sv
    │   ├── cmd_proc_tb.sv
    │   └── inert_intf_tb.sv
    ├── full_ship_tests
    │   ├── Test1_rst&cal
    │   │   └── KnightsTour_tb.sv
    │   ├── ...
    │   ├── Test8_tour_from_center
    │   │   ├── KnightsTour_tb.sv
    │   │   ├── hori_first.txt
    │   │   ├── tour_from_center.jpg
    │   │   └── vert_first.txt
    │   └── Test9_invalid_opcodes_added_after_coverage
    │       ├── KnightsTour_tb.sv
    │       ├── Test9_console.jpg
    │       └── Test9_invalid_opcodes.jpg
    └── tb_tasks.sv

51 directories, 826 files

Journals:

11/29/2021, 11PM: Created repo, pploaded all DUT files, unit tests, and provided files.
11/30/2021, 10AM: Uploaded synthesis script.
11/30/2021, 4PM: Uploaded 1st synthesis results, min delay violated, max delay met, area 15861.
11/30/2021, 4PM: Fixed rst_synch module name, fixed TourLogic not synthsizable issue.
11/30/2021, 4PM: Reduced visited in TourLogic to 2D array of 1-bit booleans
11/30/2021, 10PM: Reorganized the repo, made 2nd synthesis, now there is not Error/Warnings, min_delay violated (but passed), max_delay violated (-0.36), and Area = 17919.44
12/3/2021, 11PM: Updated PID pipelined DUT, met max & min delay, area = 16924.28. Problem: under the current test, waveform have unexpected pulses and sharp drops after going north by 2, going left by 1, and trying to go south by 2. Solution: no solution yet, Eric is working on it. Next steps: implement more comprehensive full chip tests, design structured pre/post -synthesis test suites, and improve TourLogic. (Tommy reduced area by 2800 just by optimizing TourLogic.)
12/4/2021, 1AM: Optimized TourLogic, uploaded latest DUT and synthesis results, met max & min delay, area = 13788.55. Testing needed. current KnightsPhysics is still old.
12/5/2021, 11AM: Uploaded all full chip tests, updated TourCmd to travel hori first vert second. Note: some variables/ports in KnightsPhysics or in KnightsTour was changed to type logic to support testing.
12/5/2021, 10PM: Uploaded final synthesis results, pre-synthesis tests and results, and post-synthesis validation results. Area = 13944.14, timings are met. One last step before demo: code coverage.
12/6/2021: 11PM: Finalized project. Conducted code coverage. Original test suite coverage: 96.98%. Improved by adding Test9_invalid_opcodes. Current coverage: 97.41%
12/8/2021: 2PM: Updated synthesis script, re-run post-synthesis simulation. Resulted in a less area.
12/8/8PM: Uploaded synthesis results and post synthesis simulations with FASTSIM ON.

About

Final project repo of ECE551 in Fall 2021 at UW Madison. Owned by Team Doraemon.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published