Week 7: July 19 - 23

<-- Prev Week ||||||||| Next Week -->

This Week's Goals:

  1. Complete goal 2 from last week - use the former student's modifications of VPR's timing-driven routing algorithm as a guide to modify the breadth-first routing algorithm to handle hard macros.

  2. Run the modified version of VPR on several benchmark circuits to get a sense of how well it works

  3. Fix some more minor VPR problems:

    1. Get VPR to hilight special nets more accurately. The former student who worked with VPR modified the code to draw special nets and blocks in pink instead of the usual black (special resources are those that are located at least partially inside the hard macro region). This pink coloring does not always show up when it should.

    2. Modify VPR to operate on more than one hard macro, recieving user input describing the size and locations of these blocks from an input file.

    3. Email the makers of VPR about our discovery that global routing is not compatible with the timing-driven algorithm. The code and maunal currently claims that this works even though they warn that the combination might yield circuits that aren't very fast.

  4. Prepare VPR for experimentation:

    1. Get VPR to send the data we wish to receive from our experiments to a file when it runs.

    2. Write shell scripts that will run many VPR experiments in succession overnight and on weekends, sending data to a well-organized set of files.

Progress Toward Goals:

  1. Completed Tuesday

  2. Completed Tuesday - The code ran correctly on the small e64 sample circuit as well as the Alu4, Apex4, Bigkey, and Tseng benchmark circuits.

  3. Postponed Wednesday - Preparing for experimentation is the priority, so these things are left until experimentation is underway.

    1. Workable Temporary Solution Found Tuesday - I discovered that when the pink coloring is not displayed, clicking anywhere in the graphics display makes the pink coloring appear. To fix this properly, I think some kind of refresh function needs to be called immediately after the display is first drawn - at the placement stage so the colors show in the placement picture as well as the routing picture. However, I don't know what this function is in C or exactly what line of the code it should be inserted into. I am leaving this task for now because I want to get to experimentation and by clicking in the window, I can ensure that I always see the colors I need to see. However, to handle this issue well, this refresh function should really be used.

    2. Postponed Wednesday - The input file format has been created and the code almost reads input from such a file properly. I have not yet started modifying the code to process the information from such a file.

      At the moment I am leaving this task to work on experimentation, but I have put a lot of effort into this and hope to finish it before I'm done. Hopefully, I can work on this while some of the experiments are running.

    3. Not Started Before Task was Postponed

  4. In Progress at End of Week

    1. In Progress at End of Week - Now all of statistics we want except those pertaining to area are printed automatically to a file specified by a command line argument. I still need to add the area statistics. I have verified that the statistics about the entire FPGA are correct, but I need to verify the statistics about the special nets. We thought that TOTAL special net wirelength would be a good approximation of special net wirelength OUTSIDE the region. The data I collected lists total wirelength at 3399, total special wirelength at 2043, and special wirelength outside the special region at only 397. Because this is unexpected, I need to carefully verify that it is correct.

    2. In Progress at End of Week - I have a shell script that runs correctly, but I have not yet set up a filesystem for storing the experimental results.

About My Project | home