What is claimed is:
1. A method for routing a multi-layered integrated circuit, comprising:
receiving parameters for an integrated circuit having n layers, wherein n is at least two;
constructing a routing graph for a level k of the n layers of the integrated circuit, the k level partitioned into k-level tiles, wherein at least one edge is provided to join a first tile and a second tile in the k level routing graph;
calculating capacities of the at least one edge joining the first tile and the second tile, the edge at least one of regular and normal;
adding occupancies based on previous level net routing (k1) and calculating penalties of edges; and
routing nets based on the routing graph, calculated capacities and added occupancies.
2. The method as described in claim 1, wherein after routing nets, if k is more than zero, the constructing, calculating, adding and routing steps are repeated after subtracting one from k.
3. The method as described in claim 1, wherein after routing nets, if k is equal to zero, the adding and routing steps are repeated after subtracting one from k.
4. The method as described in claim 1, wherein after routing nets, if k is less than zero, legal net routing is obtained.
5. The method as described in claim 1, wherein routing nets includes routing nets in a net routing area and routing open nets in all integrated circuit areas.
6. The method as described in claim 1, wherein the parameters include at least one of netlist, grid lines slop, distance between neighboring grid lines, and wire blockage information.
7. The method as described in claim 6, wherein the parameters include parameter information for n layers of the chip.
8. The method as described in claim 1, wherein a tile is a square section, with one side of each tile of the layer directed along a layer grid line.
9. The method as described in claim 8, wherein a tile is sized so that each tile side is approximately equal to one grid.
10. The method as described in claim 8, wherein grid lines are positioned generally through a middle of a tile.
11. The method as described in claim 1, wherein the routing graph includes a vertex including a tile.
12. The method as described in claim 1, wherein capacity for a regular edge is equal to the height of a tile corresponding to the edge expressed in grids minus the number of grid covered by routing blockages.
13. The method as described in claim 1, wherein capacity for a normal edge is half of the number of vias included in the corresponding tiles.
14. The method as described in claim 1, wherein adding occupancies based on previous level net routing includes if pervious level net routing is not available, occupancies are set to zero.
15. The method as described in claim 1, wherein the penalty for passing through an edge is a function of the quotient occupancycapacity and of the length of the edge.
16. The method as described in claim 1, wherein the penalty at least one of increases as a function of occupancycapacity and increases as a function of length.
17. The method as described in claim 16, wherein the penalty is computed as follows lengtheoccupancycapacitylength.
18. The method as described in claim 1, wherein routing nets includes arriving at a set of edges such that any two different pins of the net are connected by the set.
19. The method as described in claim 1, wherein routing nets includes implementing a procedure to route nets, wherein the input of the procedure is a net, and the output is a routing of the net.
20. The method as described in claim 19, wherein the procedure to route nets includes if an input net has two pins including a first pin and a second pin, a neighborhood of the first pin is grown until the neighborhood intersects the second pin.
21. The method as described in claim 20, wherein a least-penalty path connecting the first pin and the second pin is chosen.
22. The method as described in claim 20, wherein the procedure to route nets includes if an input net has three pins, the neighborhoods of all pins are grown until a vertex is reached in another pin.
23. The method as described in claim 22, wherein if a vertex in the intersection of all neighborhoods is provided, a sum of penalties to all three pins from that vertex.
24. The method as described in claim 23, wherein there is a vertex in the intersection of all neighborhoods, the sum of penalties of all three pins are found from that vertex such that a vertex P0 for which that sum is minimal is found, and is denoted by Pen0, then, for each Pi (i1, 2, 3), the sum of penalties to other two pins is found from the pin Pi and that sum is denoted by Peni, so that if Pen0minPeni, i0, 1, 2, 3 then the net routing is the union of the three least-penalty paths from P0 to all pins P1, P2 and P3, if Pen1minPeni, i0, 1, 2, 3 then the net routing is the union of the two paths from P1 to pins P2 and P3.
25. The method as described in claim 20, wherein the procedure to route nets includes more than three pins, the net is partitioned into at least two subnets.
26. The method as described in claim 25, wherein for each pin, a center of gravity is calculated and then the pins are sorted in ascending order of abscissae of the center of gravity, such as let x1, . . . , xn be the ordering set of abscissae, xm is found such that xm1xmmaxxi1xi, i1, 2, . . . , n1, the point xm divides net into 2 subnets wherein the first subnet includes from m first pins and the second subnet contains another pins.
27. The method as described in claim 26, wherein the net P1, . . . , Pn is portioned into 2 subnets P1, . . . , Pm and Pm1, . . . , Pn, the neighborhoods of the following set:
nP1
i1
and may be grown until a vertex from the following set is reached:
np1
im1
the least-penalty path from one set to another is chosen and this path is included in the routing of the net, after which, a Procedure to Route Net is recursively applied to the subnets P1, . . . , Pm and Pm1, . . . , Pn, the procedure based on the number of pins included in the subnets.
28. The method as described in claim 1, wherein routing nets includes implementing a procedure to grow neighborhoods.
29. The method as described in claim 28, wherein the input of the procedure to grow neighborhoods is a set Sour of vertices of the routing graph, which may be referred to as a source set, and a set DestV, referred to as a destination set, the output of Procedure to Grow neighborhoods includes a number dDist(Sour,Dest), set Md(Sour), a vertex lastMd(Sour)Dest and the array PrevVertexNumber, where PrevN(a)0 if aMd(Sour)Sour and PrevN(a)b otherwise, where (b,a) is the last edge in a least-penalty path connecting the set Sour and the vertex a.
30. A method for routing a multi-layered integrated circuit wherein arbitrary routing directions are supported on an arbitrary number of layers of the integrated circuit, comprising:
receiving parameters for an integrated circuit having n layers, wherein n is at least two;
constructing a routing graph for layers of the integrated circuit, the levels partitioned into tiles, wherein at least one edge is provided to join a first tile and a second tile in the routing graph, the tiles positioned generally corresponding to a layer grid line of the level; and
routing based on the routing graph.
31. The method as described in claim 30, wherein routing nets includes routing nets in a net routing area and routing open nets in all integrated circuit areas.
32. The method as described in claim 30, wherein the parameters include at least one of netlist, grid lines slop, distance between neighboring grid lines, and wire blockage information.
33. The method as described in claim 30, wherein a tile is a square section, with one side of each tile of the layer directed corresponding to a layer grid line.
34. The method as described in claim 33, wherein grid lines are positioned generally through a middle of a tile.
35. The method as described in claim 30, wherein the plane of the layer is divided by parallel lines (y cos i)(x sin i)j di, j0, 1, 2, . . . , where i is an inclination of the lines, di is the distance between neighboring lines.
36. A system for routing a multi-layered integrated circuit, comprising:
a memory suitable for storing a program of instructions; and
a processor communicatively coupled to the memory, wherein the program of instructions configures the processor to receive parameters for an integrated circuit having n layers, wherein n is at least two;
construct a routing graph for layers of the integrated circuit, the levels partitioned into tiles, wherein at least one edge is provided to join a first tile and a second tile in the routing graph, the tiles positioned generally corresponding to a layer grid line of the level; and
route based on the routing graph.
37. The system as described in claim 36, wherein routing nets includes routing nets in a net routing area and routing open nets in all integrated circuit areas.
38. The system as described in claim 36, wherein routing nets includes arriving at a set of edges such that any two different pins of the net are connected by the set.
39. The method as described in claim 36, wherein routing nets includes implementing a procedure to grow neighborhoods.
40. A system for routing a multi-layered integrated circuit, comprising:
a means for receiving parameters for an integrated circuit having n layers, wherein n is at least two;
a means for constructing a routing graph for layers of the integrated circuit, the levels partitioned into tiles, wherein at least one edge is provided to join a first tile and a second tile in the routing graph, the tiles positioned generally corresponding to a layer grid line of the level; and
a means for routing based on the routing graph.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. An audio-book playback method, comprising:
buffering text data that is to be played back by speech;
converting the buffered text data to speech data;
performing speech-playback by using the speech data; and
buffering next text data that is to be played back by speech.
2. The method of claim 1, wherein the performing of the speech-playback by using the speech data and the buffering of the next text data for continuous playback are performed simultaneously.
3. The method of claim 1, further comprising:
determining whether the data currently in speech-playback is last data, before the buffering of next text data.
4. The method of claim 1, further comprising:
performing TTS (text-to-speech) conversion on the buffered next text data.
5. The method of claim 1, wherein an amount of current data or next data buffered is determined such that seamless playback of the data can be guaranteed.
6. The method of claim 1, wherein an amount of the data buffered in the buffering of text data that is to be played back by speech or the buffering of next text data is determined in consideration of at least one of a storage capacity of the buffer and an amount of data displayable on a display at once.
7. The method of claim 1, further comprising:
performing text-playback,
wherein the performing of the text-playback is synchronized with the performing of the speech-playback.
8. The method of claim 7, wherein text data corresponding to the speech data currently in playback is displayed so as to be distinguishable from other text data.
9. An audio-book playback method, comprising:
selecting an audio-book playback mode; and
based on the selection, performing one of
a text-playback operation, a speech-playback operation and a text and speech-playback operation.
10. The method of claim 9, wherein the speech-playback operation comprises:
buffering text data that is to be played back by speech;
converting the buffered text data to speech data;
performing speech-playback by using the speech data; and
buffering next text data that is to be played back by speech.
11. The method of claim 10, wherein the performing of speech-playback by using the converted speech data and the buffering of next text data are performed simultaneously.
12. The method of claim 10, further comprising:
determining whether the data currently in speech-playback is last data, before the buffering of next text data.
13. The method of claim 10, further comprising:
performing TTS conversion on the buffered next text data.
14. The method of claim 13, wherein the performing of speech-playback by using the speech data and the performing of the TTS conversion on the buffered next text data are performed simultaneously.
15. A computer-readable recordable medium having embodied thereon a computer program to execute a method, the method comprising:
buffering text data that is to be played back by speech;
converting the buffered text data to speech data;
performing speech-playback using the speech data; and
buffering next text data that is to be played back by speech.
16. An audio-book playback apparatus, comprising:
a display to display text data;
a buffer to buffer text data that is to be played back by speech; and
a TTS converter to convert the text data stored in the buffer to speech data,
wherein the audio-book playback apparatus outputs the text data and the speech data simultaneously with buffering text data that is to be played back next.
17. The apparatus of claim 16, wherein an amount of text data stored in the buffer is equal to or greater than an amount of text data to be displayed on the display at once.
18. A portable multimedia playback device, comprising:
a frame; and
an audio-book playback apparatus connected to the frame, the audio-book playback apparatus comprising:
buffering text data that is to be played back by speech;
converting the buffered text data to speech data;
performing speech-playback by using the speech data; and
buffering next text data that is to be played back by speech.
19. An audio-book playback apparatus having a display and a speaker, the apparatus comprising:
a text-viewer function to provide text data to the display to be displayed to a user; and
a book teller function to provide speech data corresponding to the text data to the speaker to be transmitted to the user,
wherein the text data is displayed by the display and the speech data is transmitted by the speaker simultaneously.
20. The apparatus of claim 19, further comprising:
a buffer to buffer a next set of text data and speech data while a previous set of text data and the speech data are being respectively displayed and transmitted.
21. A method of playing back an audio book, the method comprising:
providing text data to be displayed to a user; and
providing speech data corresponding to the text data to be transmitted to the user such that the text data is displayed and the speech data is transmitted simultaneously.