Week 9: August 2 - 6

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

This Week's Goals:

  1. Some of the benchmark circuits are not routing no matter how large the routing channels are. Determine what is going wrong and correct this so the remaining experiments can be run and the results we have can be trusted.

    1. This problem is similar to a problem I've been encountering with VPR's "route-only" mode, and the route-only problem is much easier to study since it occurs in circuits that take a few minutes to place and route rather than hours. Study what is going wrong in route_only mode, and see if this sheds light on the large benchmark problem.

    2. Determine what is actually going wrong in the circuits that won't route.

    3. Correct the problem:

      1. As a quick (if not very elegant) fix, see if allowing 100 routing attempts rather than 30 enables the remaining circuits to route.

      2. Investigate modifying the "cost" variable. VPR decides which channels to use in an attempted route based on the cost assigned to each channel. Giving channels in the special region an effectively infinite cost (during the routing of normal nets) would prevent these channels from being considered for routing attempts.

      3. When building an attempted route, VPR puts nodes representing each channel it will consider routing through onto a heap. During normal net routing, prevent special channels from being put onto the heap.

      4. It appears that the problem is because the routing algorithm VPR is using involves a bounding-box approach. This means that when routing a path between two nodes it will not consider paths that go far outside the smallest rectangle that could enclose these two nodes. For two nodes on either side of a hard macro, this might mean that no paths are considered that do not pass through the hard macro region. Thus, for circuits in which this problem occurs, the bounding-box size needs to be increased.

  2. Revise this website. I should be using a more formal tone than I think I have been recently, and I need to go through and correct this before submitting the final version of my website to DMP.

  3. Get VPR's route-only mode to work. Earlier this week, I figured out what was wrong with route-only mode, but I didn't get a chance to actually repair the problem until later.

  4. Goal 3.3 of week 7: email the makers of VPR about the incompatibility of the timing-driven algorithm with global routing. Messages displayed by VPR claim this combination should work.

Progress Toward Goals:

  1. In Progress at End of Week:

    1. Completed Monday - The problem in route-only mode was just that the former students working with VPR had not set it up to work. Some initialization functions that needed to be called for their code to work was never called in route-only mode.

      The problems caused by these initialization functions never being called were similar to the problems occuring with the large benchmark files, and fixing this did help me understand that issue better.

    2. Completed Monday - VPR does not exhaustively check whether a circuit is routable on a given architecture as this would take an unreasonable amount of time. It attempts routing up to 30 times, and if 30 attempts fail, VPR gives up.

      The modified version of VPR has to keep normal nets from being routed through the special region. Currently this is done by checking each routing attempt after it is completed and throwing it away if it allows normal nets into the special region. If 30 attempts are thrown away in this fashion, however, VPR gives up and declares the circuit unroutable.

      Thus, VPR needs to be modified to never make an attempted route that allows normal nets into the special region

    3. In Progress at End of Week:

      1. Completed Tuesday - This ran overnight, and was done Tuesday morning. Every circuit that failed with 30 iterations failed with 100.

      2. Abandoned Tuesday - There are many variables called cost and they are modified in many different places, so this would be a difficult way to fix the code. Additionally, I believe I found a simpler and better fix.

      3. Completed Tuesday - The nodes are being kept off the heap at the appropriate times, but with this modification, VPR generates error messages and exits.

      4. In Progress at End of Week - I spent a great deal of time this week trying to verify that this was the problem. This was exteremely difficult since print statements cannot be placed in the relevant sections of the code. Next week I am going to just test if increasing the bounding-box size solves the problem.

  2. In Progress at End of Week - I've made a lot of improvements to this website throughout the week, particularly on Wednesday and Thursday, while waiting for long VPR trials to terminate. I think it's more clear and user-friendly than it was before, although I still want to make some changes.

  3. Completed Friday

  4. Completed Friday

About My Project | home