WO2011152013A1 - 集積回路製造方法及び半導体集積回路 - Google Patents

集積回路製造方法及び半導体集積回路 Download PDF

Info

Publication number
WO2011152013A1
WO2011152013A1 PCT/JP2011/002985 JP2011002985W WO2011152013A1 WO 2011152013 A1 WO2011152013 A1 WO 2011152013A1 JP 2011002985 W JP2011002985 W JP 2011002985W WO 2011152013 A1 WO2011152013 A1 WO 2011152013A1
Authority
WO
WIPO (PCT)
Prior art keywords
bus
circuit
integrated circuit
block
external terminal
Prior art date
Application number
PCT/JP2011/002985
Other languages
English (en)
French (fr)
Inventor
大輔 岩橋
勝義 東島
督三 清原
Original Assignee
パナソニック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Priority to US13/383,335 priority Critical patent/US8438523B2/en
Priority to JP2012518239A priority patent/JP5834226B2/ja
Priority to CN201180003011.XA priority patent/CN102473198B/zh
Publication of WO2011152013A1 publication Critical patent/WO2011152013A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
    • H01L27/0203Particular design considerations for integrated circuits
    • H01L27/0207Geometrical layout of the components, e.g. computer aided design; custom LSI, semi-custom LSI, standard cell technique

Definitions

  • the present invention relates to a semiconductor integrated circuit and a manufacturing method thereof, and more particularly to layout design of circuit components.
  • the design of semiconductor integrated circuits can be broadly divided into two processes: front-end design and back-end design.
  • the front-end design is a process of creating a netlist through processes such as specification design of semiconductor integrated circuits, functional design / test design, and logic synthesis.
  • the back-end design is a process of creating manufacturing data used in the manufacturing process through processes such as layout design and sign-off verification.
  • the layout design is further divided into two processes: floor plan and wiring process.
  • the floor plan is a process of determining the arrangement positions of various blocks such as hard macros, user macros, and RAMs in the semiconductor integrated circuit in consideration of timing and wiring properties.
  • the wiring process takes into account the wiring constraints (for example, the connection relationship between components and the layer through which the connection is made), between blocks determined by the floor plan, or between blocks and terminals. This is a step of determining a wiring route between the two. By passing through both processes, simply speaking, the parts are arranged according to the functions required for the semiconductor integrated circuit, and the wiring between the parts is determined.
  • the position of the external terminal is determined in advance, and in the floor plan, a block having an external terminal I / F (Inter Face) circuit with the external terminal is placed near the external terminal. Ideally placed. Alternatively, it is ideal to determine the position of the external terminal so that the distance between the block having the external terminal I / F circuit and the external terminal determined by the floor plan can be as short as possible. This is because by reducing the wiring length between the external terminal and the external terminal I / F circuit (or the block having the external terminal I / F) as much as possible, the transfer delay between the wirings can be suppressed.
  • the position of the external terminal is closely related to the board design, noise design, etc., and the external terminal cannot always be arranged at a place where the load of layout design can be reduced.
  • recent external terminal dual-purpose specifications providing a plurality of functions in one external terminal
  • the determination of the external terminal position tends to be delayed. Therefore, the arrangement position of the external terminal assumed at the time of the floor plan is different from the arrangement position actually specified, and the wiring between the external terminal and the block having the external terminal I / F circuit may be extended. is there. This example will be described with reference to FIG.
  • FIG. 35A shows a configuration example of a semiconductor integrated circuit.
  • the internal block of the semiconductor integrated circuit shown in FIG. 35A is composed of five functional blocks, block A, block B, block C, block D, and block E. Although not shown, each block is assumed to be provided with various components and wiring for connecting the components.
  • each functional block, wiring, and each component are arranged based on the arrangement of the external terminals (110a, 110b) defined at the beginning. 140)) and the like are determined. However, it is assumed that the position of the external terminal is changed after that. Then, as shown in FIG. 35 (b), the wiring length of the wiring connecting the external terminal I / F circuit and the external terminal is longer in FIG. 35 (b) than in FIG. 35 (a). In some cases, the wiring length between the external terminal and the external terminal I / F circuit may deviate from the ideal. There is a case where a signal transmission delay occurs due to a long wiring distance, and a signal is not input at a timing that should be input.
  • Non-Patent Document 1 discloses that a part of layout design is executed at the front-end design stage.
  • the present invention has been made in view of the above problems, and is produced according to an integrated circuit manufacturing method using a layout design method capable of suppressing cost even if the position of an external terminal is not easily determined, and the integrated circuit manufacturing method.
  • An object of the present invention is to provide a semiconductor integrated circuit.
  • the present invention provides a layout design step for creating a mask pattern used for manufacturing an integrated circuit, and a creation step for creating the integrated circuit on a semiconductor material using the mask pattern;
  • the layout design step includes a first step for determining the arrangement of functional blocks, and a plurality of external IOs (Input-Output) for connecting the integrated circuit and external devices.
  • the third step of determining the arrangement of the bus, the arrangement of the bus connecting the functional block and the IO block, and the number of stages according to the wiring length of the bus It is characterized in that it comprises a fourth step of determining the placement of the timing adjustment circuit adjusting the timing of signals flowing on the bus.
  • the IO block (referred to as an IO core) corresponding to the arrangement position of the external terminal is determined.
  • the need for adjusting the timing of transfer between the IO block and the external terminal is eliminated, and the wiring connecting the IO block and the data transfer control circuit and the wiring length thereof are eliminated.
  • the generated data transfer deviation can be eliminated by inserting a timing adjustment circuit.
  • FIG. 3 is a flowchart showing a layout design method for the semiconductor integrated circuit according to the first embodiment.
  • FIG. 3 is a diagram showing a layout transition of the semiconductor integrated circuit according to the first embodiment.
  • FIG. 3 is a diagram showing a layout transition of the semiconductor integrated circuit according to the first embodiment.
  • 10 is a flowchart showing a layout design method for a semiconductor integrated circuit according to Modification 1;
  • FIG. 10 is a diagram showing a layout transition of a semiconductor integrated circuit according to Modification 1;
  • 10 is a flowchart showing a layout design method for a semiconductor integrated circuit according to Modification 2;
  • FIG. 10 is a diagram illustrating a layout transition of a semiconductor integrated circuit according to Modification 2.
  • FIG. 10 is a diagram illustrating a layout transition of a semiconductor integrated circuit according to Modification 2.
  • FIG. 4 is a functional block diagram showing a functional configuration of a semiconductor integrated circuit according to a second embodiment.
  • FIG. 6 is a functional block diagram showing a configuration of a slice group 124 according to Embodiment 2.
  • FIG. 6 is a functional block diagram illustrating a configuration of a slice group 125 according to Embodiment 2.
  • FIG. 6 is a functional block diagram showing a configuration of an arbiter according to Embodiment 2.
  • FIG. FIG. 10 is a diagram illustrating an information transfer flow between a DMAC and an external terminal I / F circuit according to the second embodiment.
  • 10 is a flowchart showing data transfer control of channel A according to the second embodiment.
  • 10 is a flowchart showing data transfer control of an external terminal I / F circuit 130a according to the second embodiment.
  • FIG. 10 is a flowchart showing data transfer control of channel B according to the second embodiment.
  • 10 is a flowchart showing data transfer control of the external terminal I / F circuit 130b according to the second embodiment.
  • 10 is a timing chart showing an example of data transfer in the semiconductor integrated circuit according to the second embodiment.
  • 10 is a timing chart showing an example of data transfer in the semiconductor integrated circuit according to the second embodiment.
  • 10 is a timing chart showing an example of data transfer in the semiconductor integrated circuit according to the second embodiment.
  • 10 is a timing chart showing an example of data transfer in the semiconductor integrated circuit according to the second embodiment.
  • FIG. 10 is a functional block diagram showing a configuration example of a semiconductor integrated circuit 300a when a shared bus corresponding to a data length according to the third embodiment is provided.
  • FIG. 10 is a functional block diagram showing a configuration example of a semiconductor integrated circuit 300a when a shared bus corresponding to a data length according to the third embodiment is provided.
  • 10 is a functional block diagram showing a configuration example of a semiconductor integrated circuit 300b when a shared bus corresponding to a data length according to the third embodiment is provided.
  • 14 is a timing chart illustrating an example of data transfer in the semiconductor integrated circuit 300a according to the third embodiment.
  • 14 is a timing chart illustrating an example of data transfer in the semiconductor integrated circuit 300b according to the third embodiment.
  • 14 is a timing chart illustrating an example of data transfer in the semiconductor integrated circuit 300b according to the third embodiment.
  • It is a figure which shows another example of the layout of a semiconductor integrated circuit.
  • 10 is a flowchart showing a layout design method for a semiconductor integrated circuit according to a fourth embodiment.
  • FIG. 6 is a diagram illustrating a configuration example of a semiconductor integrated circuit according to a fourth embodiment.
  • FIG. 5 is a diagram showing a configuration example in which a new data transfer path is added to the semiconductor integrated circuit 400.
  • FIG. 5 is a diagram showing a configuration example in which a new data transfer path is added to the semiconductor integrated circuit 400.
  • FIG. 5 is a diagram showing a configuration example in which one data transfer path is deleted from a semiconductor integrated circuit 400.
  • FIG. It is a figure which shows the structural example of the semiconductor integrated circuit to which each block was connected by the daisy chain. It is a figure which shows the structural example of the semiconductor integrated circuit to which each block was connected by the daisy chain. It is a figure for demonstrating the conventional layout design method.
  • the arrangement of functional blocks including a data transfer control circuit is determined (step S101).
  • the functional block is determined according to the specifications required for the semiconductor integrated circuit, and the data transfer control circuit has a function of executing data transfer with a circuit or device to which the designed semiconductor integrated circuit is connected. Yes, for example, DMAC (Direct Memory Access Controller). That is, the data transfer control circuit is a circuit having a data transfer master function.
  • DMAC Direct Memory Access Controller
  • the arrangement of the external terminals is determined in the layout of the semiconductor integrated circuit according to the specifications (step S102).
  • the arrangement of the plurality of IO blocks corresponding to the plurality of external terminals is determined (step S103). Specifically, for each determined external terminal arrangement position, the IO block arrangement is determined in the vicinity of the external terminal arrangement position so as to correspond to each external terminal. That is, at least one IO block is arranged for one external terminal. In the vicinity of the external terminal, in the data transfer by the wiring between the external terminal and the IO block, it is necessary to adjust the timing, that is, to correct a delay that may be caused by a signal flowing between the external terminal and the IO block. Within a certain distance.
  • the timing adjustment circuit has a function of retiming the wiring delay of the signal line.
  • a flip-flop or a latch is used as the timing adjustment circuit.
  • the retiming refers to outputting a signal in which an input signal is synchronized with an operation clock cycle used when the semiconductor integrated circuit operates.
  • the signal flowing on the bus is individually delayed from the period indicated by the operation clock of the semiconductor integrated circuit (in other words, In other words, the phase is shifted), that is, the phase of the clock is shifted between a plurality of signals while flowing on the bus, and thus the semiconductor integrated circuit may not operate normally. Therefore, it is necessary to correct the deviation, and the timing adjustment circuit corrects this deviation.
  • the operation clock wiring and the like are not described as being provided.
  • the semiconductor integrated circuit may be configured to include a crystal oscillator or the like that generates the operation clock, or the operation clock may be supplied from the outside of the semiconductor integrated circuit.
  • the layout design method according to the flowchart shown in FIG. 1A can be modified as shown in FIG. That is, the determination of the functional block arrangement in step S101, the external terminal arrangement in steps S102 and S103, and the accompanying IO block arrangement determination may be performed in parallel.
  • the data transfer control circuit may be designed in a layout on the premise that the data transfer control circuit is included in each of a plurality of IO blocks or arranged in a form corresponding to each IO block.
  • the arrangement of the internal circuit 140 as a data transfer control circuit and the functional blocks is determined.
  • the arrangement is determined according to the arrangement area of the components and the wiring connecting the components determined based on the required specifications of each functional block.
  • a gap is left so that an IO block or a bus connecting the IO block and the internal circuit 140 can be arranged.
  • the IO block is assumed to be included in one of the functional blocks (blocks A to E) and laid out.
  • the determined position is set as an external terminal arrangement position, for example, as shown in external terminals 110a and 110b in FIG. To decide.
  • an arrangement position of the external terminal I / F circuit as an IO block is determined in the vicinity of each determined external terminal position, for example, as shown in FIG. That is, the arrangement position of the external terminal I / F circuit 110a corresponding to the vicinity of the arrangement position of the external terminal 110a is determined, and the arrangement position of the external terminal I / F circuit 110b corresponding to the vicinity of the arrangement position of the external terminal 110b is determined. To do.
  • FIG. 3B shows the arrangement positions of the bus 124a connecting the internal circuit 140 and the external terminal I / F circuit 130a and the bus 124b connecting the internal circuit 140 and the external terminal I / F circuit 130b.
  • the internal circuit 140 and the external terminal I / F circuits 110a and 110b are described as being directly connected, but in practice, the parts of each block are sewn together.
  • the wiring position is determined.
  • the number of slices and the arrangement position of the timing adjustment circuit are determined according to the bus wiring length determined by the determined bus wiring position. That is, as shown in FIG. 3B, the arrangement positions of the slices 125a and 125b are determined according to the wiring length of the bus 124a, and the slice 125c is determined according to the wiring length of the bus 124b.
  • the internal circuit, the external terminal I / F circuit, and the slice are shown large for easy viewing of the drawings, but in actuality, the area required for the arrangement of each component is shown. Is not so big.
  • the requested external An external terminal is arranged at the terminal position, and an IO block is arranged in the vicinity thereof.
  • the IO block and the data transfer control circuit are connected with a bus and inserting the number of timing adjustment circuits corresponding to the wiring length of the bus into the bus, the timing adjustment between signals is performed and the circuit operates normally.
  • a semiconductor integrated circuit can be created.
  • the layout design of the semiconductor integrated circuit can be more flexibly performed and the design cost of the layout design can be suppressed without causing a situation such as a change of the floor plan due to the change of the external terminal position.
  • the layout design method shown in the first embodiment the layout is determined so as to provide a bus for connecting each external terminal I / F circuit and the internal circuit.
  • this configuration has a problem that the number of buses corresponding to the number of external terminal I / F circuits must be wired, and the area of the semiconductor integrated circuit is increased accordingly.
  • the difference of the first modification from the first embodiment is that the bus is not provided according to each external terminal I / F circuit but connected by a shared bus.
  • step S4A the difference from the flowchart shown in FIG. 1 is processing after step S403. Since the processes in steps S401 and S402 and steps S101 and S102 are common, the description thereof is omitted here.
  • the arrangement of the external terminal I / F circuit as a plurality of IO blocks is determined, and all the external terminals are set according to the arrangement position of the arranged external terminal I / F circuit.
  • the arrangement of the shared bus is determined so as to be as close as possible to the I / F circuit.
  • the arrangement position of the wiring connected to the shared bus from the internal circuit as the data transfer control circuit is determined so that the wiring is as short as possible.
  • the arrangement position of the slice as the timing adjustment circuit on the shared bus is determined (step S403).
  • connection position of each of the plurality of channels and the external terminal I / F circuits as the plurality of IO blocks to the shared bus is determined, and the layout position of the wiring to the shared bus is determined (step S404).
  • the layout design method according to the flowchart shown in FIG. 4A can be modified as shown in FIG. 4B. That is, the determination of the functional block layout in step S401, the external terminal layout in steps S402 and S403, the IO block layout, the shared bus layout, and the timing adjustment circuit layout are determined in parallel. May be processed.
  • the data transfer control circuit may not necessarily be included in the functional block.
  • the data transfer control circuit may be designed in a layout on the premise that the data transfer control circuit is included in each of a plurality of IO blocks or arranged in a form corresponding to each IO block.
  • 4A, 4 ⁇ / b> B, and 5 ⁇ / b> B describe an example in which a functional block and a plurality of IO blocks are connected in a bus topology, the functional block and the plurality of IO blocks are connected. They may be connected in a daisy chain topology. Whether to connect using a bus topology or a daisy chain topology is determined by design specifications, and a layout design is made according to the use.
  • the layout shown in FIG. 2B can be obtained through the processing in step S401 and step S402.
  • the steps so far are as described in the first embodiment.
  • the arranged external terminals are displayed.
  • the arrangement of the shared bus 124 for connection is determined.
  • the connection position and wiring position from the internal circuit 140 to the shared bus 124 are determined.
  • the arrangement positions of the slices 125a, 125b, and 125c, which are timing adjustment circuits, are determined according to the distance from the internal circuit 140. That is, a slice is arranged every time a certain distance is left from the internal circuit 140.
  • the connection position from the IO block to the shared bus is determined as shown in FIG. 5B so that the determined number of stages is inserted between the IO block and the internal block.
  • the position via the slices 125a and 125b is set between the external terminal I / F circuit 130a and the internal circuit 140 so that two stages of slices are inserted.
  • the connection position from the / F circuit 130a is determined as shown in FIG. 5B so that the determined number of stages is inserted between the IO block and the internal block.
  • a position passing through the slice 125b is set as a connection position from the external terminal I / F circuit 130b so that one stage number of slices is inserted between the external terminal I / F circuit 130b and the internal circuit 140.
  • the difference between the second modification and the first modification is in the determination timing of the shared bus arrangement position. That is, the determination timing of the arrangement of the shared bus in the modified example 2 is determined before the arrangement position of the external terminal is determined.
  • the size of the semiconductor integrated circuit is determined according to the required specifications of the semiconductor integrated circuit to be designed, and the arrangement of the shared bus is determined. Then, the arrangement position of the timing adjustment circuit for adjusting the timing of the signal flowing on the shared bus is determined (step S601).
  • the shared bus is arranged so that it can be connected to any internal circuit and as close as possible to the peripheral edge where the external terminals are arranged. Further, since the timing adjustment circuit should be arranged according to the wiring distance from each internal circuit to the external terminal, in this case, the timing adjustment circuit is arranged on the shared bus at regular distance intervals.
  • step S602 The arrangement position of each functional block including the data transfer control circuit is determined according to the required specification of the semiconductor integrated circuit to be designed next (step S602). In the case of FIG. 6A, the processing in step S601 and step S602 may be performed before and after.
  • the external terminal layout is determined according to the required specifications of the semiconductor integrated circuit. Is the position of the external terminal (step S603).
  • step S604 the arrangement of the plurality of IO blocks corresponding to each external terminal is determined as described in the first embodiment.
  • connection position of each of the plurality of IO blocks to the shared bus is determined (step S605).
  • the connection position is determined so that the wiring length from each IO block to the shared bus is as short as possible.
  • the layout design method according to the flowchart shown in FIG. 6A can be modified as shown in FIG. 6B. That is, the determination of the functional block arrangement in step S601, the external terminal arrangement in steps S602 and S603, the accompanying IO block arrangement, the shared bus arrangement and the timing adjustment circuit arrangement, and the sharing in step S604.
  • the arrangement of the bus and the timing adjustment circuit may be processed in parallel.
  • FIG. 6A and FIG. 6B show examples in which the data transfer control circuit is included in the functional block, the data transfer control circuit is not necessarily included in the functional block.
  • the data transfer control circuit may be designed in a layout on the premise that the data transfer control circuit is included in each of a plurality of IO blocks or arranged in a form corresponding to each IO block.
  • FIGS. 6 (a), 6 (b), and 8 show an example in which a functional block and a plurality of IO blocks are connected in a bus topology, the functional block and the plurality of IO blocks are daisy chain type. It may be connected in the topology. Whether to connect in a bus topology or in a daisy chain topology is determined by the design specifications, and a layout design is made according to the specifications.
  • the block arrangement is determined and the arrangement position of the shared bus 124 is determined.
  • the arrangement positions of the external terminals 110a and 110b are determined in accordance with the external terminal positions determined as shown in FIG. 7B.
  • the arrangement positions of the external terminals 110a and 110b are determined, the arrangement positions of the external terminal I / F circuits corresponding to the external terminals are determined as shown in FIG.
  • connection position to the shared bus 124 is determined in accordance with the distance from the determined position of the external terminal I / F circuit to the internal circuit 140, and the connection from each external terminal I / F circuit to the shared bus 124 is determined.
  • the layout position of the shared terminal is also determined before the layout position of the external terminal is determined. Therefore, the design after the layout position of the external terminal is determined. The number of man-hours can be made smaller than that shown in the first modification.
  • Embodiment 2> In the second embodiment, the configuration and operation of a semiconductor integrated circuit created by performing a layout design using the methods shown in the respective modifications will be described.
  • FIG. 9 is a functional block diagram showing a functional configuration of the semiconductor integrated circuit 100.
  • the semiconductor integrated circuit 100 includes external terminals 110a and 110b, slice buses 121, 122, and 123, slice groups 124 and 125, I / F circuits 130a and 130b, DMAC (Direct Memory Memory Access Controller). ) 140, arbitrators 151 and 152, and a buffer 160.
  • DMAC Direct Memory Memory Access Controller
  • the external terminals 110a and 110b are terminals that are connected to the corresponding I / F circuits 130a and 130b, respectively, for connection to a circuit or the like on a device on which the semiconductor integrated circuit 100 is mounted.
  • Each external terminal is composed of one or more terminals.
  • the slice buses 121, 122, and 123 are signal lines for transmitting signals between the slice group 124 and the DMAC 140 and between the slice group 124 and the slice group 125.
  • the slice groups 124 and 125 have a function of executing timing adjustment of input signals.
  • each slice performs adjustment for a predetermined fixed-length time width.
  • the slice groups 124 and 125 are realized by flip-flops or latches, and have a function of retiming an input signal here.
  • retiming refers to outputting a signal in which an input signal is synchronized with an operation clock cycle used when the semiconductor integrated circuit operates.
  • the operation clock wiring and the like are not described as being provided.
  • the semiconductor integrated circuit may be configured to include a crystal oscillator or the like for generating the operation clock, or may be configured to be supplied from the outside of the semiconductor integrated circuit.
  • a shared bus is formed including the slice buses 121, 122, 123 and the slice groups 124, 125.
  • the I / F circuits 130a and 130b have a function of relaying an external signal to the DMAC 140, and a function of transmitting a signal transferred from the DMAC 140 to an external device connected thereto.
  • the DMAC 140 has a function of accessing the buffer 160 and reading data or writing data.
  • the DMAC 140 has a function of executing communication with a circuit or device connected to the semiconductor integrated circuit 100.
  • the DMAC 140 has a function of executing communication on a plurality of channels that perform data transfer to individual paths, and includes a channel 141a and a channel 141b.
  • the channel 141a performs data transfer from the buffer 160 to the external terminal I / F circuit 130a
  • the channel 141b performs data transfer from the external terminal I / F circuit 130b to the buffer 160. Therefore, in the semiconductor integrated circuit 100, the channel 141a is used to output information from the buffer 160 to the outside of the semiconductor integrated circuit 100 via the shared bus, the external terminal I / F circuit 130a and the external terminal 110a, and the channel 141b is used. Then, information is input from the outside of the semiconductor integrated circuit 100 to the buffer 160 via the external terminal 110b, the external terminal I / F circuit 130b, and the shared bus.
  • Arbitrators 151 and 152 have a function of arbitrating which of the signals input to the shared bus is to be transferred.
  • the arbiter 151 performs arbitration of the downlink signal from the DMAC 140 to the I / F circuit, and the arbiter 152 arbitrates the uplink signal from the I / F circuit to the DMAC 140.
  • Information transfer between the channel 141a and the external terminal I / F circuit 130a hereinafter referred to as information transfer A
  • information transfer B information transfer between the channel 141b and the external terminal I / F circuit 130b
  • the buffer 160 is a memory having a function of temporarily storing data transferred from the DMAC 140, the semiconductor integrated circuit 100, or the like.
  • the buffer 160 has a function of holding data written from the DMAC 140 and a function of outputting data requested from the DMAC 140 among the held data.
  • the shared bus 1200 includes five buses: a command bus, a downlink data bus, a downlink information bus, an uplink data bus, and an uplink information bus.
  • the command bus is used for sending and receiving commands
  • the downlink data bus is used for sending and receiving downlink data
  • the downlink information bus is used for sending and receiving downlink information
  • the uplink is used for sending and receiving uplink data.
  • a data bus is used, and an uplink information bus is used for sending and receiving uplink information.
  • Signals constituting the command bus, the downlink data bus, and the downlink information bus transmit information from the DMAC 140 toward the external terminal I / F circuit 130a, and signals constituting the uplink data bus and the uplink information bus Transmits information from the external terminal I / F circuit 130 a to the DMAC 140.
  • the command is information indicating an attribute of data transfer sent from the DMAC 140 to the external terminal I / F circuit 130a.
  • the information transmitted and received by the command includes information indicating in which direction the data transfer is the downlink data / uplink data, the size of the data to be transferred, and the transfer address.
  • Downlink data is data and data synchronization information sent from the DMAC 140 to the external terminal I / F circuit 130a
  • uplink data is data and data synchronization information sent from the external terminal I / F circuit 130a to the DMAC 140.
  • the data synchronization information is information indicating the attribute of data transmitted in the same cycle as the data, and specifically includes information such as byte enable of data and final data transfer.
  • Information is information exchanged between the DMAC 140 and the external terminal I / F circuit 130a asynchronously with data transfer.
  • the uplink information for example, information including a transfer start request is transmitted from the external terminal I / F circuit 130a to the channel 141a, and as the downlink information, the external terminal I / F circuit 130a is transmitted from the channel 141a.
  • information including data writing completion information to the buffer 160 is transmitted.
  • write ready and read ready information is transmitted.
  • Write ready is information indicating that the external terminal I / F circuit 130a can accept a command for transferring downlink data
  • read ready is information indicating that the external terminal I / F circuit 130a performs uplink data transfer.
  • the write ready signal and the read ready signal are connected to peer to peer between the external terminal I / F circuit 130a and the channel 141a and between the external terminal I / F circuit 130b and the channel 141b. Signal.
  • the DMAC 140 and the external terminal I / F circuit 130a are connected by a shared bus, and the shared bus is sliced by a slice group 124.
  • the DMAC 140 and the slice group 124 are connected by a slice bus 121.
  • the slice bus 121 includes a command bus 1211, a downlink data bus 1212, a downlink information bus 1213, an uplink data bus 1214, and an uplink information bus 1215. Is done.
  • the slice group 124 and the external terminal I / F circuit 130a are connected by a slice bus 122.
  • the slice bus 122 is connected to a command bus 1221, a downlink data bus 1222, a downlink information bus 1223, and an uplink data bus 1224.
  • a link information bus 1225 is used.
  • the slice group 124 includes a slice 1241 for slicing the command bus 1211 and the command bus 1221, a slice 1242 for slicing the downlink data bus 1212 and the downlink data bus 1222, a downlink information bus 1213, and downlink information.
  • the command is output from the DMAC 140 and sent to the external terminal I / F circuit 130a via the command bus 1211, the slice 1241, and the command bus 1221.
  • the downlink data is output from the DMAC 140 and sent to the external terminal I / F circuit 130 a via the downlink data bus 1212, the slice 1242, and the downlink data bus 1222.
  • the downlink information is output from the DMAC 140 and sent to the external terminal I / F circuit 130a via the downlink information bus 1213, the slice 1243, and the downlink information bus 1223.
  • Uplink data is output from the external terminal I / F circuit 130a and sent to the DMAC 140 via the uplink data bus 1224, the slice 1244, and the uplink data bus 1214.
  • the uplink information is output from the external terminal I / F circuit 130 a and sent to the DMAC 140 via the uplink information bus 1225, the slice 1245, and the uplink information bus 1215.
  • a write ready signal and a read ready signal are sent from the external terminal I / F circuit 130a to the DMAC 140, and are sliced by a slice 1246 and a slice 1247, respectively, like the shared bus.
  • the write ready signal and the read ready signal are also sent from the external terminal I / F circuit 130b to the DMAC 140, and the slice group 124 is sent from the external terminal I / F circuit 130b. It also includes a slice of the write ready signal and the read ready signal to be sent.
  • the arbiter 151 is arranged in the vicinity of the DMAC 140, and the wiring between the DMAC 140 and the arbiter 151 is not sliced.
  • Each of the channel 141a and the channel 141b is directly connected to the arbiter 151, and a bus right request signal group is sent from the channel 141a and the channel 141b to the arbiter 151, and the channel 141a and the channel 141b are respectively transmitted A bus right approval signal group is sent to.
  • the bus request signal group sent from the channel 141a and the channel 141b to the arbiter 151 is all or a subset of the command bus request signal, the downlink data bus request signal, and the downlink information bus request signal. Composed.
  • the bus right approval signal sent from the arbiter 151 to the channel 141a and the channel 141b is composed of all or a subset of the command bus right approval signal, the downlink data bus right approval signal, and the downlink information bus right approval signal. Is done.
  • the channel 141a uses the command bus
  • the channel 141a sends a command bus right request signal to the arbiter 151, and in response, the arbiter 151 returns a command bus right approval signal to the channel 141a.
  • the channel 141a uses a downlink data bus
  • the channel 141a sends a downlink data bus right request signal to the arbiter 151, and in response thereto, the arbiter 151 sends a downlink data bus right approval signal to the channel 141a. return.
  • the channel 141a uses the downlink information bus
  • the channel 141a sends a downlink information bus right request signal to the arbiter 151, and in response to this, the arbiter 151 sends a downlink information bus right approval signal to the channel 141a. return.
  • the channel 141b sends a downlink information bus right request signal to the arbiter 151, and in response to this, the arbiter 151 sends a downlink information bus right approval signal to the channel 141a.
  • the external terminal I / F circuit 130b is disposed far from the external terminal I / F circuit 130a, and the arbiter 152 is disposed in the vicinity of the external terminal I / F circuit 130b. For this reason, the wiring between the external terminal I / F circuit 130a and the arbiter 152 is sliced by the slice group 1250, while the wiring between the external terminal I / F circuit 130b and the arbiter 152 is sliced. Absent.
  • the slice group 1250 includes slices 1251 to 1255 (corresponding to the slices 1241 to 1245 that are constituent elements of the slice group 1240) for slicing the shared bus signal, and the external terminal I / A slice 1256 and a slice 1257 for slicing a write ready signal and a read ready signal sent from the F circuit 130b to the DMAC 140, and a slice 1258 and a slice for slicing a bus right request signal group and a bus right approval signal group 1259.
  • a bus right request signal group is sent from the external terminal I / F circuit 130b to the arbiter 152, and a bus right approval signal group is sent from the arbiter 152 to the external terminal I / F circuit 130b.
  • a bus request signal group is sent from the external terminal I / F circuit 130a to the arbiter 152 via the slice 1258, and from the arbiter 152 to the external terminal I / F circuit 130a via the slice 1259.
  • the bus right approval signal group is sent.
  • the bus request signal group sent from the external terminal I / F circuit 130a and the external terminal I / F circuit 130b to the arbiter 152 includes all of the uplink data bus request signal and the uplink information bus request signal. It consists of a subset of them.
  • the bus right approval signal sent from the arbiter 152 to the external terminal I / F circuit 130a and the external terminal I / F circuit 130b is all or all of the uplink data bus right approval signal and the uplink information bus right approval signal. It consists of a subset of
  • the external terminal I / F circuit 130a uses the uplink data bus
  • the external terminal I / F circuit 130a sends an uplink data bus right request signal to the arbiter 152, and the arbiter 152 receives the request to receive the request.
  • An uplink data bus right approval signal is returned to the I / F circuit 130a.
  • the external terminal I / F circuit 130a uses an uplink information bus
  • the external terminal I / F circuit 130a sends an uplink information bus right request signal to the arbiter 152.
  • An uplink information bus right approval signal is returned to the I / F circuit 130a.
  • FIG. 12 shows the configuration of the arbiter.
  • FIG. 12A shows the configuration of the arbiter 151.
  • the arbiter 151 includes a command bus right arbitration circuit 1511, a downlink data bus right arbitration circuit 1512, and a downlink information bus right arbitration circuit 1513.
  • the command bus right arbitration circuit 1511 receives a command bus right request signal from each of the channel 141a and the channel 141b, and returns a command bus right approval signal to each of the channel 141a and the channel 141b.
  • the downlink data bus right arbitration circuit 1512 receives a downlink data bus right request signal from each of the channel 141a and the channel 141b, and returns a downlink data bus right approval signal to each of the channel 141a and the channel 141b.
  • the downlink information bus right arbitration circuit 1513 receives a downlink information bus right request signal from each of the channel 141a and the channel 141b, and returns a downlink information bus right approval signal to each of the channel 141a and the channel 141b.
  • FIG. 12B is a diagram showing the configuration of the arbiter 152.
  • the arbiter 152 includes an uplink data bus right arbitration circuit 1522 and an uplink information bus right arbitration circuit 1523.
  • the uplink data bus right arbitration circuit 1522 receives an uplink data bus right request signal from each of the external terminal I / F circuit 130a and the channel 130b, and receives an uplink data bus right for each of the external terminal I / F circuit 130a and the channel 141b. Returns an approval signal.
  • the uplink information bus right arbitration circuit 1523 receives an uplink information bus right request signal from each of the external terminal I / F circuit 130a and the channel 130b, and receives an uplink information bus to each of the external terminal I / F circuit 130a and the channel 141b. Returns the right approval signal.
  • the type of shared bus (command, downlink data, downlink information) It is possible to use the shared bus for the number of cycles determined every time.
  • the number of cycles may be an individual value for each shared bus use circuit (channel 141a, channel 141b).
  • the type of the shared bus (uplink data
  • the shared bus can be used for the number of cycles determined for each uplink information).
  • the number of cycles may be an individual value for each circuit using the shared bus (external terminal I / F circuit 130a, external terminal I / F circuit 130b).
  • FIG. 13A shows an information transfer flow in the case of performing data transfer from the channel 141a to the external terminal I / F circuit 130a.
  • a transfer start request including transfer size information is sent from the external terminal I / F circuit 130a to the channel 141a, and in response to this, the channel 141a starts data transfer.
  • the channel 141a does not transfer the data for the designated transfer size all at once, but divides the data into a predetermined size and transfers the data in multiple times.
  • a command is sent from the channel 141a to the external terminal I / F circuit 130a, and then downlink data is sent from the channel 141a to the external terminal I / F circuit 130a. This is repeated until the data transfer for the designated size is completed. However, if the transfer size specified when the transfer start request is made is smaller than the predetermined size, the data transfer is completed once.
  • FIG. 13 (a) is a flow diagram showing the transfer start request exchange and the initial command and data exchange at the start of data transfer. Hereinafter, the flow illustrated in FIG. 13A will be described in detail.
  • the uplink information bus right request is sent to the arbiter 152, and the arbiter 152 accordingly responds to the external terminal I / F.
  • the uplink information bus right approval is returned to the circuit 130a.
  • the external terminal I / F circuit 130a notifies the channel 141a of a transfer start request using the uplink information bus.
  • the channel 141a that has received the transfer start request sends a command bus right request to the arbiter 151 in order to send a command to the external terminal I / F circuit 130a, and the arbiter 151 sends a command to the channel 141a accordingly.
  • the bus right approval is returned.
  • the channel 141a sends a command to the external terminal I / F circuit 130a using the command bus.
  • the channel 141a that has finished sending the command sends a downlink data bus request to the arbiter 151 to send data to the external terminal I / F circuit 130a, and the arbiter 151 responds to the channel 141a accordingly.
  • the downlink data bus right approval is returned. Receiving this, the channel 141a sends data to the external terminal I / F circuit 130a using the downlink data bus.
  • FIG. 13B shows an information transfer flow when data transfer from the external terminal I / F circuit 130b to the channel 141b is performed.
  • a transfer start request including transfer size information is sent from the external terminal I / F circuit 130b to the channel 141b, and in response to this, the channel 141b starts data transfer. To do.
  • the channel 141b does not transfer data for the designated transfer size at a time, but divides the data into a predetermined size and transfers the data in multiple times.
  • a command is sent from the channel 141b to the external terminal I / F circuit 130b, and then uplink data is sent from the external terminal I / F circuit 130b to the channel 141b. This is repeated until the data transfer for the designated size is completed.
  • the transfer size specified when the transfer start request is made is smaller than the predetermined size, the data transfer is completed once. Thereafter, after all data transfer is completed, a data transfer completion notification is sent from the channel 141b to the external terminal I / F circuit 130b.
  • FIG. 13B shows an example in which data transfer for a specified size is completed with a single data transfer. After the completion of a single command and data transfer, a data transfer completion notification is sent. ing. Hereinafter, the flow illustrated in FIG. 13B will be described in detail.
  • an uplink information bus right request is sent to the arbiter 152, and the arbiter 152 accordingly responds to the external terminal I / F.
  • the uplink information bus right approval is returned to the circuit 130b.
  • the external terminal I / F circuit 130b receiving it notifies the channel 141b of the transfer start request using the uplink information bus.
  • the channel 141b that has received the transfer start request sends a command bus right request to the arbiter 151 to send a command to the external terminal I / F circuit 130b, and the arbiter 151 sends a command to the channel 141b accordingly.
  • the bus right approval is returned.
  • the channel 141b sends a command to the external terminal I / F circuit 130b using the command bus.
  • the external terminal I / F circuit 130b sends an uplink data bus right request to the arbiter 152 in order to send data to the channel 141b, and the arbiter 152 responds accordingly to the external terminal I / F.
  • the uplink data bus right approval is returned to the circuit 130b.
  • the external terminal I / F circuit 130b receiving it sends data to the channel 141b using the uplink data bus.
  • the channel 141b that has received the data confirms the completion of data writing to the buffer 160, and then issues a downlink information bus request to the arbiter 151 in order to notify the external terminal I / F circuit 130b of the completion of data transfer.
  • the arbiter 151 returns a downlink information bus right approval to the channel 141b.
  • the channel 141b notifies the external terminal I / F circuit 130b of the completion of data transfer using the downlink information bus.
  • FIG. 14 is a flowchart showing data transfer control of the channel 141a.
  • the channel 141a is activated in response to a transfer start request from the external terminal I / F circuit 130a.
  • the activated channel 141a first checks the write ready signal sent from the external terminal I / F circuit 130a. Wait until the external terminal I / F circuit 130a asserts write ready (NO in step S1401), and requests the command bus right when write ready is asserted (YES in step S1401) (step S1401). When the command bus right is requested, the process waits until the command bus right is approved (NO in step S1403). When the command bus right is approved (YES in step S1403), the command is transmitted (step S1404).
  • Step S1405 After the command is transmitted, it waits until data to be sent to the external terminal I / F circuit 130a is prepared (NO in step S1405), and when the data is prepared (YES in step S1405), a downlink data bus right is requested. (Step S1406).
  • the downlink data bus right When the downlink data bus right is requested, it waits until the downlink data bus right is approved (NO in step S1407), and when the downlink data bus right is approved (YES in step S1407), the downlink data is transmitted (step S1407). S1409).
  • step S1409 If the data transfer for the size specified at the time of the transfer start request is not completed, the process returns to S1401 (NO in step S1409), and the data transfer is performed again. If the data transfer for the specified size has been completed (YES in step S1409), the channel 141a stops and does not operate until the next transfer start request is received.
  • FIG. 15 is a flowchart showing data transfer control of the external terminal I / F circuit 130a.
  • the external terminal I / F circuit 130 a is activated by a processor (not shown) in the semiconductor integrated circuit 100.
  • the activated external terminal I / F circuit 130a requests an uplink information bus right to notify the channel 141a of a transfer start request (step S1501).
  • the uplink information bus right is requested, it waits until the uplink information bus right is approved (NO in step S1502).
  • the uplink information bus right is approved (YES in step S1502), the uplink information bus is used. Then, a transfer start request is transmitted (step S1503).
  • step S1504 it waits until the external terminal I / F circuit 130a is ready for data reception (NO in step S1504), and when ready for data reception is completed, write ready is asserted (step S1505). Thereafter, a command sent from the channel 141a is received (step S1506), and then downlink data is received (step S1507).
  • step S1508 If the data transfer of the size specified at the time of the transfer start request has not been completed, the process returns to S1501 (NO in step S1508) and the data transfer is performed again.
  • the external terminal I / F circuit 130a stops and does not operate until the next activation instruction is received.
  • FIG. 16 is a flowchart showing data transfer control of the channel 141b.
  • the channel 141b is activated in response to a transfer start request from the external terminal I / F circuit 130b.
  • the activated channel 141b first waits until the data reception of the channel 141b is ready (NO in step S1601), and when ready (YES in step S1601), then it is sent from the external terminal I / F circuit 130b. Check the read ready signal. Wait until the external terminal I / F circuit 130b asserts read ready (NO in step S1602). When read ready is asserted (YES in step S1602), a command bus right is requested (YES in step S1603). When the command bus right is requested, the process waits until the command bus right is approved (NO in step S1604). When the command bus right is approved (YES in step S1604), the command is transmitted (step S1605). Thereafter, the data sent from the external terminal I / F circuit 130b is received and written to the buffer 160 (step S1606).
  • step S1607 If the data transfer for the size specified at the time of the transfer start request is not completed (NO in step S1607), the process returns to step S1601, and the data transfer is performed again. If the data transfer for the designated size has been completed, an uplink information bus right is requested in order to notify the completion of the data transfer (step S1608). When the uplink information bus right is requested, the process waits until the uplink information bus right is approved (NO in step S1609). When the uplink information bus right is approved, the uplink information bus is used to notify the completion of data transfer. (Step S1610). Thereafter, the channel 141b stops and does not operate until the next transfer start request is received.
  • FIG. 17 is a flowchart showing data transfer control of the external terminal I / F circuit 130b.
  • the external terminal I / F circuit 130b is activated by a processor (not shown) in the semiconductor integrated circuit 100 or the like.
  • the activated external terminal I / F circuit 130b requests an uplink information bus right in order to notify the channel 141b of a transfer start request (step S1701).
  • the uplink information bus right is requested, it waits until the uplink information bus is approved (NO in step S1702).
  • the uplink information bus is approved (YES in step S1702)
  • the uplink information bus right is used.
  • a transfer start request is transmitted (step S1703).
  • step S1704 the external terminal I / F circuit 130b asserts read ready (step S1704). Thereafter, the command sent from the channel 141b is received (step S1705). After receiving the command, it waits until the data to be sent to the channel 141b is prepared (NO in step S1706). When the data is prepared (YES in step S1706), an uplink data bus right is requested (step S1707). When the uplink data bus right is requested, the process waits until the uplink data bus right is approved (NO in step S1708). When the uplink data bus right is approved (YES in step S1708), data is transmitted (step S1709). .
  • step S1710 If the data transfer for the size specified at the time of the transfer start request is not completed (NO in step S1710), the process returns to step S1704, and the data transfer is performed again. If the data transfer for the specified size has been completed (YES in step S1710), the external terminal I / F circuit 130b stops after receiving the data transfer completion notification (step S1711), and the next start instruction Will not work until received.
  • FIG. 18 is a diagram showing the assignment of the bus right of the shared bus that conveys information from the DMAC 140 to the external terminal I / F circuit groups 130a and 130b and the usage status of the shared bus.
  • the channel 141a and the channel 141b use the command bus
  • the channel 141a and the channel 141b both use the shared bus for three cycles when the bus right is approved.
  • the command bus right request signal from the channel 141a has arrived at the arbiter 151, and the arbiter 151 that has received it returns a command bus right approval to the channel 141a at the time T0.
  • the command output from the channel 141a to the command bus of the slice bus 121 from the time T0 to the time T2 is delayed by one cycle when passing through the slice group 124, and the command bus of the slice bus 122 from the time T1 to the time T3. Is output.
  • the command is acquired by the external terminal I / F circuit 130a.
  • the command bus right request signal from the channel 141b has reached the arbiter 151, and the arbiter 151 that has received it returns a command bus right approval to the channel 141b at the time T3.
  • the command output from the channel 141b to the command bus of the slice bus 121 between the time T3 and the time T5 is delayed by one cycle when passing through the slice group 124, and the command bus of the slice bus 122 from the time T4 to the time T6. Is output.
  • the command output to the command bus of the slice bus 122 from time T4 to time T6 is delayed by one cycle when passing through the slice group 125, and is sent to the command bus of the slice bus 123 from time T5 to time T7. Is output.
  • the command is acquired by the external terminal I / F circuit 130b.
  • the command bus right from time T6 to time T8 and the usage status of the corresponding shared bus are the same as those from time T0 to time T2, and the command bus right from time T9 to time T11 and the usage status of the shared bus corresponding thereto. Is the same as that from time T3 to time T5.
  • FIG. 19 is a diagram showing the assignment of the bus right of the shared bus that conveys information from the external terminal I / F circuit group 130 to the DMAC 140 and the usage status of the shared bus.
  • the external terminal I / F circuit 130a and the external terminal I / F circuit 130b use the uplink information bus, and the external terminal I / F circuit 130a and the external terminal I / F circuit 130b obtain the bus right approval.
  • three cycles of the shared bus are used together.
  • the uplink information bus right request signal from the external terminal I / F circuit 130a Prior to time T0, the uplink information bus right request signal from the external terminal I / F circuit 130a has arrived at the arbiter 152, and the arbiter 152 having received it receives the signal from the external terminal I / F circuit 130a at the time T0.
  • the uplink information bus right approval is returned.
  • the slice bus 123 is not used from time T0 to time T2.
  • the information output from the external terminal I / F circuit 130a to the uplink information bus of the slice bus 122 between time T1 and time T3 is delayed by one cycle when passing through the slice group 124, and from time T2 to time T4. It is output to the uplink information bus of the inter-slice bus 121.
  • the information sent via the uplink information bus is acquired by the channel 141a.
  • the uplink information bus right request signal from the external terminal I / F circuit 130b has arrived at the arbiter 152, and the arbiter 152 that has received it receives the signal from the external terminal I / F circuit 130b.
  • the uplink information bus right approval is returned at time T3.
  • the information output from the external terminal I / F circuit 130b to the uplink information bus of the slice bus 123 between time T3 and time T5 is delayed by one cycle when passing through the slice group 125, and from time T4 to time T6. It is output to the uplink information bus of the inter-slice bus 122.
  • the information output to the uplink information bus of the slice bus 122 from time T4 to time T6 is delayed by one cycle when passing through the slice group 124, and the slice bus 121 is up from time T5 to time T7.
  • the information sent via the uplink information bus is acquired by the channel 141b.
  • the shared bus is fixed when the shared bus using circuit (channel 141a, channel 141b, external terminal I / F circuit 130a, or external terminal I / F circuit 130b) obtains the bus right approval.
  • the usage period of the shared bus may be different for each shared bus usage circuit.
  • FIG. 20 An example in which the shared bus usage period is different for each shared bus usage circuit will be described with reference to FIGS. 20 and 21.
  • the channel 141a and the channel 141b use the command bus, and when the channel 141a gets the bus right approval, the shared bus is used for three cycles, and when the channel 141b gets the bus right approval, the shared bus is used.
  • the example which uses 2 cycles is described.
  • FIG. 20 shows an example in which the arbiter 151 does not know the usage period of the shared bus for each shared bus usage circuit, performs arbitration every maximum value (3 cycles) of the shared bus usage period, and returns a bus right approval. is doing.
  • one cycle of the period (3 cycles) in which the channel 141b has the right to use the shared bus is an unused period.
  • the channel 141b does not use the slice bus 121 at time T5 and time T11 when the channel 141b has the right to use the shared bus. Therefore, the slice bus 122 is not used at time T6 and time T12, and the slice bus 123 is not used at time T7 and time T13. For this reason, the use efficiency of a shared bus will fall.
  • the arbitration device 151 may be provided with shared bus usage period information for each used circuit, and the arbitration timing may be changed according to the shared bus usage period for each used circuit.
  • FIG. 21 shows an example in which the arbiter 151 has the shared bus usage period information for each used circuit, and changes the arbitration timing according to the shared bus usage period for each used circuit.
  • the channel 141a and the channel 141b use the command bus
  • the channel 141a uses the shared bus for 3 cycles when the bus right is approved
  • the channel 141b receives the bus right approval.
  • An example in which the shared bus is used for two cycles is described.
  • Arbiter 151 performs arbitration at time T0, and arbitrator 151 returns a command bus right approval to channel 141a at time T0.
  • the arbiter 151 holds the use period information (3 cycles) of the shared bus of the channel 141a, and performs the next arbitration at time T3 after 3 cycles.
  • Arbiter 151 returns a command bus right approval to channel 141b at time T3.
  • the arbiter 151 holds the use period information (two cycles) of the shared bus of the channel 141b, and performs the next arbitration at time T5 after two cycles.
  • Arbiter 151 returns a command bus right approval to channel 141a at time T5.
  • the arbiter 151 holds the use period information (3 cycles) of the shared bus of the channel 141a, and performs the next arbitration at time T8 after 3 cycles.
  • the arbitrator 151 has the shared bus usage period information for each used circuit, and the timing of arbitration is changed according to the shared bus usage period for each used circuit, so that each shared bus used circuit is changed. Even when the period of use is different, it is possible to maintain high bus use efficiency.
  • the semiconductor integrated circuit shown in the second embodiment is designed and created according to the above-described modification, and has a configuration that operates without any problem even if the determination of the external terminal position is delayed. realizable. That is, since the timing adjustment circuit is determined by determining the number of stages according to the position of the external terminal, a semiconductor integrated circuit can be realized with a simple configuration and taking into account delays between data transfers.
  • ⁇ Embodiment 3> In the second embodiment, a case has been described in which when the external terminal I / F circuits 130a and 130b and the DMAC 140 perform data transfer, buses having different bus usage periods are mixed.
  • bus right usage period here may be referred to as a burst length in one data transfer.
  • FIG. 22 is a functional block diagram showing a configuration example of the semiconductor integrated circuit 200 when the shared bus is not divided.
  • FIG. 23 is a functional block diagram showing a configuration example of the semiconductor integrated circuit 300 when the shared bus is divided.
  • the configuration is basically the same as that of the semiconductor integrated circuit 100 shown in the second embodiment, so that the description is omitted with the buffer 160 and the like omitted.
  • the DMAC 240 includes four channels of a channel 241a, a channel 241b, a channel 241c, and a channel 241d, and is connected to the external terminal I / F circuit group 230 through a shared bus.
  • the channel 241a exchanges information with the external terminal I / F circuit 230a
  • the channel 241b exchanges information with the external terminal I / F circuit 230b
  • the channel 241c exchanges information with the external terminal I / F circuit 230c
  • the channel 241d Exchanges information with the external terminal I / F circuit 230d.
  • Each of the channel 241a, the channel 241b, the channel 241c, and the channel 241d sends a bus right request signal group to the arbiter 251, and the arbiter 251 has a bus right for each of the channel 241a, the channel 241b, the channel 241c, and the channel 241d. Send approval signals.
  • Each of the external terminal I / F circuit 230a, the external terminal I / F circuit 230b, the external terminal I / F circuit 230c, and the external terminal I / F circuit 230d sends a bus right request signal group to the arbiter 252, 252 sends a bus right approval signal group to each of the external terminal I / F circuit 230a, the external terminal I / F circuit 230b, the external terminal I / F circuit 230c, and the external terminal I / F circuit 230d.
  • the configuration of the bus right request signal group and the bus right approval signal group is the same as described with reference to FIG.
  • the write ready signal and the read ready signal are connected via a slice between the channel for transmitting / receiving information and the external terminal I / F circuit as in FIG.
  • the shared bus includes a slice group 224, a slice group 225, and a slice bus 221, a slice bus 222, and a slice bus 223 sliced by them.
  • the DMA controller 251 is connected to the slice bus 221, the external terminal I / F circuit 230a and the external terminal I / F circuit 230c are connected to the slice bus 222, and the external terminal I / F circuit 230b and the external terminal I / F.
  • the F circuit 230 d is connected to the slice bus 223.
  • FIG. 24 is a diagram showing the assignment of the bus right of the shared bus that conveys information in the direction of 230 from the DMA controller 240 to the external terminal I / F circuit group and the usage status of the shared bus.
  • the channel 241a, the channel 241b, the channel 241c, and the channel 241d use the command bus, and when the channel 241a and the channel 241b obtain the bus right approval, the shared bus is used for three cycles, and the channel 241c, An example is described in which the shared bus is used for two cycles when the channel 241d obtains the bus right approval.
  • the arbiter 251 does not have the usage period information of the shared bus for each used circuit, and performs arbitration every fixed cycle (three cycles).
  • the shared bus used by the channel 241a and the channel 241b during the shared bus usage period 3 and the shared bus used by the channel 241c and the channel 241d during the shared bus usage period 2 Buses may be implemented individually. This example will be described with reference to FIG. 23, FIG. 25, and FIG.
  • FIG. 23 shows a configuration example when an individual shared bus is mounted.
  • the configurations of the DMAC 340 and the external terminal I / F circuit groups 330a to 330d are substantially the same as those in FIG. However, unlike FIG. 22, two shared buses are provided, and an arbitrator is provided for each shared bus system.
  • the channel 341a, the channel 341b, the external terminal I / F circuit 330a, and the external terminal I / F circuit 330b are configured by a slice bus 321a, a slice bus 322a, a slice bus 323a, a slice group 324a, and a slice group 325a.
  • a channel 341c, a channel 341d, an external terminal I / F circuit 330c and an external terminal I / F circuit 330d are a slice bus 321b, a slice bus 322b, a slice bus 323b, a slice group 324b, and It is connected to the second shared bus constituted by the slice group 325b.
  • Each of the channel 341a and the channel 341b sends a bus right request signal group to the arbiter 351a, and the arbiter 351a sends a bus right approval signal group to each of the channel 241a and the channel 241b.
  • Each of the channel 241c and the channel 341d sends a bus right request signal group to the arbiter 351b, and the arbiter 351b sends a bus right approval signal group to each of the channel 341c and the channel 341d.
  • Each of the external terminal I / F circuit 330a and the external terminal I / F circuit 330b sends a bus right request signal group to the arbiter 352a, and the arbiter 352a includes the external terminal I / F circuit 330a and the external terminal I / F.
  • a bus right approval signal group is sent to each of the circuits 330b.
  • Each of the external terminal I / F circuit 330c and the external terminal I / F circuit 330d sends a bus right request signal group to the arbiter 352b, and the arbiter 352b includes the external terminal I / F circuit 330c and the external terminal I / F.
  • a bus right approval signal group is sent to each of the circuits 330d.
  • the configuration of the bus right request signal group and the bus right approval signal group is the same as described in FIG. Although omitted in FIG. 23, the write ready signal and the read ready signal are connected via a slice between the channel for transferring information and the external terminal I / F circuit as in FIG.
  • FIG. 25 is a diagram showing the allocation of the bus right of the shared bus that conveys information from the external terminal I / F circuit groups 330a to 330d to the DMAC 340 and the usage status of the shared bus.
  • the channel 341a and the channel 341b use the command bus of the first shared bus
  • the channel 341c and the channel 341d use the command bus of the second shared bus.
  • the arbiter 351a and the arbiter 351b perform arbitration every fixed cycle
  • the arbitrator 351a performs arbitration every three cycles
  • the arbitrator 351b performs arbitration every two cycles.
  • the shared bus can be used without an unused period as in the description in FIG. ⁇ Summary>
  • the timing of arbitration according to the use period of the shared bus for each used circuit is individually provided.
  • the shared bus can be used with high efficiency without providing a complicated arbitration circuit to be changed.
  • an uplink arbiter and a downlink arbiter are arranged as shown in FIG. 9, FIG. 22, or FIG. This is because it is designed whether or not to perform arbitration, and when a design for providing a new external terminal or external terminal I / F circuit is added here, it is necessary to redesign the arbiter. Even when a design is added to remove the external terminal and external terminal I / F circuit that were originally included in the design, it is necessary to redesign the arbiter. Further, since it is necessary to provide a new external terminal and a new channel corresponding to the external I / F circuit in the DMAC, it is necessary to redesign the DMAC.
  • the layout design is performed as a part of the external terminal I / F circuit without including the DMAC as the data transfer control circuit in the functional block. It is described that it is good.
  • FIG. 28A shows a layout design method in the case where the data transfer control circuit is not included in the functional block in the layout design method shown in FIG. 4A as an example.
  • the same steps as those in FIG. 4 are denoted by the same step numbers, and different contents are denoted by different step numbers.
  • the method of designing the data transfer control circuit shown in the fourth embodiment without including it in a functional block is applicable not only to FIG. 4 but also to the layout design method shown in FIG. 1 or FIG.
  • the difference between the flowchart shown in FIG. 28A and the flowchart shown in FIG. 4A is the timing for determining the arrangement of the data transfer control circuit.
  • step S2801 the arrangement of functional blocks not including the data transfer control circuit is determined (step S2801).
  • step S402 the arrangement of the IO block including the data transfer control circuit corresponding to each external terminal is determined. At this time, when the IO block does not include the data transfer control circuit, the arrangement of the data transfer control circuit is also determined so as to correspond to each IO block.
  • the arrangement of the IO block is determined, the arrangement of the shared bus and the arrangement of the timing adjustment circuit inserted into the shared bus are determined (step S2803).
  • FIG. 28 (b) shows a method of designing a layout by parallel processing at each step in FIG. 28 (a), as in FIG. ⁇ Configuration> A configuration of the semiconductor integrated circuit designed according to the design procedure of FIG. 28 will be described.
  • FIG. 29 is a block diagram showing a functional configuration of the semiconductor integrated circuit 400.
  • FIG. 29 differs from FIG. 22 and FIG. 23 in that a circuit (DMA channel) having a DMAC function as a data transfer control circuit is provided corresponding to each external terminal I / F circuit, and arbitration for uplink.
  • a simple arbiter is provided corresponding to each DMA channel, instead of providing the arbiter and the downlink arbiter. That is, in the case of FIGS. 22 and 23, the DMA channel is configured such that one circuit (DMAC) controls the remote external terminal I / F circuit, whereas in FIG. 29 of the fourth embodiment, The DMAC function is arranged on the external terminal I / F circuit side.
  • the semiconductor integrated circuit 400 designed according to the flowchart shown in FIG. 28 includes a functional block 440, external terminals 410a and 410b, external terminal I / F circuits 430a and 430b, and DMA channels 440a and 440b. And an arbitrator 450 a, slice groups 424 and 425, slice buses 421, 422, and 423, and a buffer 460. Each circuit is connected in the configuration shown in FIG.
  • the semiconductor integrated circuit 400 receives data from an external device connected to the semiconductor integrated circuit 400 at the external terminals 410a and 410b and transfers the data to the buffer 460, and the data from the buffer 460 from the external terminals 410a and 410b.
  • the circuit includes a function of transferring to an external device connected to the semiconductor integrated circuit 400.
  • External terminals 410a and 410b, slice groups 424 and 425, and buffer 460 perform the same functions as those described in the first to third embodiments.
  • the DMA channel 440a has a function of controlling data transfer between the external terminal I / F circuit 430a and the buffer 460.
  • the DMA channel 440a first transmits a data transfer request to the arbiter 450a.
  • a notification of permission to use the shared bus is received from the arbiter 440b, data transfer is executed.
  • the DMA channel 440b has a function of controlling data transfer between the external terminal I / F circuit 430b and the buffer 460.
  • the DMA channel 440b first transmits a data transfer request to the arbiter 450b.
  • a notice of permission to use the shared bus is received from the arbiter 450b, data transfer is executed.
  • Both DMA channels 440a and 440b are connected to a shared bus (421, 422, 423). For this reason, in order to actually execute data transfer, it is necessary to acquire the bus right.
  • Arbitrators 450a and 450b are provided for this purpose, and bus rights are managed by the arbitrators 450a and 450b.
  • the arbiters 450a and 450b receive a data transfer request from the DMA channel.
  • the arbiters 450a and 450b receive the bus right request signal from the arbiter (arbiter 450b for the arbiter 450a) downstream from the functional block 440 side.
  • priorities are assigned to both bus requests according to a predetermined policy, and the bus request signal having the higher priority is output upstream (function block 440).
  • the arbiters 450a and 450b output a bus right request signal as it is when a data transfer request is not received from the DMA channel and a bus right request signal is received from a downstream arbiter.
  • the functional block 440 receives the bus right approval signal at a timing when the bus right may be given in accordance with the bus right request signal transmitted from the arbitrator 450a (for example, a timing when the shared bus is not used in any circuit). Is transmitted to the arbiter 450a.
  • Such a configuration makes it easy to add and delete external terminals and external terminal I / F circuits, and the arbiter only manages the bus right with the above simple configuration. It is a configuration that requires no design.
  • FIG. 30 shows a semiconductor integrated circuit 400a in which a new external terminal 410c, external terminal I / F circuit 430c, DMA channel 440c, and arbiter 450c are added to the configuration of FIG.
  • FIG. 30 shows a configuration in which a new slice group 426 is provided, but this slice group 426 is provided according to the wiring length of the shared bus. Therefore, when the wiring length to a new external terminal or external terminal I / F circuit is not so long, it is not necessary to newly provide a slice group for timing adjustment, and the configuration as shown in FIG.
  • the semiconductor integrated circuit 400b is designed.
  • FIG. 32 shows a configuration that is not added but deleted. With such a configuration, it is possible to add or delete a design that is considered in units of one data transfer path including a combination of an external terminal, an external terminal I / F circuit, a DMA channel, and an arbiter.
  • FIG. 29 to 32 show an example in which the functional block and a plurality of IO blocks are connected in a bus type topology, this may be connected in a daisy chain type topology.
  • a configuration for connecting functional blocks and IO blocks in a daisy chain topology for example, a configuration as shown in FIG. 33 is conceivable.
  • a semiconductor integrated circuit 400d shown in FIG. 33 is obtained by changing the semiconductor integrated circuit 400b in which the functional block and the IO block are connected in the bus type topology shown in FIG. 31 to a configuration connected in the daisy chain type topology. It is.
  • the IO block a circuit in which an external terminal I / F circuit (430a / 430b / 430c), a DMA channel (440a / 440b / 440c), and an arbiter (450a / 450b / 450c) are packaged together is used.
  • the functional block 440, the slice groups 424, 425, and the IO blocks 470a, 470b, 470c are connected by a bus (421, 422, 423) in a daisy chain configuration.
  • the IO blocks 470a, 470b, and 470c have one set of DMA channel (440a / 440b / 440c) and arbiter (450a / 450b / 450c), as in the semiconductor integrated circuit 400e shown in FIG. It may be a packaged circuit.
  • the semiconductor integrated circuit 400d shown in FIG. 33 and the semiconductor integrated circuit 400e shown in FIG. 34 exhibit substantially the same functions as the semiconductor integrated circuit 400b shown in FIG. To do.
  • Whether to connect using a bus topology or a daisy chain topology is determined by design specifications, and a layout design is performed according to the specifications.
  • a layout design method in which an external terminal, an external terminal I / F circuit, a data transfer control circuit, and an arbiter are used as one data transfer path, and a data transfer path can be easily added or deleted, and a semiconductor integrated circuit designed by the layout design method A circuit can be provided.
  • the layout design method has been shown.
  • a human may design the layout of the semiconductor integrated circuit according to the layout design method.
  • the layout design method according to the embodiment described above. Any device that performs layout according to the above procedure may be used, and the device that performs layout design may be ordered and designed.
  • the layout design method described in the above embodiment may be executed by a design apparatus that designs a layout of a semiconductor integrated circuit.
  • the data transfer control circuit information on the area of each functional block, and information on the total layout area allowed according to the size of the semiconductor integrated circuit to be designed are input. Determine the placement. The details of the determination method of the arrangement are omitted here because various conventional techniques are disclosed.
  • the design apparatus accepts input of external terminal position information from, for example, an operator of the design apparatus.
  • the position indicated by the information is determined as the external terminal arrangement position.
  • the design device determines the IO block placement position in the vicinity of the external terminal position. The determination is that the wiring length between the external terminal and the IO block is within a predetermined distance from the determined external terminal position and the position where the arrangement with other parts does not overlap. The shortest position is determined as the IO block placement position.
  • the design apparatus connects the IO block and the data transfer control circuit, and determines the bus wiring position so that the layout with other parts does not overlap. .
  • the number and position of the timing adjustment circuits to be inserted on the bus are inserted from the determined bus wiring length so as not to overlap with the arrangement positions of other components.
  • a table indicating the number of timing adjustment circuits to be inserted is stored in advance in the design device for each wiring length divided within a certain length range, and the determined bus The wiring length is calculated based on the arrangement position of. Then, based on which range of the table the calculated wiring length corresponds to, the number of timing adjustment circuits corresponding to the corresponding range is determined as the number of timing adjustment circuits to be inserted.
  • the design apparatus based on the layout design method shown in the first embodiment has been described, but this is a layout design by the design apparatus based on the layout design method shown in the other embodiments. Also good.
  • the design apparatus may execute the layout design using the method described in the first modification, the second modification, or the fourth embodiment.
  • the shared bus may be arranged as shown in FIG. That is, the shared bus is wired so as to surround each functional block. Then, according to the wiring length from the internal circuit 140, slice groups 125a to 125j as timing adjustment circuits are arranged. A space for installing the external terminal I / F circuit is secured around the area, and the determination of the external terminal position is awaited.
  • the determined position is set as the arrangement position of the external terminals 110a to 110c, and the arrangement position of the external terminal I / F circuits 130a to 130c, which are IO blocks, is determined in the vicinity thereof and connected to the external terminals. Then, it is arranged on the shared bus so as to be the shortest in a linear distance from the external terminal I / F circuit.
  • information exchange between the DMA controller 140 and the external terminal I / F circuit groups 130a and 130b may be composed of only commands and downlink data, and may include a subset of five pieces of information.
  • the write ready signal and the read ready signal sent from the external terminal I / F circuit groups 130a and 130b to the DMA controller 140 are sliced.
  • the invention is not limited to this.
  • the write ready signal and the read ready signal may be directly connected between the external terminal I / F circuit groups 130a and 130b and the DMA controller 140 without passing through the slice.
  • the bus right request signal group sent from the external terminal I / F circuit 130a to the arbiter 152 is sliced by the slice 1258 is described. It is not limited to this.
  • the bus request signal group may be directly connected to the arbiter without going through the slice.
  • the arbiter 151 and the arbiter 152 are all components of the shared bus (command bus, downlink data bus, downlink information bus, uplink data bus, uplink information bus). Although an example including an arbitration circuit is described, the present invention is not limited to this.
  • the corresponding downlink information bus arbitration circuit 1513 is mounted. It is not necessary.
  • the link information bus arbitration circuit 1513 may not be mounted.
  • the command bus right arbitration circuit 1511, the downlink data bus right arbitration circuit 1512, and the downlink information bus right arbitration circuit 1513 are located in the localized physical area included in the arbitrator 1510. Although a layout example is described, the present invention is not limited to this. Each of the command bus right arbitration circuit 1511, the downlink data bus right arbitration circuit 1512, and the downlink information bus right arbitration circuit 1513 may be laid out in a distributed area as necessary.
  • the uplink data bus right arbitration circuit 1522 and the uplink information bus right arbitration circuit 1523 included in the arbitrator 1520 are not limited to this.
  • the data transfer may be started after the command is sent N times (N is an integer of 2 or more) before the data.
  • N is an integer of 2 or more
  • the command bus is described as an example in the third embodiment, the present invention is not limited to this.
  • the same configuration may be adopted for the downlink data bus and the downlink information bus for transferring information from the DMAC 240 (340) to the external terminal I / F circuit groups 230a to 230d (330a to 330d).
  • the same configuration may be adopted for the uplink data bus and the uplink information bus for transferring information from the external terminal I / F circuit group 230 to the DMAC 240.
  • the configuration in which one external IO terminal corresponds to one external terminal I / F circuit is shown, but this is not limited thereto.
  • One external terminal I / F circuit may correspond to a plurality of external IO terminals.
  • the designed semiconductor integrated circuit may have a configuration including only one external terminal I / F circuit and one DMA channel as shown in FIG. (12)
  • a control program consisting of the above in a recording medium, or to distribute and distribute the program via various communication paths.
  • Examples of such a recording medium include an IC card, a hard disk, an optical disk, a flexible disk, and a ROM.
  • the distributed and distributed control program is used by being stored in a memory or the like that can be read by the processor, and the processor executes the control program, thereby realizing various functions as shown in the embodiment. Will come to be. (13)
  • Each functional unit and various circuits in the block diagrams (see FIGS. 8 to 12, 22, 23, etc.) shown in the above embodiment are integrated and realized by one or a plurality of LSIs (Large Scale Integration). May be.
  • a plurality of functional units may be realized by one LSI.
  • LSI may be called IC (Integrated Circuit), System LSI, VLSI (Very Large Scale Integration), SLSI (Super Large Scale Integration), ULSI (Ultra Large Scale Scale Integration), etc., depending on the degree of integration.
  • a first integrated circuit manufacturing method includes: a layout design step for generating a mask pattern used for manufacturing an integrated circuit; and a method for generating the integrated circuit on a semiconductor material using the mask pattern.
  • the layout design step includes a first step for determining the arrangement of functional blocks, and a plurality of external IOs (Input-) for connecting the integrated circuit and external devices.
  • the third step of determining the block arrangement the arrangement of the bus connecting the functional block and the IO block, and the wiring length of the bus The number of, and; and a fourth step of determining the arrangement of the timing adjustment circuit adjusting the timing of signals flowing on the bus.
  • a second integrated circuit manufacturing method is a layout design step for generating a mask pattern used for manufacturing an integrated circuit, and the integrated circuit is formed on a semiconductor material using the mask pattern.
  • the layout design step includes a first step for determining the arrangement of functional blocks, and a plurality of external IOs (for connecting the integrated circuit and external devices).
  • a second step of determining the arrangement of the input-output terminal, and at least one IO (Input) connected to one of the external IO terminals according to the arrangement of the external IO terminals determined in the second step -Output) the third step of determining the arrangement of the block, the arrangement of the shared bus connecting the functional block and the IO block, and the shared bus Number of stages corresponding to the line length, characterized in that it comprises a fourth step of determining the arrangement of the timing adjustment circuit adjusting the timing of signals flowing on the shared bus.
  • a third integrated circuit manufacturing method includes a layout design step for generating a mask pattern used for manufacturing an integrated circuit, and the integrated circuit is formed on a semiconductor material by using the mask pattern.
  • the layout design step includes a first step for determining the arrangement of functional blocks, a shared bus, and a timing adjustment for adjusting a timing of a signal flowing on the shared bus.
  • a second step of determining an arrangement with a circuit a third step of determining an arrangement of a plurality of external IO (Input-Output) terminals for connecting the integrated circuit and an external device, and the second step.
  • the determined arrangement of each external IO terminal at least one IO (Input-Output) block connected to one of the external IO terminals. Characterized in that it comprises a fourth step of determining a location, a fifth step for connecting the functional blocks and the IO block to said shared bus, a.
  • a semiconductor integrated circuit manufactured by these integrated circuit manufacturing methods includes a functional block, a plurality of external IO terminals, at least one IO block connected to any of the external IO terminals, and the functional block.
  • the timing adjustment circuit is divided into a plurality of slices, and the functional block and the IO block are connected to one of the plurality of slices.
  • the IO block whose arrangement is determined in the first step may include a data transfer control circuit.
  • the functional block may include a data transfer control circuit.
  • the IO block whose arrangement is determined in the third step may include a data transfer control circuit.
  • the IO block may include a data transfer control circuit.
  • each IO block By including a data transfer control circuit in each IO block, it is easy to add or delete a data transfer path with the external IO terminal and the IO block as one unit.
  • the third step may determine a position close to the external IO terminal as an arrangement position of the IO block.
  • the fourth step may determine a position close to the external IO terminal as an arrangement position of the IO block.
  • the IO block may be arranged at a position close to the external IO terminal.
  • the position close to the external terminal is within a range in which data communication in which a communication delay in data transfer between the external terminal and the IO block can be allowed as an error can be performed.
  • the IO block is arranged in the vicinity of the external terminal, it is not necessary to consider the configuration for timing adjustment in the data transfer between the external terminal and the IO block, and the burden of layout design is reduced. Can do.
  • the timing adjustment circuit may detect a phase shift between the plurality of signals generated by a plurality of signals including the signal flowing through the bus.
  • the fourth step may be to determine the number of stages for inserting the timing adjustment circuit and the arrangement position thereof based on the delay amount generated in the signal according to the wiring length. Good.
  • the timing adjustment circuit corrects a phase shift between the plurality of signals generated by a plurality of signals including the signal flowing through the shared bus with respect to the input signal.
  • the fourth step may determine the number of stages for inserting the timing adjustment circuit and the arrangement position thereof based on the delay amount generated in the signal according to the wiring length. .
  • the timing adjustment circuit may detect a phase shift between the plurality of signals generated when the plurality of signals including the signal flow through the shared bus.
  • the second step may be to determine the number of stages for inserting the timing adjustment circuit and the arrangement position thereof based on the delay amount generated in the signal according to the wiring length. Good.
  • the integrated circuit generated according to the integrated circuit manufacturing method can correct the delay from the operation clock of the signal flowing through the bus.
  • the shared bus for which the layout is determined in the fourth step may be determined so as to daisy chain connect the functional block and the IO block.
  • the arrangement in the fifth step, may be determined such that the functional block and the IO block are daisy chain connected by the shared bus.
  • the semiconductor integrated circuit is further connected to one end of the shared bus, and arbitrates a bus right request signal related to data transfer in a direction from the IO block to the data transfer control circuit.
  • An uplink arbiter that arbitrates a bus right request signal from the plurality of IO blocks, and outputs a bus right approval signal to one selected IO block among the plurality of IO blocks.
  • the bus right approval signal may be issued and delayed to be notified to the selected one IO block via a slice between the selected one IO block and the uplink arbiter.
  • the shared bus includes a downlink bus for transmitting a signal in a direction from the data transfer control circuit to the IO block, and the IO block to the data transfer control circuit. It is good also as comprising including the uplink bus for transmitting the signal of the direction to go.
  • the uplink arbiter includes information on a burst length of each of data transferred by the plurality of IO blocks, and the uplink arbiter is granted a bus right.
  • the arbitration interval of the bus request signal may be determined according to the burst length information corresponding to one IO block.
  • the semiconductor integrated circuit is further connected to the data transfer control circuit, and arbitrates a bus right request signal related to data transfer in a direction from the data transfer control circuit to the IO block.
  • the data transfer control circuit may output data to the shared bus at a timing according to a delay until the slice where the IO block is arranged.
  • the downlink arbiter includes information on burst lengths of data transferred by the plurality of channels, and the downlink arbiter is approved for the bus right.
  • the arbitration interval of the bus right request signal may be determined according to the burst length information corresponding to one channel.
  • the shared bus includes a bus for a long burst device and a bus for a short burst device, and transfers data between the data transfer control circuit and the IO block. Depending on the burst length, data transfer may be performed using either the long burst device bus or the short burst device bus.
  • the integrated circuit manufacturing method can design the layout of an integrated circuit even if the position of an external terminal is not determined, contributes to shortening the design time of the semiconductor integrated circuit, and is used for refining the semiconductor integrated circuit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

 半導体集積回路の製造方法におけるレイアウト設計において、機能ブロックと、IOブロック(外部端子I/F回路)とを含む回路のフロアプラン確定後に、外部端子と外部端子に対応するIOブロックの配線距離が伸びることが判明した場合に、対応するIOブロックをIO端子の近傍に配置しなおし外部IOブロックと外部端子の間の配線制約を緩和するとともに、データ転送回路と外部IOブロックとを接続するバス(あるいは共有バス)の間にバスの配線長に応じたタイミング調整装置を挿入する。

Description

集積回路製造方法及び半導体集積回路
 本発明は半導体集積回路及びその製造方法に関し、特に回路部品のレイアウト設計に関する。
 従来、半導体集積回路の設計は、大きく分けて、フロントエンド設計とバックエンド設計の2つの工程に分けられる。フロントエンド設計は、半導体集積回路の仕様設計、機能設計・テスト設計、論理合成などの工程を経てネットリストを作成する工程である。一方、バックエンド設計は、レイアウト設計、サインオフ検証などの工程を経て製造工程で使用する製造データを作成する工程である。
 レイアウト設計は更にフロアプランと配線工程の2つの工程に分けられる。フロアプランは、半導体集積回路内のハードマクロ、ユーザーマクロ、RAMなどの各種ブロックの配置位置を、タイミング及び配線性を考慮しながら決定する工程である。配線工程は、配線制約(例えば、部品間の接続関係やどの層を通じての接続を行うのかなどの制約)を考慮しながら、フロアプランにより決定されたブロックとブロックとの間、あるいはブロックと端子の間の配線ルートを決定する工程である。両工程を経ることにより、簡単にいえば、半導体集積回路が必要とされる機能に応じた、部品配置がなされ、その部品間の配線が決定される。
 従来においては、このレイアウト設計の段階においては、外部端子位置は予め決定しており、フロアプランにおいては、外部端子との外部端子I/F(Inter Face)回路を持つブロックを外部端子の近傍に配置することが理想とされる。あるいは、フロアプランにより確定する外部端子との外部端子I/F回路を有するブロックと、外部端子との間の距離が極力短くできるように、外部端子位置を決定することが理想とされる。外部端子と外部端子I/F回路(または外部端子I/Fを有するブロック)間の配線長をできるだけ短くすることにより、その配線間における転送遅延を抑制できるためである。
 ただし、外部端子位置は、基板設計、ノイズ設計などと綿密に関連しており、必ずしも外部端子をレイアウト設計の負荷を低減し得る場所に配置できるとは限らない。また、近年の外部端子の兼用仕様(一つの外部端子に複数の機能をもたせること)は複雑化する傾向にあり、外部端子位置の確定が遅れる傾向にある。そのため、フロアプラン時点で想定している外部端子の配置位置が実際に指定される配置位置と異なってしまい、外部端子と外部端子I/F回路を有するブロックとの配線が長距離化することもある。この例を、図35を用いて説明する。
 図35(a)は、半導体集積回路の一構成例を示している。図35(a)に示す半導体集積回路の内部ブロックは、ブロックA、ブロックB、ブロックC、ブロックD、ブロックEの5つの機能ブロックにより構成される。なお、図示していないが、各ブロックには、様々な部品及びその部品間を接続する配線がなされているものとする。
 図35(a)に示すように、当初定められていた外部端子(110a、110b)の配置に基づいて、各機能ブロックや配線、各部品(外部端子I/F回路(130a、130bや内部回路140))等のレイアウトが決定するとする。しかし、その後に外部端子の配置位置が変更されたとする。すると、図35(b)に示すように、外部端子I/F回路と外部端子とを接続する配線の配線長が、図35(a)の場合よりも図35(b)の方が長くなってしまい、場合によっては、外部端子と外部端子I/F回路間の配線長が理想から外れてしまうことがある。配線の長距離化によって信号の伝達遅延が発生し、本来入力されるべきタイミングで信号が入力されないといった事態が発生することがある。
 非特許文献1には、フロントエンド設計の段階においてレイアウト設計の一部を実行することが開示されている。
Tech-on[ニュース]"NECがとなえる, 意味ある「デザイン・プラニング」"[平成2010年3月16日検索]、インターネット<URL:http://techon.nikkeibp.co.jp/article/NEWS/20070329/129739/?P=3>
 半導体集積回路を搭載する装置の多機能化に伴う外部端子の兼用傾向や、半導体集積回路を搭載する装置の仕様がなかなか決定されない、あるいは、相異なる装置に搭載するための半導体集積回路の仕様の共通化の方針が定まらないことにより、近年の半導体集積回路の設計における外部端子の配置位置はなかなか定まらない傾向にある。
 そのため、上述した配線長の長距離化が発生しやすくなっており、半導体集積回路のレイアウト設計に時間がかかり、半導体集積回路の設計において、コストがかかるという問題がある。
 そこで、本発明は上記問題に鑑みてなされたものであり、外部端子位置がなかなか定まらずとも、コストを抑制できるレイアウト設計方法を用いた集積回路製造方法、及び、当該集積回路製造方法に従って作成される半導体集積回路を提供することを目的とする。
 上記課題を解決するため、本発明は、集積回路の製造に用いられるマスクパターンを作成するためのレイアウト設計ステップと、前記マスクパターンを用いて、半導体材料上に前記集積回路を作成する作成ステップとを含む集積回路製造方法であって、前記レイアウト設計ステップは、機能ブロックの配置を決定する第1ステップと、前記集積回路と外部の機器とを接続するための複数の外部IO(Input-Output)端子の配置を決定する第2ステップと、前記第2ステップで決定された各外部IO端子の配置に応じて、前記外部IO端子のいずれかに接続される少なくとも1つのIO(Input-Output)ブロックの配置を決定する第3ステップと、前記機能ブロックと前記IOブロックとの間を接続するバスの配置及び当該バスの配線長に応じた段数の、前記バス上を流れる信号のタイミング調整を行うタイミング調整回路の配置を決定する第4ステップと、を含むことを特徴としている。
 上述のような構成によって、先に各機能ブロックの配置や、配線を決めた上で、外部端子の配置位置が定まったときには、その外部端子の配置位置に対応してIOブロック(IOコアと呼称されることもある)を配置することで、IOブロックと外部端子間の転送のタイミング調整の必要性の考慮を排除するとともに、IOブロックとデータ転送制御回路とを接続する配線とその配線長によって、発生するデータ転送のずれを、タイミング調整回路を挿入することで、排除することができる。上記第1~第4ステップの手順を経ることにより、外部端子の配置位置が定まらずとも機能ブロックのレイアウト設計を行えるとともに、外部端子の配置位置が定まった場合に、各機能ブロックの配置等を変更することなく、半導体集積回路のためのレイアウト設計ができる。
実施の形態1に係る半導体集積回路のためのレイアウト設計方法を示すフローチャートである。 実施の形態1に係る半導体集積回路のレイアウトの遷移を示す図である。 実施の形態1に係る半導体集積回路のレイアウトの遷移を示す図である。 変形例1に係る半導体集積回路のためのレイアウト設計方法を示すフローチャートである。 変形例1に係る半導体集積回路のレイアウトの遷移を示す図である。 変形例2に係る半導体集積回路のためのレイアウト設計方法を示すフローチャートである。 変形例2に係る半導体集積回路のレイアウトの遷移を示す図である。 変形例2に係る半導体集積回路のレイアウトの遷移を示す図である。 実施の形態2に係る半導体集積回路の機能構成を示す機能ブロック図である。 実施の形態2に係るスライス群124の構成を示す機能ブロック図である。 実施の形態2に係るスライス群125の構成を示す機能ブロック図である。 実施の形態2に係る調停器の構成を示す機能ブロック図である。 実施の形態2に係るDMACと外部端子I/F回路との間の情報転送フローを示す図である。 実施の形態2に係るチャンネルAのデータ転送制御を示すフローチャートである。 実施の形態2に係る外部端子I/F回路130aのデータ転送制御を示すフローチャートである。 実施の形態2に係るチャンネルBのデータ転送制御を示すフローチャートである。 実施の形態2に係る外部端子I/F回路130bのデータ転送制御を示すフローチャートである。 実施の形態2に係る半導体集積回路のデータ転送における一例を示すタイミングチャートである。 実施の形態2に係る半導体集積回路のデータ転送における一例を示すタイミングチャートである。 実施の形態2に係る半導体集積回路のデータ転送における一例を示すタイミングチャートである。 実施の形態2に係る半導体集積回路のデータ転送における一例を示すタイミングチャートである。 実施の形態3に係るデータ長に応じた共有バスを設ける場合の半導体集積回路300aの構成例を示す機能ブロック図である。 実施の形態3に係るデータ長に応じた共有バスを設ける場合の半導体集積回路300bの構成例を示す機能ブロック図である。 実施の形態3の半導体集積回路300aにおけるデータ転送における一例を示すタイミングチャートである。 実施の形態3の半導体集積回路300bにおけるデータ転送における一例を示すタイミングチャートである。 実施の形態3の半導体集積回路300bにおけるデータ転送における一例を示すタイミングチャートである。 半導体集積回路のレイアウトの別例を示す図である。 実施の形態4に係る半導体集積回路のためのレイアウト設計方法を示すフローチャートである。 実施の形態4に係る半導体集積回路の構成例を示す図である。 半導体集積回路400に新たなデータ転送経路を追加した構成例を示す図である。 半導体集積回路400に新たなデータ転送経路を追加した構成例を示す図である。 半導体集積回路400から一つのデータ転送経路を削除した構成例を示す図である。 デイジーチェーンで各ブロックが接続された半導体集積回路の構成例を示す図である。 デイジーチェーンで各ブロックが接続された半導体集積回路の構成例を示す図である。 従来のレイアウト設計手法を説明するための図である。
 以下、本発明の一実施形態である半導体集積回路のレイアウト設計方法、及び当該レイアウト設計方法に基づいて作成された半導体集積回路について図面を用いて説明する。
<実施の形態1>
 本実施の形態1においては、半導体集積回路のレイアウト設計方法について図1(a)に示すフローチャートを用いて説明する。
 図1(a)に示すように、実施の形態1における半導体集積回路のレイアウト設計方法においては、まず、データ転送制御回路を含む機能ブロックの配置を決定する(ステップS101)。機能ブロックは、半導体集積回路に要求される仕様に応じて定まるものであり、データ転送制御回路は、設計する半導体集積回路が接続される回路や機器とのデータ転送を実行する機能を有するものであり、例えばDMAC(Direct Memory Access Controller)などである。つまり、データ転送制御回路は、データ転送のマスタ機能を有する回路である。
 これにより、外部端子位置が定まっておらずとも、半導体集積回路内部の設計までは終了させることができる。
 一方、実際に外部端子位置の仕様が定まると、当該仕様に従って、半導体集積回路のレイアウトに外部端子の配置を決定する(ステップS102)。
 外部端子の配置位置を決定した後に、複数の外部端子に対応する複数のIOブロックの配置を決定する(ステップS103)。具体的には、決定した外部端子の配置位置それぞれに対して、各外部端子に対応するようにIOブロックの配置を、各外部端子の配置位置の近傍に決定する。即ち、1つの外部端子につき、少なくとも1つのIOブロックが配置される。また、外部端子の近傍とは、外部端子とIOブロックとの間の配線によるデータ転送において、タイミング調整、即ち、外部端子-IOブロック間を信号が流れることにより発生し得る遅延の修正の必要がない程度の距離内をいう。
 複数のIOブロックの配置が決定されると、当該複数のIOブロックそれぞれとデータ転送制御回路とを接続するバスの配置を決定する。そして、配したバスの配線長に応じた個数(段数)のタイミング調整回路を当該バスの配線上に挿入する。タイミング調整回路は、信号線の配線遅延をリタイミングする機能を有するものであり、タイミング調整回路には、例えば、フリップフロップあるいはラッチなどが用いられる。当該リタイミングとは、入力された信号を半導体集積回路が動作する際に用いられる動作クロックの周期に同期させた信号を出力することをいう。複数の信号がバス上を流れることにより、当該バスの配線長、材質によっては、当該バス上を流れる信号が半導体集積回路の動作クロックで示される周期からそれぞれ個別に遅延する(別の言い方をすれば、位相がずれる)、即ち、バス上を流れる間に複数の信号間でクロックとの位相がずれてしまい、このために半導体集積回路が正常に動作しなくなる可能性がある。よって、当該ずれを修正する必要があり、タイミング調整回路はこのずれを修正する。なお、図面上では、当該動作クロック用の配線等は当然備えられているものとして記載していない。また、半導体集積回路は、当該動作クロックを生成する水晶発振子等も搭載する構成としてもよいし、当該動作クロックは、半導体集積回路外部から供給される構成としてもよい。
 なお、当該図1(a)に示すフローチャートに従ったレイアウト設計方法は、図1(b)に示すように変形することができる。即ち、ステップS101における機能ブロックの配置の決定と、ステップS102とステップS103における外部端子の配置と、それに伴うIOブロックの配置の決定とは、それぞれ並行に処理されてもよい。
 なお、図1(a)や、図1(b)においては、データ転送制御回路が機能ブロックに含まれる例を記載しているが、データ転送制御回路は必ずしも機能ブロックに含まれなくともよい。データ転送制御回路は、複数のIOブロックそれぞれに含まれる、あるいは、IOブロックそれぞれに対応する形で配置することを前提としたレイアウト設計を行ってもよい。
 図1のレイアウト設計方法に従って、半導体集積回路を設計した場合の一具体例を、図2を用いて説明する。
 まず、図2(a)に示すように、データ転送制御回路たる内部回路140及び各機能ブロック(ブロックA~E)の配置を決定する。当該配置は、各機能ブロックの要求仕様に基づいて決定される部品及び部品間をつなぐ配線の配置面積に応じて決定される。このとき、IOブロックや、IOブロックと内部回路140を接続するバスを配置できる程度の隙間を残すこととする。図2(a)には明記しないが、この時点でIOブロックは各機能ブロック(ブロックA~E)のいずれかに含まれてレイアウトされているものとする。
 次に外部端子位置が半導体集積回路を搭載する装置等の構成などにより決定すると、その決定された位置を外部端子の配置位置として、例えば、図2(b)の外部端子110a、110bに示すように決定する。
 そして、決定した外部端子位置それぞれの近傍にIOブロックたる外部端子I/F回路の配置位置を、例えば、図3(a)に示すように決定する。即ち、外部端子110aの配置位置の近傍に対応する外部端子I/F回路110aの配置位置を決定し、外部端子110bの配置位置の近傍に対応する外部端子I/F回路110bの配置位置を決定する。
 そして、決定した外部端子I/F回路130a、130bと、内部回路140とを接続するバスの配置位置を、図3(b)に示すように決定する。即ち、内部回路140と外部端子I/F回路130aとを接続するバス124aと、内部回路140と外部端子I/F回路130bとを接続するバス124bとの配置位置を図3(b)に示すように決定する。なお、図3(b)においては、内部回路140と外部端子I/F回路110a、110bとを直接結線するように記載しているが、実際には、各ブロックの部品間を縫うように、配線位置を決定することになる。
 そうして、決定されたバスの配線位置によって定まるバスの配線長に応じてタイミング調整回路たるスライスの段数とその配置位置を決定する。即ち、図3(b)に示すように、バス124aの配線長に応じて、スライス125a、125bを、バス124bの配線長に応じて、スライス125cの配置位置を決定する。
 なお、図2、3においては、内部回路や、外部端子I/F回路、スライスは、図面の見易さのために、大きく示しているが、実際には、それぞれの部品の配置に要する面積はそれほど大きいものではない。
<まとめ>
 以上に説明してきたように、本実施の形態1におけるレイアウト設計方法においては、先にデータ転送制御回路を含む1以上の機能ブロックそれぞれの部品や配線のレイアウトを決定した後で、要求された外部端子位置に外部端子を配置し、その近傍にIOブロックを配する。これによって、外部端子位置とIOブロックが理想に近い形での配置を実現できる。また、IOブロックとデータ転送制御回路とをバスで接続し、そのバスに当該バスの配線長に応じた数のタイミング調整回路を挿入することによって、信号間のタイミング調整がなされ、正常に動作する半導体集積回路を作成できる。
 したがって、外部端子位置の変更によるフロアプランの変更といった事態を招くことなく、半導体集積回路のレイアウト設計をより柔軟に行えるとともに、そのレイアウト設計の設計コストを抑制することができる。
<変形例1>
 上記実施の形態1に示したレイアウト設計方法においては、各外部端子I/F回路と内部回路とを接続するバスをそれぞれ設けるように配置を決定することとした。しかしながら、当該構成は、外部端子I/F回路分の個数のバスを配線しなければならず、その分半導体集積回路の面積を増大させるという問題がある。
 そこで、本変形例1においては、上記実施の形態1に示した半導体集積回路の設計面積をより小さくし得るレイアウト設計方法を開示する。
 本変形例1における上記実施の形態1との差異は、バスを各外部端子I/F回路に応じて設けるのではなく、共有バスで接続することにある。
 本変形例1に係るレイアウト設計方法を図4(a)のフローチャートに示す。
 図4(a)に示すフローチャートにおいて、図1に示したフローチャートとの差異は、ステップS403以降の処理となる。ステップS401、S402と、ステップS101、102とにおける処理は、共通しているので、ここではその説明を割愛する。
 ステップS402で複数の外部端子の配置を決定した後、複数のIOブロックたる外部端子I/F回路の配置を決定し、配置した外部端子I/F回路の配置位置に応じて、全ての外部端子I/F回路になるべく近接するように共有バスの配置を決定する。そして、データ転送制御回路たる内部回路から共有バスに接続する配線の配置位置を、当該配線がなるべく短くなるように決定する。そして、内部回路からの配線長に応じて、即ち、内部回路から一定距離ごとに、共有バス上にタイミング調整回路たるスライスの配置位置を決定する(ステップS403)。
 そして、複数のチャネルと複数のIOブロックたる外部端子I/F回路それぞれの共有バスへの接続位置を決定し、共有バスまでの配線の配置位置を決定する(ステップS404)。
 なお、当該図4(a)に示すフローチャートに従ったレイアウト設計方法は、図4(b)に示すように変形することができる。即ち、ステップS401における機能ブロックの配置の決定と、ステップS402とステップS403における外部端子の配置と、それに伴うIOブロックの配置、共有バスの配置とタイミング調整回路の配置の決定とは、それぞれ並行に処理されてもよい。
 なお、図4(a)や、図4(b)においては、データ転送制御回路が機能ブロックに含まれる例を記載しているが、データ転送制御回路は必ずしも機能ブロックに含まれなくともよい。データ転送制御回路は、複数のIOブロックそれぞれに含まれる、あるいは、IOブロックそれぞれに対応する形で配置することを前提としたレイアウト設計を行ってもよい。
 また、図4(a)、(b)及び図5(b)では機能ブロックと複数のIOブロックがバス型のトポロジーで接続される例を記載しているが、機能ブロックと複数のIOブロックがデイジーチェーン型のトポロジーで接続されても良い。バス型のトポロジーで接続するか、デイジーチェーン型のトポロジーで接続するかは設計の仕様で定められ、当該使用に従って、レイアウト設計がなされる。
 この変形例1に従って、レイアウトを行う一具体例を図2及び図5を用いて説明する。
 まず、ステップS401及びステップS402における処理を経ることにより、図2(b)に示すレイアウトができる。ここまでは、実施の形態1に示した通りである。
 一方、本変形例1においては、ステップS403の処理を経ることにより、図5(a)に示すようなレイアウトが生成される。
 図5(a)に示すように、変形例1においては、上記実施の形態1と異なり、ステップS403においては、複数の外部端子(202a、202b)が配置を定められると、配置した外部端子に接続するための共有バス124の配置を決定する。そして、内部回路140からの共有バス124への接続位置並びに配線位置を決定する。そして、決定した共有バス124上に、内部回路140からの距離に応じて、タイミング調整回路たるスライス125a、125b、125cの配置位置が決定される。即ち、内部回路140から一定距離が離れるごとに、スライスを配置していく。
 そして、最終的に定められた各外部端子I/F回路130a、130bと、内部回路140とを共有バス124を介して接続した場合の配線長に応じて、その間に挿入されるべきタイミング調整回路の段数を決定し、当該決定された段数だけIOブロック‐内部ブロック間に挿入されるように、IOブロックから共有バスへの接続位置が図5(b)に示すように決定される。図5(b)の例では、外部端子I/F回路130aと内部回路140との間には、2つの段数のスライスが挿入されるように、スライス125a、125bを経由する位置を外部端子I/F回路130aからの接続位置としている。また、外部端子I/F回路130bと内部回路140との間には、1つの段数のスライスが挿入されるように、スライス125bを経由する位置を外部端子I/F回路130bからの接続位置としている。
<まとめ>
 当該変形例1における半導体集積回路におけるレイアウト設計方法によれば、外部端子の配置位置の決定が遅れたとしても、それほど、半導体集積回路のレイアウト設計を変更せずに、外部端子位置を配置したレイアウトが設計できるとともに、各外部端子I/F回路と、内部回路とを接続するバスを共有バスとすることで、半導体集積回路の設計面積を、共有バスとしない場合に比して、小さくすることができる。
<変形例2>
 上記変形例1においては、外部端子I/F回路と、内部回路とを接続するバスを共有バスとするレイアウト設計を提示した。本変形例2においては、更なる利便性の高いレイアウト設計方法を提示する。
 本変形例2と上記変形例1における差異は、共有バスの配置位置の決定タイミングにある。即ち、変形例2における共有バスの配置の決定タイミングを外部端子の配置位置が定まるよりも先に決定することにある。
 本変形例2に係るレイアウト設計方法を、図6のフローチャートに示す。
 図6(a)のフローチャートに示すように、まず、設計する半導体集積回路の要求仕様に応じて、半導体集積回路のサイズを決定し、共有バスの配置を決定する。そして、当該共有バス上を流れる信号のタイミング調整を行うためのタイミング調整回路の配置位置を決定する(ステップS601)。当該共有バスは、いずれの内部回路とも接続可能なように、かつ、外部端子が配される周縁部になるべく近くなるように配する。また、タイミング調整回路は、各内部回路から外部端子までの配線距離に応じて配されるべきであるため、この場合には、共有バス上に一定距離間隔で配することとなる。
 次に設計する半導体集積回路の要求仕様に応じて、データ転送制御回路を含む各機能ブロックの配置位置を決定する(ステップS602)。なお、図6(a)の場合であれば、ステップS601とステップS602との処理は前後してもよい。
 データ転送制御回路を含む各機能ブロックや、共有バスの配置、タイミング調整回路の配置が決定すると、次に、半導体集積回路の要求仕様に応じた、外部端子の配置が決定され、決定された位置を外部端子の配置位置とする(ステップS603)。
 複数の外部端子の配置位置が決定すると上記実施の形態1においても示したように、各外部端子に対応する複数のIOブロックの配置を決定する(ステップS604)。
 複数のIOブロックの配置を決定すると、当該複数のIOブロックそれぞれの共有バスへの接続位置を決定する(ステップS605)。当該接続位置は、各IOブロックから共有バスへの配線長がなるべく短くなるように配置位置を決定する。
 なお、当該図6(a)に示すフローチャートに従ったレイアウト設計方法は、図6(b)に示すように変形することができる。即ち、ステップS601における機能ブロックの配置の決定と、ステップS602及びステップS603における外部端子の配置と、それに伴うIOブロックの配置、共有バスの配置とタイミング調整回路の配置の決定と、ステップS604における共有バスとタイミング調整回路の配置とは、それぞれ並行に処理されてもよい。
 なお、図6(a)や、図6(b)においては、データ転送制御回路が機能ブロックに含まれる例を記載しているが、データ転送制御回路は必ずしも機能ブロックに含まれなくともよい。データ転送制御回路は、複数のIOブロックそれぞれに含まれる、あるいは、IOブロックそれぞれに対応する形で配置することを前提としたレイアウト設計を行ってもよい。
 また、図6(a)、(b)及び図8では機能ブロックと複数のIOブロックがバス型のトポロジーで接続される例を記載しているが、機能ブロックと複数のIOブロックがデイジーチェーン型のトポロジーで接続されても良い。バス型のトポロジーで接続するか、デイジーチェーン型のトポロジーで接続するかは設計の仕様で定められ、当該仕様に従って、レイアウト設計がなされる。
 このようにして設計されるレイアウトの一例を図7及び図8を用いて説明する。
 図7(a)に示すように、まず、変形例2においては、半導体集積回路のサイズ、仕様、データ転送制御回路たる内部回路140を含む各機能ブロックのサイズに応じて、内部回路140及び機能ブロックの配置を定めるとともに、共有バス124の配置位置を決定する。
 そして、次に、図7(b)に示すように決定された外部端子位置に従って、外部端子110a、110bの配置位置を決定する。
 外部端子110a、110bの配置位置が定まると、図8に示すように、各外部端子に対応する外部端子I/F回路の配置位置を決定する。
 そして、決定した外部端子I/F回路の配置位置から、内部回路140までの距離に応じて、共有バス124への接続位置を決定し、各外部端子I/F回路からの共有バス124への配線の配置を決定する。
<まとめ>
 本変形例2に示したレイアウト設計方法によれば、外部端子の配置位置を決定する前に、共有バスの配置位置も決定してしまっているため、外部端子の配置位置が決定した後の設計工数を、上記変形例1に示したものよりも、少なくすることができる。
<実施の形態2>
 実施の形態2においては、上記各変形例に示した手法を用いてレイアウト設計を行って作成された半導体集積回路について、その構成及び動作を説明する。
 図9は半導体集積回路100の機能構成を示す機能ブロック図である。
 図9に示すように半導体集積回路100は、外部端子110a、110bと、スライスバス121、122、123と、スライス群124、125と、I/F回路130a、130bと、DMAC(Direct Memory Access Controller)140と、調停器151、152と、バッファ160とを含んで構成される。なお、本実施の形態2においては、上記実施の形態1との共通点を明確にすべく、本来DMACには別の符号を割り振るべきところを、上記実施の形態1に示す内部回路に相当するものということで、同じ符号140を付している。
 外部端子110a、110bは、それぞれ対応するI/F回路130a、130bに接続され、半導体集積回路100を搭載する機器上の回路等に接続するための端子である。各外部端子は、それぞれが1本以上の端子から構成されている。
 スライスバス121、122、123は、スライス群124-DMAC140間、スライス群124-スライス群125間の信号を伝達するための信号線である。
 スライス群124、125は、入力された信号のタイミング調整を実行する機能を有する。ここで、各スライスは、それぞれ、予め定められた固定長の時間幅分の調整を実行する。スライス群124、125は、具体的には、フリップフロップあるいはラッチなどにより実現されるものであり、ここでは、入力された信号をリタイミングする機能を有するものとする。上述したように、リタイミングとは、入力された信号を半導体集積回路が動作する際に用いられる動作クロックの周期に同期させた信号を出力することをいう。なお、図面上では、当該動作クロック用の配線等は当然備えられているものとして記載していない。また、半導体集積回路は、当該動作クロックを生成する水晶発振子等も搭載する構成としていてもよいし、あるいは当該動作クロックが半導体集積回路外部から供給される構成としてもよい。スライスバス121、122、123、スライス群124、125を含んで、共有バスを形成している。
 I/F回路130a、130bは、外部からの信号をDMAC140に中継する機能を有し、また、DMAC140から転送されてきた信号を接続している外部の機器へと送信する機能を有する。
 DMAC140は、バッファ160にアクセスし、データを読み出す、あるいは、データを書き込む機能を有する。また、DMAC140は、半導体集積回路100に接続される回路や装置と通信を実行する機能を有する。DMAC140は、個別の経路へのデータ転送を行う複数のチャネルでの通信を実行する機能を有し、ここでは、チャネル141aと、チャネル141bとを備える。
 本実施形態では、チャネル141aはバッファ160から外部端子I/F回路130aに対しデータ転送を行い、チャネル141bは外部端子I/F回路130bからバッファ160に対しデータ転送を行うものとする。よって、半導体集積回路100では、チャネル141aを使用してバッファ160から共有バス、外部端子I/F回路130a及び外部端子110aを経由して半導体集積回路100外部に情報を出力し、チャネル141bを使用して半導体集積回路100外部から外部端子110b、外部端子I/F回路130b、及び共有バスを経由してバッファ160に情報を入力する。
 調停器151、152は、共有バスに入力される信号のうち、いずれを転送するのかを調停する機能を有する。なお、調停器151は、DMAC140から、I/F回路へのダウンリンク用の信号の調停を実行するものであり、調停器152は、I/F回路からDMAC140へのアップリンク用の信号の調停を実行するものである。チャネル141aと外部端子I/F回路130aとの間の情報転送(以下では情報転送Aと呼称する)、並びにチャネル141bと外部端子I/F回路130bとの間の情報転送(以下では情報転送Bと呼称する)は、共有バスを経由して行われる。情報転送A及び情報転送Bにおいては共に共有バスを使用するため、情報を転送する前には予めバス権を獲得する必要があり、調停器151、152は、要求されるバス権の調停を担う。
 バッファ160は、DMAC140、半導体集積回路100などから転送されるデータを一時的に記憶する機能を有するメモリである。バッファ160は、DMAC140から書き込まれたデータを保持する機能と、保持しているデータのうちDMAC140から要求されたデータを出力する機能とを有する。
 ここで、DMAC140と外部端子I/F回路130aの間で送受する情報、及び情報授受を実現するための信号接続について、図2を使用して説明する。
 DMAC140と外部端子I/F回路130aの間では、共有バス1200を介してコマンド、ダウンリンクデータ、ダウンリンクインフォメーション、アップリンクデータ、アップリンクインフォメーションの5つの全ての情報、あるいはそのサブセットの情報が送受される。また、共有バス1200はコマンドバス、ダウンリンクデータバス、ダウンリンクインフォメーションバス、アップリンクデータバス、アップリンクインフォメーションバスの5つのバスにより構成されている。コマンドの送受にはコマンドバスを使用し、ダウンリンクデータの送受にはダウンリンクデータバスを使用し、ダウンリンクインフォメーションの送受にはダウンリンクインフォメーションバスを使用し、アップリンクデータの送受にはアップリンクデータバスを使用し、アップリンクインフォメーションの送受にはアップリンクインフォメーションバスを使用する。
 コマンドバス、ダウンリンクデータバス、及びダウンリンクインフォメーションバスを構成する信号は、DMAC140から外部端子I/F回路130aに向けて情報を伝達し、アップリンクデータバス、及びアップリンクインフォメーションバスを構成する信号は、外部端子I/F回路130aからDMAC140に向けて情報を伝達する。
 コマンドは、DMAC140から外部端子I/F回路130aに対し送られるデータ転送の属性を示す情報である。具体的には、コマンドで送受する情報は、そのデータ転送がダウンリンクデータ・アップリンクデータのいずれの方向の転送であるのかを示す情報、転送するデータのサイズ、転送アドレスなどの情報を含む。
 ダウンリンクデータは、DMAC140から外部端子I/F回路130aに対し送られるデータ及びデータ同期情報であり、アップリンクデータは外部端子I/F回路130aからDMAC140に送られるデータ及びデータ同期情報である。ここで、データ同期情報とはデータと同じサイクルで送られるデータの属性を示す情報であり、具体的にはデータのバイトイネーブル、最終データ転送などの情報を含む。
 インフォメーションとは、データ転送とは非同期に、DMAC140と外部端子I/F回路130aの間で授受される情報である。具体的には、アップリンクインフォメーションとしては、例えば外部端子I/F回路130aからチャネル141aに対し転送開始要求などを含む情報が送られ、ダウンリンクインフォメーションとしてはチャネル141aから外部端子I/F回路130aに対しバッファ160へのデータ書き込み完了情報などを含む情報が送られる。
 また、外部端子I/F回路130aからDMAC140に対し、共有バス1200で送受する情報以外に、ライトレディとリードレディの情報が送られている。ライトレディは外部端子I/F回路130aがダウンリンクデータ転送をするためのコマンドを受け付けることが可能であることを示す情報であり、リードレディは外部端子I/F回路130aがアップリンクデータ転送をするためのコマンドを受け付けることが可能であることを示す情報である。ライトレディ信号とリードレディ信号は共有バスとは異なり、外部端子I/F回路130aとチャネル141aとの間、外部端子I/F回路130bとチャネル141bとの間でpeer to peerに接続されている信号である。
 図10では、DMAC140と外部端子I/F回路130aの間は共有バスで接続されており、当該共有バスはスライス群124でスライスされている。DMAC140とスライス群124の間はスライスバス121で接続されており、スライスバス121はコマンドバス1211とダウンリンクデータバス1212とダウンリンクインフォメーションバス1213とアップリンクデータバス1214とアップリンクインフォメーションバス1215で構成される。スライス群124と外部端子I/F回路130aの間はスライスバス122で接続されており、スライスバス122はコマンドバス1221とダウンリンクデータバス1222とダウンリンクインフォメーションバス1223とアップリンクデータバス1224とアップリンクインフォメーションバス1225で構成される。
 スライス群124は、コマンドバス1211とコマンドバス1221をスライスするためのスライス1241と、ダウンリンクデータバス1212とダウンリンクデータバス1222をスライスするためのスライス1242と、ダウンリンクインフォメーションバス1213とダウンリンクインフォメーションバス1223をスライスするためのスライス1243と、アップリンクデータバス1214とアップリンクデータバス1224をスライスするためのスライス1244と、アップリンクインフォメーションバス1215とアップリンクインフォメーションバス1225をスライスするためのスライス1245と、後に説明するライトレディ信号をスライスするためのスライス1246と、後に説明するリードレディ信号をスライスするためのスライス1247を含む。
 コマンドは、DMAC140から出力され、コマンドバス1211、スライス1241、コマンドバス1221を経由して外部端子I/F回路130aに送られる。ダウンリンクデータは、DMAC140から出力され、ダウンリンクデータバス1212、スライス1242、ダウンリンクデータバス1222を経由して外部端子I/F回路130aに送られる。ダウンリンクインフォメーションは、DMAC140から出力され、ダウンリンクインフォメーションバス1213、スライス1243、ダウンリンクインフォメーションバス1223を経由して外部端子I/F回路130aに送られる。
 アップリンクデータは、外部端子I/F回路130aから出力され、アップリンクデータバス1224、スライス1244、アップリンクデータバス1214を経由してDMAC140に送られる。アップリンクインフォメーションは、外部端子I/F回路130aから出力され、アップリンクインフォメーションバス1225、スライス1245、アップリンクインフォメーションバス1215を経由してDMAC140に送られる。
 また、共有バス以外の信号として、外部端子I/F回路130aからDMAC140に対しライトレディ信号及びリードレディ信号が送られており、共有バス同様にそれぞれスライス1246、スライス1247によりスライスされている。
 なお、図10には明示しないが、ライトレディ信号及びリードレディ信号は外部端子I/F回路130bからDMAC140に対しても送られており、スライス群124には、外部端子I/F回路130bから送られるライトレディ信号とリードレディ信号のスライスも含むものとする。
 次に、DMAC140と調停器151との間の信号接続を図11(a)を用いて説明する。
 調停器151はDMAC140の近傍に配置されており、DMAC140と調停器151との間の配線はスライスされない。
 チャネル141a及びチャネル141bそれぞれが調停器151と直接接続されており、チャネル141a及びチャネル141bから調停器151に対してバス権要求信号群が送られており、調停器151からチャネル141a及びチャネル141bそれぞれに対してバス権承認信号群が送られている。
 チャネル141a及びチャネル141bから調停器151に対して送られるバス権要求信号群は、コマンドバス権要求信号、ダウンリンクデータバス権要求信号、及びダウンリンクインフォメーションバス権要求信号の全てあるいはそれらのサブセットにより構成される。調停器151からチャネル141a及びチャネル141bに対して送られるバス権承認信号は、コマンドバス権承認信号、ダウンリンクデータバス権承認信号、及びダウンリンクインフォメーションバス権承認信号の全てあるいはそれらのサブセットにより構成される。
 チャネル141aがコマンドバスを使用する場合、チャネル141aが調停器151に対しコマンドバス権要求信号を送り、それを受けて調停器151がチャネル141aに対しコマンドバス権承認信号を返す。チャネル141aがダウンリンクデータバスを使用する場合、チャネル141aが調停器151に対しダウンリンクデータバス権要求信号を送り、それを受けて調停器151がチャネル141aに対しダウンリンクデータバス権承認信号を返す。チャネル141aがダウンリンクインフォメーションバスを使用する場合、チャネル141aが調停器151に対しダウンリンクインフォメーションバス権要求信号を送り、それを受けて調停器151がチャネル141aに対しダウンリンクインフォメーションバス権承認信号を返す。チャネル141bについても同様である。
 外部端子I/F回路群130と調停器152との間の信号接続を、図11(b)を使用して説明する。本実施形態では、外部端子I/F回路130bが外部端子I/F回路130aの遠方に配置されており、調停器152は外部端子I/F回路130bの近傍に配置されている。そのため、外部端子I/F回路130aと調停器152との間の配線はスライス群1250によりスライスされている一方で、外部端子I/F回路130bと調停器152との間の配線はスライスされていない。
 スライス群1250は、スライス群1240と同様に、共有バス信号をスライスするためのスライス1251からスライス1255(スライス群1240の構成要素であるスライス1241から1245に相当する)を有すると共に、外部端子I/F回路130bからDMAC140に対し送られるライトレディ信号、及びリードレディ信号をスライスするためのスライス1256及びスライス1257、更にはバス権要求信号群及びバス権承認信号群をスライスするためのスライス1258及びスライス1259を備えている。
 外部端子I/F回路130bから調停器152に対してバス権要求信号群が送られており、調停器152から外部端子I/F回路130bに対してバス権承認信号群が送られている。外部端子I/F回路130aから調停器152に対してスライス1258を経由してバス権要求信号群が送られており、調停器152から外部端子I/F回路130aに対してスライス1259を経由してバス権承認信号群が送られている。
 外部端子I/F回路130a及び外部端子I/F回路130bから調停器152に対して送られるバス権要求信号群は、アップリンクデータバス権要求信号、及びアップリンクインフォメーションバス権要求信号の全てあるいはそれらのサブセットにより構成される。調停器152から外部端子I/F回路130a及び外部端子I/F回路130bに対して送られるバス権承認信号は、アップリンクデータバス権承認信号、及びアップリンクインフォメーションバス権承認信号の全てあるいはそれらのサブセットにより構成される。
 外部端子I/F回路130aがアップリンクデータバスを使用する場合、外部端子I/F回路130aが調停器152に対しアップリンクデータバス権要求信号を送り、それを受けて調停器152が外部端子I/F回路130aに対しアップリンクデータバス権承認信号を返す。外部端子I/F回路130aがアップリンクインフォメーションバスを使用する場合、外部端子I/F回路130aが調停器152に対しアップリンクインフォメーションバス権要求信号を送り、これを受けて調停器152が外部端子I/F回路130aに対しアップリンクインフォメーションバス権承認信号を返す。外部端子I/F回路130bについても同様である。
 図12に調停器の構成を記載する。図12(a)は調停器151の構成を示す図である。調停器151はコマンドバス権調停回路1511、ダウンリンクデータバス権調停回路1512、及びダウンリンクインフォメーションバス権調停回路1513を含んで構成される。
 コマンドバス権調停回路1511は、チャネル141a及びチャネル141bそれぞれからコマンドバス権要求信号を受け、チャネル141a及びチャネル141bそれぞれに対してコマンドバス権承認信号を返す。
 ダウンリンクデータバス権調停回路1512は、チャネル141a及びチャネル141bそれぞれからダウンリンクデータバス権要求信号を受け、チャネル141a及びチャネル141bそれぞれに対しダウンリンクデータバス権承認信号を返す。ダウンリンクインフォメーションバス権調停回路1513は、チャネル141a及びチャネル141bそれぞれからダウンリンクインフォメーションバス権要求信号を受け、チャネル141a及びチャネル141bそれぞれに対しダウンリンクインフォメーションバス権承認信号を返す。
 図12(b)は調停器152の構成を示す図である。調停器152はアップリンクデータバス権調停回路1522、及びアップリンクインフォメーションバス権調停回路1523を含んで構成される。
 アップリンクデータバス権調停回路1522は、外部端子I/F回路130a及びチャネル130bそれぞれからアップリンクデータバス権要求信号を受け、外部端子I/F回路130a及びチャネル141bそれぞれに対しアップリンクデータバス権承認信号を返す。
 アップリンクインフォメーションバス権調停回路1523は、外部端子I/F回路130a及びチャネル130bそれぞれからアップリンクインフォメーションバス権要求信号を受けて、外部端子I/F回路130a及びチャネル141bそれぞれに対しアップリンクインフォメーションバス権承認信号を返す。
 以上が調停器151、152の機能構成である。
 なお、コマンドバス、ダウンリンクデータバス、ダウンリンクインフォメーションバスに共通して、チャネル141aあるいはチャネル141bがバス権の承認を得た後は、共有バスの種類(コマンド、ダウンリンクデータ、ダウンリンクインフォメーション)毎に定められたサイクル数分だけ共有バスを使用することが可能となる。当該サイクル数は共有バスの使用回路(チャネル141a、チャネル141b)毎に個別の値であっても良い。
 また、アップリンクデータバス、アップリンクインフォメーションバスに共通して、外部端子I/F回路130aあるいは外部端子I/F回路130bがバス権の承認を得た後は、共有バスの種類(アップリンクデータ、アップリンクインフォメーション)毎に定められたサイクル数分だけ共有バスを使用することが可能となる。当該サイクル数は共有バスの使用回路(外部端子I/F回路130a、外部端子I/F回路130b)毎に個別の値であっても良い。
<動作>
 次に、半導体集積回路100の動作を図13に示すタイミングチャートや、図14~図17に示すフローチャートを用いて説明する。
 ここで図13を使用して、チャネル141aと外部端子I/F回路130aとの間のデータ転送、及びチャネル141bと外部端子I/F回路130bとの間のデータ転送の典型的な例を説明する。図13(a)にはチャネル141aから外部端子I/F回路130aへのデータ転送を行う場合の情報転送フローを記載している。
 本実施の形態2では、データ転送を行うために、まず外部端子I/F回路130aからチャネル141aに対し転送サイズ情報を含んだ転送開始要求を送り、これを受けてチャネル141aがデータ転送を開始する。チャネル141aは指定された転送サイズ分のデータを一度に転送しきるのではなく、所定のサイズに分割して複数回に分けてデータ転送を行う。データ転送を行う際は、チャネル141aから外部端子I/F回路130aに対しコマンドを送り、続いてチャネル141aから外部端子I/F回路130aに対しダウンリンクデータを送る。これを、指定されたサイズ分のデータ転送を終えるまで繰り返す。ただし、転送開始要求時に指定された転送サイズが所定のサイズより小さい場合は、データ転送は一度で終える。
 図13(a)には、データ転送開始時の、転送開始要求の授受及び、初めのコマンド、データの授受までを記載したフロー図である。以下、図13(a)に記載のフローを詳細に説明する。
 まず、外部端子I/F回路130aがチャネル141aに対し転送開始要求を通知するために、調停器152に対してアップリンクインフォメーションバス権要求を送り、それに応じて調停器152が外部端子I/F回路130aに対しアップリンクインフォメーションバス権承認を返している。それを受けた外部端子I/F回路130aはチャネル141aに対しアップリンクインフォメーションバスを利用して転送開始要求を通知する。
 転送開始要求を受けたチャネル141aは外部端子I/F回路130aに対しコマンドを送付するために、調停器151に対してコマンドバス権要求を送り、それに応じて調停器151がチャネル141aに対しコマンドバス権承認を返している。それを受けたチャネル141aは外部端子I/F回路130aに対しコマンドバスを利用してコマンドを送付する。
 コマンドの送付を終えたチャネル141aは外部端子I/F回路130aに対しデータを送付するために、調停器151に対してダウンリンクデータバス権要求を送り、それに応じて調停器151がチャネル141aに対しダウンリンクデータバス権承認を返している。それを受けたチャネル141aは外部端子I/F回路130aに対しダウンリンクデータバスを利用してデータを送付する。
 図13(b)には外部端子I/F回路130bからチャネル141bへのデータ転送を行う場合の情報転送フローを記載している。
 本実施の形態2では、データ転送を行うために、まず外部端子I/F回路130bからチャネル141bに対し転送サイズ情報を含んだ転送開始要求を送り、これを受けてチャネル141bがデータ転送を開始する。チャネル141bは指定された転送サイズ分のデータを一度に転送しきるのではなく、所定のサイズに分割して複数回に分けてデータ転送を行う。データ転送を行う際は、チャネル141bから外部端子I/F回路130bに対しコマンドを送り、続いて外部端子I/F回路130bからチャネル141bに対しアップリンクデータを送る。これを、指定されたサイズ分のデータ転送を終えるまで繰り返す。ただし、転送開始要求時に指定された転送サイズが所定のサイズより小さい場合は、データ転送は一度で終える。その後、全データ転送を終えた後に、チャネル141bから外部端子I/F回路130bに対しデータ転送完了通知を行う。
 図13(b)には、指定されたサイズ分のデータ転送を一度のデータ転送で終える場合の例を記載しており、一度のコマンドとデータの授受を終えた後に、データ転送完了通知を行っている。以下、図13(b)に記載のフローを詳細に説明する。
 まず、外部端子I/F回路130bがチャネル141bに対し転送開始要求を通知するために、調停器152に対してアップリンクインフォメーションバス権要求を送り、それに応じて調停器152が外部端子I/F回路130bに対しアップリンクインフォメーションバス権承認を返している。それを受けた外部端子I/F回路130bはチャネル141bに対しアップリンクインフォメーションバスを利用して転送開始要求を通知する。
 転送開始要求を受けたチャネル141bは外部端子I/F回路130bに対しコマンドを送付するために、調停器151に対してコマンドバス権要求を送り、それに応じて調停器151がチャネル141bに対しコマンドバス権承認を返している。それを受けたチャネル141bは外部端子I/F回路130bに対しコマンドバスを利用してコマンドを送付する。
 コマンドを受けた外部端子I/F回路130bはチャネル141bに対しデータを送付するために、調停器152に対してアップリンクデータバス権要求を送り、それに応じて調停器152が外部端子I/F回路130bに対しアップリンクデータバス権承認を返している。それを受けた外部端子I/F回路130bはチャネル141bに対しアップリンクデータバスを利用してデータを送付する。
 データを受けたチャネル141bはバッファ160へのデータ書込み完了を確認した後、外部端子I/F回路130bに対しデータ転送完了を通知するために、調停器151に対してダウンリンクインフォメーションバス権要求を送り、それに応じて調停器151がチャネル141bに対しダウンリンクインフォメーションバス権承認を返している。それを受けたチャネル141bは外部端子I/F回路130bに対しダウンリンクインフォメーションバスを利用してデータ転送完了を通知する。
 図14は、チャネル141aのデータ転送制御を示すフローチャートである。まず、外部端子I/F回路130aからの転送開始要求を受けてチャネル141aが起動する。
 起動されたチャネル141aは、まず外部端子I/F回路130aから送られてくるライトレディ信号を確認する。外部端子I/F回路130aがライトレディをアサートするまで待ち(ステップS1401のNO)、ライトレディがアサートした(ステップS1401のYES)ところでコマンドバス権を要求する(ステップS1401)。コマンドバス権を要求するとコマンドバス権が承認されるまで待ち(ステップS1403のNO)、コマンドバス権が承認されたところで(ステップS1403のYES)コマンドを送信する(ステップS1404)。
 コマンドを送信した後は外部端子I/F回路130aに送るべきデータが準備できるまで待ち(ステップS1405のNO)、データが準備できたところで(ステップS1405のYES)、ダウンリンクデータバス権を要求する(ステップS1406)。ダウンリンクデータバス権を要求するとダウンリンクデータバス権が承認されるまで待ち(ステップS1407のNO)、ダウンリンクデータバス権が承認されたところで(ステップS1407のYES)ダウンリンクデータを送信する(ステップS1409)。
 転送開始要求時に指定されたサイズ分のデータ転送が完了していない場合はS1401に戻り(ステップS1409のNO)、再びデータ転送を行う。指定されたサイズ分のデータ転送が完了している場合は(ステップS1409のYES)、チャネル141aは停止し、次の転送開始要求を受けるまで動作しない。
 図15は、外部端子I/F回路130aのデータ転送制御を示すフローチャートである。まず、外部端子I/F回路130aは半導体集積回路100内部の図示しないプロセッサなどにより起動される。
 起動された外部端子I/F回路130aはチャネル141aに転送開始要求を通知するためにアップリンクインフォメーションバス権を要求する(ステップS1501)。アップリンクインフォメーションバス権を要求するとアップリンクインフォメーションバス権が承認されるまで待ち(ステップS1502のNO)、アップリンクインフォメーションバス権が承認されたところで(ステップS1502のYES)、アップリンクインフォメーションバスを使用して転送開始要求を送信する(ステップS1503)。
 次に外部端子I/F回路130aのデータ受信の準備が整うまで待ち(ステップS1504のNO)、データ受信の準備が完了した時点でライトレディをアサートする(ステップS1505)。その後、チャネル141aから送られるコマンドを受信し(ステップS1506)、次いでダウンリンクデータを受信する(ステップS1507)。
 転送開始要求時に指定されたサイズ分のデータ転送が完了していない場合はS1501に戻り(ステップS1508のNO)再びデータ転送を行う。指定されたサイズ分のデータ転送が完了している場合は、外部端子I/F回路130aは停止し、次の起動指示を受けるまで動作しない。
 図16は、チャネル141bのデータ転送制御を示すフローチャートである。まず、外部端子I/F回路130bからの転送開始要求を受けてチャネル141bが起動する。
 起動されたチャネル141bは、まずチャネル141bのデータ受信の準備が整うまで待ち(ステップS1601のNO)、準備が整うと(ステップS1601のYES)、次いで外部端子I/F回路130bから送られてくるリードレディ信号を確認する。外部端子I/F回路130bがリードレディをアサートするまで待ち(ステップS1602のNO)、リードレディがアサートしたところで(ステップS1602のYES)、コマンドバス権を要求する(ステップS1603のYES)。コマンドバス権を要求するとコマンドバス権が承認されるまで待ち(ステップS1604のNO)、コマンドバス権が承認されたところで(ステップS1604のYES)、コマンドを送信する(ステップS1605)。その後、外部端子I/F回路130bから送られるデータを受信しバッファ160への書き込みを行う(ステップS1606)。
 転送開始要求時に指定されたサイズ分のデータ転送が完了していない場合は(ステップS1607のNO)ステップS1601に戻り、再びデータ転送を行う。指定されたサイズ分のデータ転送が完了している場合は、データ転送完了通知を行うために、アップリンクインフォメーションバス権を要求する(ステップS1608)。アップリンクインフォメーションバス権を要求するとアップリンクインフォメーションバス権が承認されるまで待ち(ステップS1609のNO)、アップリンクインフォメーションバス権が承認されたところでアップリンクインフォメーションバスを使用してデータ転送完了を通知する(ステップS1610)。その後、チャネル141bは停止し、次の転送開始要求を受けるまで動作しない。
 図17は、外部端子I/F回路130bのデータ転送制御を示すフローチャートである。まず、外部端子I/F回路130bは半導体集積回路100内部の図示しないプロセッサなどにより起動される。
 起動された外部端子I/F回路130bはチャネル141bに転送開始要求を通知するためにアップリンクインフォメーションバス権を要求する(ステップS1701)。アップリンクインフォメーションバス権を要求するとアップリンクインフォメーションバスが承認されるまで待ち(ステップS1702のNO)、アップリンクインフォメーションバスが承認されたところで(ステップS1702のYES)、アップリンクインフォメーションバス権を使用して転送開始要求を送信する(ステップS1703)。
 次に外部端子I/F回路130bはリードレディをアサートする(ステップS1704)。その後、チャネル141bから送られるコマンドを受信する(ステップS1705)。コマンドを受信した後はチャネル141bに送るべきデータが準備できるまで待ち(ステップS1706のNO)、データが準備できたところで(ステップS1706のYES)、アップリンクデータバス権を要求する(ステップS1707)。アップリンクデータバス権を要求するとアップリンクデータバス権が承認されるまで待ち(ステップS1708のNO)、アップリンクデータバス権が承認されたところで(ステップS1708のYES)データを送信する(ステップS1709)。
 転送開始要求時に指定されたサイズ分のデータ転送が完了していない場合は(ステップS1710のNO)、ステップS1704に戻り、再びデータ転送を行う。指定されたサイズ分のデータ転送が完了している場合は(ステップS1710のYES)、外部端子I/F回路130bはデータ転送完了の通知を受けた後に(ステップS1711)停止し、次の起動指示を受けるまで動作しない。
 以上が各データ転送の動作の説明である。
 ここから、実際のデータ転送のタイミングについて説明する。
 図18は、DMAC140から外部端子I/F回路群130a、130bの方向に情報を伝える共有バスのバス権の割り当て及び共有バスの使用状況を示す図である。ここでは、チャネル141a及びチャネル141bがコマンドバスを使用しており、チャネル141a及びチャネル141bがバス権承認を得た際に共に共有バスを3サイクル使用する例を記載している。
 時刻T0以前にチャネル141aからのコマンドバス権要求信号が調停器151に到達しており、それを受けた調停器151がチャネル141aに対し時刻T0にコマンドバス権承認を返している。その結果、時刻T0から時刻T2の間チャネル141aがスライスバス121のコマンドバスを使用する権利を得る(ダウンリンクバス権=A)。
 時刻T0から時刻T2の間にチャネル141aからスライスバス121のコマンドバスに出力されたコマンドは、スライス群124を通過する際に1サイクル遅延し、時刻T1から時刻T3の間スライスバス122のコマンドバスに出力される。ここで、コマンドは外部端子I/F回路130aに取得される。
 次に、時刻T3以前にチャネル141bからのコマンドバス権要求信号が調停器151に到達しており、それを受けた調停器151がチャネル141bに対し時刻T3にコマンドバス権承認を返している。その結果、時刻T3から時刻T5の間チャネル141bがスライスバス121のコマンドバスを使用する権利を得る(ダウンリンクバス権=B)。
 時刻T3から時刻T5の間にチャネル141bからスライスバス121のコマンドバスに出力されたコマンドは、スライス群124を通過する際に1サイクル遅延し、時刻T4から時刻T6の間スライスバス122のコマンドバスに出力される。同様に、時刻T4から時刻T6の間スライスバス122のコマンドバスに出力されたコマンドは、スライス群125を通過する際に1サイクル遅延し、時刻T5から時刻T7の間スライスバス123のコマンドバスに出力される。ここで、コマンドは外部端子I/F回路130bに取得される。
 以降、時刻T6から時刻T8のコマンドバス権及びそれに対応する共有バスの使用状況は時刻T0から時刻T2のそれと同様であり、時刻T9から時刻T11のコマンドバス権及びそれに対応する共有バスの使用状況は時刻T3から時刻T5のそれと同様である。
 図19は、外部端子I/F回路群130からDMAC140の方向に情報を伝える共有バスのバス権の割り当て及び共有バスの使用状況を示す図である。ここでは、外部端子I/F回路130a及び外部端子I/F回路130bがアップリンクインフォメーションバスを使用しており、外部端子I/F回路130a及び外部端子I/F回路130bがバス権承認を得た際に共に共有バスを3サイクル使用する例を記載している。
 時刻T0以前に外部端子I/F回路130aからのアップリンクインフォメーションバス権要求信号が調停器152に到達しており、それを受けた調停器152が外部端子I/F回路130aに対し時刻T0にアップリンクインフォメーションバス権承認を返している。その結果、時刻T0から時刻T2の間外部端子I/F回路130aがスライスバス123のアップリンクインフォメーションバスを使用する権利を得る(ダウンリンクバス権=A)。ただし、外部端子I/F回路130aはスライスバス123には接続されていないため、時刻T0から時刻T2の間、スライスバス123は使用されない。
 外部端子I/F回路130aに送られるべきアップリンクインフォメーションバス権承認信号はスライス群125を通過する際に1サイクル遅延し、時刻T1にスライスバス122に接続される外部端子I/F回路130aに到達する。この結果、時刻T1から時刻T3の間外部端子I/F回路130aがスライスバス122のアップリンクインフォメーションバスを使用する権利を得る(ダウンリンクバス権=A)。
 時刻T1から時刻T3の間に外部端子I/F回路130aからスライスバス122のアップリンクインフォメーションバスに出力された情報は、スライス群124を通過する際に1サイクル遅延し、時刻T2から時刻T4の間スライスバス121のアップリンクインフォメーションバスに出力される。ここで、アップリンクインフォメーションバス経由で送られた情報はチャネル141aに取得される。
 次に、時刻T3以前に外部端子I/F回路130bからのアップリンクインフォメーションバス権要求信号が調停器152に到達しており、それを受けた調停器152が外部端子I/F回路130bに対し時刻T3にアップリンクインフォメーションバス権承認を返している。その結果、時刻T3から時刻T5の間外部端子I/F回路130bがスライスバス123のアップリンクインフォメーションバスを使用する権利を得る(ダウンリンクバス権=B)。
 時刻T3から時刻T5の間に外部端子I/F回路130bからスライスバス123のアップリンクインフォメーションバスに出力された情報は、スライス群125を通過する際に1サイクル遅延し、時刻T4から時刻T6の間スライスバス122のアップリンクインフォメーションバスに出力される。同様に、時刻T4から時刻T6の間スライスバス122のアップリンクインフォメーションバスに出力された情報は、スライス群124を通過する際に1サイクル遅延し、時刻T5から時刻T7の間スライスバス121のアップリンクインフォメーションバスに出力される。ここで、アップリンクインフォメーションバス経由で送られた情報はチャネル141bに取得される。
 このように、共有バスのバス権承認信号を共有バス経由で送付する情報と同等にスライスすることにより、共有バスのバス権切替時に共有バスの未使用期間を設けること無しに情報を転送することができ、高いバス使用効率を実現することが可能となる。
 なお、図18及び図19では、共有バス使用回路(チャネル141a、チャネル141b、外部端子I/F回路130a、あるいは外部端子I/F回路130b)がバス権承認を得た際に共有バスを固定サイクル数(3サイクル)使用する例を記載したが、本発明はこれに限定されるものではない。例えば、この共有バスの使用期間は共有バスの使用回路毎に異なっていても良い。
 共有バスの使用期間が共有バスの使用回路毎に異なる例を、図20及び図21を使用して説明する。ここでは、チャネル141a及びチャネル141bがコマンドバスを使用しており、チャネル141aがバス権承認を得た際に共有バスを3サイクル使用し、チャネル141bがバス権承認を得た際に共有バスを2サイクル使用する例を記載している。
 図20は、調停器151が共有バスの使用回路毎の共有バスの使用期間を知らず、共有バスの使用期間の最大値(3サイクル)毎に調停を行い、バス権の承認を返す例を記載している。この場合、チャネル141bが共有バスを使用する権利を得ている期間(3サイクル)のうち1サイクルが未使用期間となる。具体的には、チャネル141bが共有バスを使用する権利を得ている時刻T5及び時刻T11で、チャネル141bはスライスバス121を使用しない。そのため時刻T6及び時刻T12でスライスバス122は使用されておらず、更に時刻T7及び時刻T13でスライスバス123は使用されていない。このため、共有バスの使用効率が低下してしまう。
 これを避けるため、調停器151に使用回路毎の共有バスの使用期間情報を持たせ、使用回路毎の共有バスの使用期間に応じて、調停するタイミングを変化させても良い。
 図21は、調停器151が使用回路毎の共有バスの使用期間情報を持ち、使用回路毎の共有バスの使用期間に応じて、調停するタイミングを変化させる例である。図20と同様に、チャネル141a及びチャネル141bがコマンドバスを使用しており、チャネル141aがバス権承認を得た際に共有バスを3サイクル使用し、チャネル141bがバス権承認を得た際に共有バスを2サイクル使用する例を記載している。
 調停器151は、時刻T0で調停を行い調停器151がチャネル141aに対し時刻T0にコマンドバス権承認を返している。ここで調停器151はチャネル141aの共有バスの使用期間情報(3サイクル)を保持しており、次の調停を3サイクル後の時刻T3に行う。
 調停器151は、時刻T3ではチャネル141bに対しコマンドバス権承認を返している。ここで調停器151はチャネル141bの共有バスの使用期間情報(2サイクル)を保持しており、次の調停を2サイクル後の時刻T5に行う。
 調停器151は、時刻T5ではチャネル141aに対しコマンドバス権承認を返している。ここで調停器151はチャネル141aの共有バスの使用期間情報(3サイクル)を保持しており、次の調停を3サイクル後の時刻T8に行う。
 このように、調停器151に使用回路毎の共有バスの使用期間情報を持たせ、使用回路毎の共有バスの使用期間に応じて調停するタイミングを変化させることにより、共有バスの使用回路毎に使用期間が異なる場合でも、高いバス使用効率を維持することが可能となる。
<まとめ>
 以上に説明してきたように、本実施の形態2に示した半導体集積回路は、上記変形例に従って設計、作成されており、外部端子位置の決定が遅れていたとしても、問題なく動作する構成を実現できる。即ち、外部端子位置に応じて、タイミング調整回路の段数を決定して作成されているため、簡単な構成で、データ転送間の遅延等に配慮した半導体集積回路を実現できる。
<実施の形態3>
 上記実施の形態2においては、各外部端子I/F回路130a、130bとDMAC140とがデータ転送を行う際に、バス権の使用期間が異なるものが混在する場合を説明した。
 本実施の形態3においては、バス権の使用期間が異なる場合に、共有バスを分けて構成する例を説明する。なお、ここでいうバス権の使用期間は、1度のデータ転送におけるバースト長と言い換えてもよい。
 図22は、共有バスを分けない場合の半導体集積回路200の構成例を示す機能ブロック図である。また、図23は、共有バスを分ける場合の半導体集積回路300の構成例を示す機能ブロック図である。なお、両機能ブロック図においては、基本的には、実施の形態2に示した半導体集積回路100と構成と略一致するので、若干省略してバッファ160等を省略して記載する。
 DMAC240はチャネル241a、チャネル241b、チャネル241c、チャネル241dの4つのチャネルを含み、共有バスを介して外部端子I/F回路群230と接続されている。チャネル241aは外部端子I/F回路230aと情報を授受し、チャネル241bは外部端子I/F回路230bと情報を授受し、チャネル241cは外部端子I/F回路230cと情報を授受し、チャネル241dは外部端子I/F回路230dと情報を授受する。
 チャネル241a、チャネル241b、チャネル241c、及びチャネル241dのそれぞれは調停器251に対しバス権要求信号群を送り、調停器251はチャネル241a、チャネル241b、チャネル241c、及びチャネル241dのそれぞれに対しバス権承認信号群を送る。外部端子I/F回路230a、外部端子I/F回路230b、外部端子I/F回路230c、及び外部端子I/F回路230dのそれぞれは調停器252に対しバス権要求信号群を送り、調停器252は外部端子I/F回路230a、外部端子I/F回路230b、外部端子I/F回路230c、及び外部端子I/F回路230dのそれぞれに対しバス権承認信号群を送る。バス権要求信号群とバス権承認信号群の構成は図11での説明と同様である。
 また、図22では記載を省略しているが図1と同様に情報を授受するチャネルと外部端子I/F回路の間では、ライトレディ信号とリードレディ信号がスライスを介して接続されている。
 共有バスはスライス群224、スライス群225とそれらによりスライスされたスライスバス221、スライスバス222、スライスバス223により構成される。DMAコントローラ251はスライスバス221に接続されており、外部端子I/F回路230a及び外部端子I/F回路230cはスライスバス222に接続されており、外部端子I/F回路230b及び外部端子I/F回路230dはスライスバス223に接続されている。
 図24は、DMAコントローラ240から外部端子I/F回路群に230の方向に情報を伝える共有バスのバス権の割り当て及び共有バスの使用状況を示す図である。ここでは、チャネル241a、チャネル241b、チャネル241c、及びチャネル241dがコマンドバスを使用しており、チャネル241a及びチャネル241bがバス権承認を得た際に共有バスを3サイクル使用し、チャネル241c、及びチャネル241dがバス権承認を得た際に共有バスを2サイクル使用する例を記載している。また、調停器251は使用回路毎の共有バスの使用期間情報を持たず、固定サイクル(3サイクル)毎に調停を行う。
 この場合、図20での説明と同様に、共有バスの使用期間が調停器251の調停間隔(3サイクル)よりも短いチャネル241c、及びチャネル241dが共有バスを使用する場合に、未使用期間(図中斜線部分)ができ、共有バスの使用効率が低下する。
 この共有バスの使用効率の低下を回避するため、共有バスの使用期間3であるチャネル241a及びチャネル241bが使用する共有バスと、共有バスの使用期間2であるチャネル241c及びチャネル241dが使用する共有バスを個別に実装しても良い。この例を図23及び、図25と図26とを使用して説明する。
 図23は個別の共有バスを実装する場合の構成例である。DMAC340及び外部端子I/F回路群330a~330dの構成は、図22の場合と略同様である。ただし、図22とは異なり、共有バスを2系統設け、共有バスの系統毎に調停器を設けている点が異なる。
 具体的には、チャネル341a、チャネル341b、外部端子I/F回路330a及び外部端子I/F回路330bはスライスバス321a、スライスバス322a、スライスバス323a、スライス群324a、及びスライス群325aにより構成される第1共有バスに接続されており、チャネル341c、チャネル341d、外部端子I/F回路330c及び外部端子I/F回路330dはスライスバス321b、スライスバス322b、スライスバス323b、スライス群324b、及びスライス群325bにより構成される第2共有バスに接続されている。
 チャネル341a、及びチャネル341bのそれぞれは調停器351aに対しバス権要求信号群を送り、調停器351aはチャネル241a、及びチャネル241bのそれぞれに対しバス権承認信号群を送る。チャネル241c及びチャネル341dのそれぞれは調停器351bに対しバス権要求信号群を送り、調停器351bはチャネル341c及びチャネル341dのそれぞれに対しバス権承認信号群を送る。
 外部端子I/F回路330a、及び外部端子I/F回路330bのそれぞれは調停器352aに対しバス権要求信号群を送り、調停器352aは外部端子I/F回路330a、及び外部端子I/F回路330bのそれぞれに対しバス権承認信号群を送る。外部端子I/F回路330c、及び外部端子I/F回路330dのそれぞれは調停器352bに対しバス権要求信号群を送り、調停器352bは外部端子I/F回路330c、及び外部端子I/F回路330dのそれぞれに対しバス権承認信号群を送る。
 バス権要求信号群とバス権承認信号群の構成は図11での説明と同様である。また、図23では記載を省略しているが図9と同様に情報を授受するチャネルと外部端子I/F回路の間では、ライトレディ信号とリードレディ信号がスライスを介して接続されている。
 図25は、外部端子I/F回路群330a~330dからDMAC340の方向に情報を伝える共有バスのバス権の割り当て及び共有バスの使用状況を示す図である。ここでは、チャネル341a、及びチャネル341bが第1共有バスのコマンドバスを使用しており、チャネル341c、及びチャネル341dが第2共有バスのコマンドバスを使用している。また、調停器351a、及び調停器351bはそれぞれが固定サイクル毎に調停を行い、調停器351aは3サイクル毎に、調停器351bは2サイクル毎に調停を行うものとする。
 この場合、図25に記載の通り、図18での説明と同様に未使用期間が入ることなく共有バスを使用することができる。
<まとめ>
 以上に説明してきたように共有バスを、使用回路ごとにバスの一時の使用期間が異なる仕様の場合に、個別に設けることにより、使用回路毎の共有バスの使用期間に応じて調停するタイミングを変化させる複雑な調停回路を設けなくても、高効率に共有バスを使用することが可能となる。
<実施の形態4>
 上記実施の形態1~3においては、主として、データ転送制御回路たるDMACが機能ブロックに含まれる例を説明した。ところで、機能ブロックにDMACを設ける構成とすると、設計の拡張性が低くなることがある。
 これは、アップリンク用の調停器と、ダウンリンク用の調停器を、例えば、図9や図22あるいは、図23のように配する構成とした場合、それぞれの構成に対応してどのように調停を実行するかを設計しているため、ここに新たな外部端子や外部端子I/F回路を設ける設計が追加された場合には、調停器は設計しなおす必要があるためである。なお、元から設計に盛り込まれていた外部端子や外部端子I/F回路を取り除く設計が追加された場合であっても調停器の再設計が必要となるのは同様である。また、DMACには、新たな外部端子、外部I/F回路に対応する新たなチャネルを設ける必要があるため、DMACの再設計もまた必要となる。
 そこで、上記実施の形態1や各種変形例に示したレイアウト設計方法においては、データ転送制御回路たるDMACを機能ブロック内に含まずに、外部端子I/F回路の一部としてレイアウト設計を行ってもよいことを記載している。
 この場合のレイアウト設計方法の一例を、図28に示す。図28(a)には一例として図4(a)に示したレイアウト設計方法において、データ転送制御回路が機能ブロックに含まれない場合のレイアウト設計方法を示した。図28において、図4と共通する内容は同じステップ番号を付し、異なる内容については、異なるステップ番号を付している。なお、本実施の形態4に示すデータ転送制御回路を機能ブロックに含まずに設計する手法は、図4だけでなく、図1あるいは図6などに示したレイアウト設計手法にも適用可能である。
 図28(a)に示したフローチャートと図4(a)に示したフローチャートとの相違点は、データ転送制御回路の配置を定めるタイミングである。
 まず、ステップS2801においては、ステップS401と比較すればわかるように、データ転送制御回路が含まれていない機能ブロックの配置を定めている(ステップS2801)。
 そして、複数の外部端子の配置が決定されると(ステップS402)、各外部端子に対応するデータ転送制御回路を含むIOブロックの配置を決定する。このとき、IOブロックがデータ転送制御回路を含まない場合には、データ転送制御回路の配置も、各IOブロックに対応するように、決定する。そして、IOブロックの配置が決定すると共有バスの配置と、その共有バスに挿入されるタイミング調整回路の配置を決定する(ステップS2803)。
 なお、図28(b)には、図4と同様に、図28(a)における各ステップにおいて並行処理によるレイアウト設計をする手法を示している。
<構成>
 図28の設計手順に従って設計される半導体集積回路の構成について説明する。
 図29は、半導体集積回路400の機能構成を示すブロック図である。
 図29と、図22や図23との相違点は、データ転送制御回路としてDMAC機能を有する回路(DMAチャネル)を各外部端子I/F回路に対応させて設けたことと、アップリンク用調停器とダウンリンク用調停器を設けない代わりに、各DMAチャネルに対応させて簡易な調停器を設けたことにある。つまり、図22や図23の場合、DMAチャネルは一つの回路(DMAC)が遠隔の外部端子I/F回路を制御する構成となっていたのに対し、本実施の形態4の図29では、DMAC機能が外部端子I/F回路側に配されている。
 以下、このようにして設計される半導体集積回路400の機能について説明する。なお、ここでは、半導体集積回路200や300と重複する内容については省略し、異なる構成について説明する。
 図29に示すように、図28に示すフローチャートに従って設計された半導体集積回路400は、機能ブロック440と、外部端子410a、410bと、外部端子I/F回路430a、430bと、DMAチャネル440a、440bと、調停器450aと、スライス群424、425と、スライスバス421、422、423と、バッファ460とから構成される。各回路は、図29に示される構成で接続される。
 半導体集積回路400は、半導体集積回路400に接続される外部機器からのデータを外部端子410a、410bで受信して、バッファ460に転送する機能と、バッファ460からのデータを外部端子410a、410bから半導体集積回路400に接続される外部機器に転送する機能を含む回路である。
 外部端子410a、410b、スライス群424、425、バッファ460は、上記実施の形態1~3に示したものと同様の機能を果たすものである。
 DMAチャネル440aは、外部端子I/F回路430aとバッファ460との間のデータ転送を制御する機能を有する。DMAチャネル440aは、データ転送を実行しようとする場合、まず、調停器450aにデータ転送要求を送信する。そして、調停器440bから共有バスの使用許可の通知を受け付けるとデータ転送を実行する。
 DMAチャネル440bは、外部端子I/F回路430bとバッファ460との間のデータ転送を制御する機能を有する。DMAチャネル440bは、データ転送を実行しようとする場合、まず、調停器450bにデータ転送要求を送信する。そして、調停器450bから共有バスの使用許可の通知を受け付けるとデータ転送を実行する。
 DMAチャネル440aと440bとはともに共有バス(421、422、423)に接続されている。このため、実際にデータ転送を実行するためには、バス権を獲得する必要がある。
 調停器450a、450bはそのために配されており、調停器450a、450bによりバス権が管理される。
 調停器450a、450bは、DMAチャネルからデータ転送要求を受け付けている場合であって、同時に機能ブロック440側から見て下流にある調停器(調停器450aに対する調停器450b)からバス権要求信号を受け付けたときには、両者のバス権要求を所定のポリシーで優先度付けをし、優先度の高い方のバス権要求信号を上流(機能ブロック440)に向けて出力する。また調停器450a、450bは、DMAチャネルからデータ転送要求を受け付けていない場合であって、下流の調停器からバス権要求信号を受け付けたときには、当該バス権要求信号をそのまま上流に出力する。
 機能ブロック440は、調停器450aから送信されてきたバス権要求信号に応じて、バス権を与えて良いタイミング(例えば、共有バスがいずれの回路にも使用されていないタイミング)でバス権承認信号を調停器450aに送信する機能を有する。
 このような構成とすると、外部端子と外部端子I/F回路の追加や削除が容易となるうえ、調停器も上述の単純な構成によるバス権の管理を行うのみであるため、調停器の再設計もせずに済む構成となる。
 図30には、図29の構成に新たな外部端子410cと外部端子I/F回路430cとDMAチャネル440cと調停器450cとを追加した構成の半導体集積回路400aを示した。なお、図30においては、新たなスライス群426を設ける構成を示したが、このスライス群426は、共有バスの配線長に応じて設けられるものである。そのため、新たな外部端子や外部端子I/F回路までの配線長がそれほど長いものにならない場合には、タイミング調整のためのスライス群は新たに設ける必要がなく、図31に示すような構成の半導体集積回路400bが設計される。
 また、逆にもともと設計していたデータ転送経路(外部端子と外部端子I/F回路とDMAチャネルと調停器の組み合わせ)が不要になることもある。図32には、追加でなく、削除した構成を示した。このような構成とすることで、外部端子と外部端子I/F回路とDMAチャネルと調停器の組み合わせからなる一つのデータ転送経路を単位として考えられた設計の追加や削除を行うことができる。
 このように、図29などに示すように、一つの外部端子と外部I/F回路とDMAチャネルと調停器とを一単位とした配置をすることができるので、図9、図22、図23などに示した構成とする場合に比して、外部端子、外部I/F回路の追加や削除などの設計変更を容易に行うことができる。
 また、図29~図32では、機能ブロックと複数のIOブロックがバス型のトポロジーで接続される例を記載しているが、これはデイジーチェーン型のトポロジーで接続されてもよい。デイジーチェーン型のトポロジーで機能ブロックやIOブロックを接続する構成としては、例えば、図33に示すような構成が考えられる。図33に示す半導体集積回路400dは、図31に示したバス型のトポロジーで機能ブロックとIOブロックとが接続されている半導体集積回路400bをデイジーチェーン型のトポロジーで接続された構成に変更したものである。例えば、IOブロックとして、外部端子I/F回路(430a/430b/430c)とDMAチャネル(440a/440b/440c)と調停器(450a/450b/450c)とを一つにパッケージした回路を用いる。図33に示される通り、機能ブロック440と、スライス群424、425と、IOブロック470a、470b、470cとはデイジーチェーン構成でバス(421、422、423)により接続されている。
 また、IOブロック470a、470b、470cは、図34に示す半導体集積回路400eのように、一組のDMAチャネル(440a/440b/440c)と調停器(450a/450b/450c)とを一つにパッケージした回路であってもよい。
 このような構成であっても、図33に示した半導体集積回路400d、図34に示した半導体集積回路400eは、実質的には、図31に示した半導体集積回路400bと同等の機能を発揮する。
 なお、バス型のトポロジーで接続するか、デイジーチェーン型のトポロジーで接続するかは設計の仕様で定められ、当該仕様に従って、レイアウト設計がなされる。
<まとめ>
 以上、実施の形態4に示したように、各外部端子と外部端子I/F回路に対応する形で、データ転送制御回路たるDMAチャネルと、調停器とを設ける構成とすることで、一つの外部端子と外部端子I/F回路とデータ転送制御回路と調停器とを一つのデータ転送経路として、データ転送経路の追加または削除が容易なレイアウト設計方法及び当該レイアウト設計方法により設計される半導体集積回路を提供することができる。
<補足>
 上記実施の形態において、本発明の実施の手法について説明してきたが、本発明の実施の形態がこれに限られないことは勿論である。以下、上記実施の形態以外に本発明として含まれるその他の各種変形例について説明する。
(1)上記実施の形態において、レイアウト設計方法を示した。当該レイアウト設計方法は、人間が当該レイアウト設計方法に従って、半導体集積回路のレイアウトを設計することとしてもよいし、半導体集積回路のレイアウトを自動設計する装置において、上記実施の形態に従ったレイアウト設計方法の手順に従ってレイアウトを実行する装置であればよく、レイアウト設計を実行する装置に命じて、設計することとしてもよい。
(2)上記実施の形態において示したレイアウト設計方法は、半導体集積回路のレイアウトを設計する設計装置が実行することとしてもよい。
 即ち、データ転送制御回路や、各機能ブロックの面積等の情報及び設計する半導体集積回路の大きさに応じて許される総配置面積の情報を入力として、まず、最適な機能ブロック及びデータ転送制御回路の配置を決定する。当該配置の決定方法の詳細については、各種従来技術が開示されているので、ここでは割愛する。
 データ転送制御回路と機能ブロックとの配置を決定すると、設計装置は、外部端子位置の情報の入力を、例えば、設計装置のオペレータから受け付ける。
 外部端子位置の情報の入力を受け付けると、当該情報で示される位置を外部端子の配置位置として決定する。
 設計装置は、外部端子位置の近傍にIOブロックの配置位置を決定する。当該決定は、決定された外部端子位置から、予め定められた所定の距離内であって、他の部品との配置が重複しない位置の中から、外部端子とIOブロックとの間の配線長が最も短くなる位置をIOブロックの配置位置として決定する。
 そして、設計装置は、IOブロックの配置位置が決定されると、当該IOブロックとデータ転送制御回路とを接続し、かつ、他の部品との配置が重複しないようにバスの配線位置を決定する。
 そして、決定されたバスの配線をすることにより、定まるバスの配線長から、当該バス上に挿入するタイミング調整回路の数と位置を、他の部品の配置位置と重複しないように、挿入する。挿入するタイミング調整回路の数については、予め設計装置に、ある一定の長さの範囲で分けられた配線長ごとの、挿入するタイミング調整回路の数を示すテーブルを記憶しておき、決定したバスの配置位置に基づいてその配線長を算出する。そして算出した配線長が、テーブルのどの範囲に該当するのかに基づいて、該当する範囲に対応するタイミング調整回路の数を、挿入すべきタイミング調整回路の数として決定する。
 こうして、最終的に図3(b)に示すようなレイアウトが設計される。
 なお、ここでは、実施の形態1に示したレイアウト設計方法に基づく、設計装置について説明したが、これは、他の実施の形態に示したレイアウト設計方法に基づく、設計装置によるレイアウト設計であってもよい。
 また、設計装置は、変形例1や変形例2、あるいは、実施の形態4に示した手法を以ってレイアウト設計を実行することとしてもよい。
(3)上記実施の形態におけるレイアウト設計方法においては、共有バスの配置は、図27に示すように配置することとしてもよい。即ち、各機能ブロックを囲うように共有バスを配線する。そして、内部回路140からの配線長に応じて、タイミング調整回路たるスライス群125a~125jを配置する。その周囲に外部端子I/F回路を設置するためのスペースを確保し、外部端子位置の決定を待つ。
 そして、外部端子位置が決定すると、決定された位置を外部端子110a~110cの配置位置とし、その近傍にIOブロックたる外部端子I/F回路130a~130cの配置位置を決定し、外部端子と接続し、外部端子I/F回路から直線距離で最も短くなるように共有バスへ配置する。
 こうすると、IOブロックからデータ転送制御回路まで、共有バスを、各機能ブロックの部品間をどのように通すのかを考慮することなく、外部端子I/F回路から、共有バスへの配線を容易に決定できるので、とくに、上記変形例2における設計手法において有効な設計方法と言える。
(4)上記実施の形態2では、DMAコントローラ140と外部端子I/F回路群130a、130bとの間で、コマンド、ダウンリンクデータ、ダウンリンクインフォメーション、アップリンクデータ、アップリンクインフォメーションの5つの情報全てが授受される例を記載しているが、本発明はこれに限定されるものではない。例えば、DMAコントローラ140と外部端子I/F回路群130a、130bの間の情報授受が、コマンド、ダウンリンクデータのみで構成しても良く、5つの情報のサブセットが含まれていれば良い。
(5)上記実施の形態2では、外部端子I/F回路群130a、130bからDMAコントローラ140に対して送られるライトレディ信号及びリードレディ信号がスライスされている例を記載しているが、本発明はこれに限定されるものではない。ライトレディ信号及びリードレディ信号はスライスを経由することなしに直接、外部端子I/F回路群130a、130bとDMAコントローラ140との間で接続されていても良い。
(6)上記実施の形態2では、外部端子I/F回路130aから調停器152に対して送られるバス権要求信号群がスライス1258によりスライスされている例を記載しているが、本発明はこれに限定されるものではない。バス権要求信号群はスライスを経由することなしに直接調停器と接続されていても良い。
(7)本実施の形態2では、調停器151及び調停器152が共有バスの全ての構成要素(コマンドバス、ダウンリンクデータバス、ダウンリンクインフォメーションバス、アップリンクデータバス、アップリンクインフォメーションバス)の調停回路を備える例を記載しているが、本発明はこれに限定されるものではない。
 例えば、DMAC140が外部端子I/F回路群130に対しダウンリンクインフォメーションを送付する必要が無く、共有バスとしてダウンリンクインフォメーションバスが実装されない場合は、それに対応するダウンリンクインフォメーションバス調停回路1513を実装しなくても良い。
 あるいは、ダウンリンクインフォメーションを送付する必要があっても、例えば、チャネル141bは情報を送付せず、チャネル141aのみが情報を送付する場合(ダウンリンクインフォメーションバスを占有しても良い場合)は、ダウンリンクインフォメーションバス調停回路1513を実装しなくても良い。
(8)上記実施の形態2では、コマンドバス権調停回路1511、ダウンリンクデータバス権調停回路1512、及びダウンリンクインフォメーションバス権調停回路1513が調停器1510内に含まれる局所化された物理領域にレイアウトされている例を記載しているが、本発明はこれに限定されるものではない。コマンドバス権調停回路1511、ダウンリンクデータバス権調停回路1512、及びダウンリンクインフォメーションバス権調停回路1513のそれぞれは必要に応じて分散された領域にレイアウトされても良い。調停器1520に含まれるアップリンクデータバス権調停回路1522、アップリンクインフォメーションバス権調停回路1523についても同様である。
(9)上記実施の形態2においては、コマンド情報を送付した後に続いてデータを転送する例を記載しているが、コマンドの送信方法や回数などはこれに限定されるものではない。例えば、コマンドをデータに先行してN回(Nは2以上の整数)続けて送った後にデータ転送を開始する構成としても良い。
(10)上記実施の形態3においては、コマンドバスを例として記載しているが、本発明はこれに限定されるものではない。例えば、DMAC240(340)から外部端子I/F回路群230a~230d(330a~330d)の方向に情報を転送するダウンリンクデータバス、及びダウンリンクインフォメーションバスで同様の構成を採っても良い。また、外部端子I/F回路群230からDMAC240の方向に情報を転送するアップリンクデータバス及びアップリンクインフォメーションバスで同様の構成を採っても良い。
(11)上記実施の形態においては、1つの外部IO端子が1つの外部端子I/F回路に対応する構成を示したが、これはその限りではない。1つの外部端子I/F回路が複数の外部IO端子に対応してもよい。また設計される半導体集積回路は、図32に示すように1つの外部端子I/F回路及び1つのDMAチャネルのみを備える構成であってもよい。
(12)上述の実施形態で示したレイアウト設計に係る動作(図1、図4、図6参照)をレイアウト設計装置等のプロセッサ、及びそのプロセッサに接続された各種回路に実行させるためのプログラムコードからなる制御プログラムを、記録媒体に記録すること、又は各種通信路等を介して流通させ頒布させることもできる。このような記録媒体には、ICカード、ハードディスク、光ディスク、フレキシブルディスク、ROM等がある。流通、頒布された制御プログラムはプロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがその制御プログラムを実行することにより、実施形態で示したような各種機能が実現されるようになる。
(13)上記実施の形態に示したブロック図(図8~12、22、23等参照)における各機能部、各種回路は、集積化されて1又は複数のLSI(Large Scale Integration)により実現されてもよい。また、複数の機能部が1のLSIにより実現されてもよい。
 LSIは集積度の違いにより、IC(Integrated Circuit)、システムLSI、VLSI(Very Large Scale Integration)、SLSI(Super Large Scale Integration)、ULSI(Ultra Large Scale Integration)などと呼称されることもある。
 更には、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、当該技術を用いて、機能ブロックの集積化を実現してもよい。当該技術としては、バイオ技術の適応等が可能性としてありえる。
(14)以下に、本発明に係る集積回路製造方法並びに半導体集積回路の実施の態様とその効果について説明する。
 本発明に係る第1の集積回路製造方法は、集積回路の製造に用いられるマスクパターンを作成するためのレイアウト設計ステップと、前記マスクパターンを用いて、半導体材料上に前記集積回路を作成する作成ステップとを含む集積回路製造方法であって、前記レイアウト設計ステップは、機能ブロックの配置を決定する第1ステップと、前記集積回路と外部の機器とを接続するための複数の外部IO(Input-Output)端子の配置を決定する第2ステップと、前記第2ステップで決定された各外部IO端子の配置に応じて、前記外部IO端子のいずれかに接続される少なくとも1つのIO(Input-Output)ブロックの配置を決定する第3ステップと、前記機能ブロックと前記IOブロックとの間を接続するバスの配置と、当該バスの配線長に応じた段数の、前記バス上を流れる信号のタイミング調整を行うタイミング調整回路との配置を決定する第4ステップと、を含むことを特徴とする。
 また、本発明に係る第2の集積回路製造方法は、集積回路の製造に用いられるマスクパターンを作成するためのレイアウト設計ステップと、前記マスクパターンを用いて、半導体材料上に前記集積回路を作成する作成ステップとを含む集積回路製造方法であって、前記レイアウト設計ステップは、機能ブロックの配置を決定する第1ステップと、前記集積回路と外部の機器とを接続するための複数の外部IO(Input-Output)端子の配置を決定する第2ステップと、前記第2ステップで決定された各外部IO端子の配置に応じて、前記外部IO端子のいずれかに接続される少なくとも1つのIO(Input-Output)ブロックの配置を決定する第3ステップと、前記機能ブロックと前記IOブロックとの間を接続する共有バスの配置と、当該共有バスの配線長に応じた段数の、前記共有バス上を流れる信号のタイミング調整を行うタイミング調整回路との配置を決定する第4ステップと、を含むことを特徴とする。
 また、本発明に係る第3の集積回路製造方法は、集積回路の製造に用いられるマスクパターンを作成するためのレイアウト設計ステップと、前記マスクパターンを用いて、半導体材料上に前記集積回路を作成する作成ステップとを含む集積回路製造方法であって、前記レイアウト設計ステップは、機能ブロックの配置を決定する第1ステップと、共有バスと、前記共有バス上を流れる信号のタイミング調整を行うタイミング調整回路との配置を決定する第2ステップと、前記集積回路と外部の機器とを接続するための複数の外部IO(Input-Output)端子の配置を決定する第3ステップと、前記第2ステップで決定された各外部IO端子の配置に応じて、前記外部IO端子のいずれかに接続される少なくとも1つのIO(Input-Output)ブロックの配置を決定する第4ステップと、前記機能ブロックと前記IOブロックとを前記共有バスに接続する第5ステップと、を含むことを特徴とする。
 また、これらの集積回路製造方法により製造される半導体集積回路は、機能ブロックと、複数の外部IO端子と、前記外部IO端子のいずれかに接続される少なくとも1つのIOブロックと、前記機能ブロックと前記少なくとも1つのIOブロックとの間で共有される共有バスと、前記共有バスに挿入され、前記共有バス上を流れる信号のタイミング調整を行う1以上のタイミング調整回路とを備え、前記共有バスは、挿入されている前記タイミング調整回路により、複数のスライスに分割されており、前記機能ブロックと前記IOブロックとは前記複数のスライスの何れかに接続されていることを特徴とする。
 これらのレイアウト設計方法により、外部端子と外部端子に対応する複数のIOブロック間の配線、及び外部端子とデータ転送回路の間の配線制約を緩和すると同時に、これらの配線の敷設による配線面積増大を抑制することができ、レイアウト設計負荷の低減と面積増大の抑制を実現することが可能となる。
 また、上記第1~第3の集積回路製造方法において、前記第1ステップにおいて配置を決定する前記IOブロックは、データ転送制御回路を含むこととしてもよい。
 あるいは、上記第1の半導体集積回路において、前記機能ブロックは、データ転送制御回路を含むこととしてもよい。
 これにより、データ転送制御回路を含むIOブロックを配置するだけで、データ転送の制御を実行できる機能部を有する集積回路を製造することができる。
 また、上記第1~第3の集積回路製造方法において、前記第3ステップにおいて配置を決定する前記IOブロックは、データ転送制御回路を含むこととしてもよい。
 あるいは、上記第1の半導体集積回路において、前記IOブロックは、データ転送制御回路を含むこととしてもよい。
 これにより、データ転送制御回路を各IOブロックに含ませることで、外部IO端子とIOブロックとを一つの単位としたデータ転送経路の追加や削除が容易となる。
 また、上記第1又は第2の集積回路製造方法において、前記第3ステップは、前記外部IO端子に近接する位置を前記IOブロックの配置位置として決定することとしてもよい。
 あるいは、上記第3の集積回路製造方法において、前記第4ステップは、前記外部IO端子に近接する位置を前記IOブロックの配置位置として決定することとしてもよい。
 あるいは、上記第1の半導体集積回路において、前記IOブロックは、前記外部IO端子に近接する位置に配置されていることとしてもよい。
 ここでいう、外部端子に近接する位置とは、外部端子とIOブロックとの間でのデータ転送における通信遅延が誤差として許容できるデータ通信を行える範囲内とする。
 これにより、IOブロックは外部端子の近傍に配されることになるため、外部端子とIOブロック間のデータ転送におけるタイミング調整のための構成を考慮せずともよく、レイアウト設計の負担を軽減することができる。
 また、上記第1の集積回路製造方法において、前記タイミング調整回路は、入力された信号について、当該信号を含む複数の信号が前記バスを流れることにより発生する当該複数の信号間の位相のずれを修正して出力する回路であり、前記第4ステップは、前記配線長に応じて前記信号に発生する遅延量に基づいて、前記タイミング調整回路を挿入する段数及びその配置位置を決定することとしてもよい。
 あるいは、上記第2の集積回路において、前記タイミング調整回路は、入力された信号について、当該信号を含む複数の信号が前記共有バスを流れることにより発生する当該複数の信号間の位相のずれを修正して出力する回路であり、前記第4ステップは、前記配線長に応じて前記信号に発生する遅延量に基づいて、前記タイミング調整回路を挿入する段数及びその配置位置を決定することとしてもよい。
 さらには、上記第3の集積回路において、前記タイミング調整回路は、入力された信号について、当該信号を含む複数の信号が前記共有バスを流れることにより発生する当該複数の信号間の位相のずれを修正して出力する回路であり、前記第2ステップは、前記配線長に応じて前記信号に発生する遅延量に基づいて、前記タイミング調整回路を挿入する段数及びその配置位置を決定することとしてもよい。
 これにより、当該集積回路製造方法に従って生成される集積回路は、バスを流れる信号の動作クロックからの遅延を修正できる。
 また、上記第2の集積回路製造方法において、前記第4ステップにおいて配置を決定する共有バスは、前記機能ブロックと前記IOブロックとをデイジーチェーン接続するように配置が決定されるとしてよい。
 また、上記第3の集積回路製造方法において、前記第5ステップにおいて、前記機能ブロックと前記IOブロックとは前記共有バスによりデイジーチェーン接続されるように配置が決定されるとしてよい。
 これにより、当該集積回路製造方法に従って機能ブロックとIOブロックとがデイジーチェーン接続された回路構成の半導体集積回路を設計することができる。
 また、上記第1の半導体集積回路において、前記半導体集積回路は、更に、前記共有バスの一端に接続され、前記IOブロックから前記データ転送制御回路へ向かう方向のデータ転送に関するバス権要求信号を調停するアップリンク調停器を備え、前記アップリンク調停器は、前記複数のIOブロックからのバス権要求信号を調停し、前記複数のIOブロックのうち選択された1つのIOブロックにバス権承認信号を発行し、前記バス権承認信号は、前記選択された1つのIOブロックと前記アップリンク調停器間のスライスを介して遅延されて前記選択された1つのIOブロックに通知されることとしてもよい。
 これにより、アップリンク調停器の簡素化を図るとともに、共有バスの利用効率を高めることができる。
 また、上記第1の半導体集積回路において、前記共有バスは、前記データ転送制御回路から前記IOブロックへ向かう方向の信号を伝達するためのダウンリンクバスと、前記IOブロックから前記データ転送制御回路へ向かう方向の信号を伝達するためのアップリンクバスとを含んで構成されることとしてもよい。
 更に、上記第1の半導体集積回路において、前記アップリンク調停器は、前記複数のIOブロックが転送するデータそれぞれのバースト長の情報を備えており、前記アップリンク調停器が、バス権を承認された1つのIOブロックに対応したバースト長の情報に応じて、バス権要求信号の調停間隔を決定することとしてもよい。
 これにより、IOブロック毎にデータ転送のバースト長が異なる場合でも、アップリンクバスの利用効率を高めることが可能となる。
 また、上記第1の半導体集積回路において、前記半導体集積回路は、更に、前記データ転送制御回路に接続され、前記データ転送制御回路から前記IOブロックへ向かう方向のデータ転送に関するバス権要求信号を調停するダウンリンク調停器を備え、前記データ転送制御回路は、前記IOブロックが配置されたスライスまでの遅延に応じたタイミングで、前記共有バスにデータを出力することとしてもよい。
 これにより、ダウンリンク調停器の簡素化を図るとともに、共有バスの利用効率を高めることができる。
 また、上記第1の半導体集積回路において、前記ダウンリンク調停器は、前記複数のチャネルが転送するデータそれぞれのバースト長の情報を備えており、前記ダウンリンク調停器が、バス権を承認された1つのチャネルに対応したバースト長の情報に応じて、バス権要求信号の調停間隔を決定することとしてもよい。
 これにより、チャネル毎にデータ転送のバースト長が異なる場合でも、ダウンリンクバスの利用効率を高めることが可能となる。
 また、上記第1の半導体集積回路において、前記共有バスは、長バーストデバイス用のバスと、短バーストデバイス用のバスとを含み、前記データ転送制御回路と前記IOブロックとの間のデータ転送のバースト長に応じて、前記長バーストデバイス用のバスと、前記短バーストデバイス用のバスの何れかを用いてデータ転送を行うこととしてもよい。
 これにより、調停器がバスを使用するデバイス毎に調停間隔を変更すること無く、共有バスの利用効率を高めることができる。
 本発明に係る集積回路製造方法は、外部端子位置が定まっておらずとも集積回路のレイアウト設計ができ、半導体集積回路の設計時間の短縮に貢献し、半導体集積回路の精製に供する。
100、200、300、400、400a、400b、400c、400d 半導体集積回路
110a、110b、210a、210b、210c、210d、310a、310b、310c、310d、410a、410b、410c 外部端子(外部IO端子)
140 内部回路(DMAC、データ転送制御回路)
141a、141b、241a、241b、241c、241d、341a、341b、341c、341d、441a、441b、441c チャネル
151、152、251、252、351a、351b、352a、352b、450a、450b、450c 調停器
130a、130b、230a、230b、230c、230d、330a、330b、330c、330d、430a、430b、430c 外部端子I/F回路(IOブロック)
124 バス
125a、125b、125c スライス(タイミング調整回路)
240、340 DMAC(データ転送制御回路)
440 機能ブロック
440a、440b、440c DMAチャネル(データ転送制御回路)
470a、470b、470c IOブロック

Claims (29)

  1.  集積回路の製造に用いられるマスクパターンを作成するためのレイアウト設計ステップと、前記マスクパターンを用いて、半導体材料上に前記集積回路を作成する作成ステップとを含む集積回路製造方法であって、
     前記レイアウト設計ステップは、
     機能ブロックの配置を決定する第1ステップと、
     前記集積回路と外部の機器とを接続するための複数の外部IO(Input-Output)端子の配置を決定する第2ステップと、
     前記第2ステップで決定された各外部IO端子の配置に応じて、前記外部IO端子のいずれかに接続される少なくとも1つのIO(Input-Output)ブロックの配置を決定する第3ステップと、
     前記機能ブロックと前記IOブロックとの間を接続するバスの配置と、当該バスの配線長に応じた段数の、前記バス上を流れる信号のタイミング調整を行うタイミング調整回路の配置とを決定する第4ステップと、
     を含む集積回路製造方法。
     
  2.  前記第1ステップにおいて配置を決定する機能ブロックは、データ転送制御回路を含む
     ことを特徴とする請求項1記載の集積回路製造方法。
     
  3.  前記第3ステップにおいて配置を決定する前記IOブロックは、データ転送制御回路を含む
     ことを特徴とする請求項1記載の集積回路製造方法。
     
  4.  前記第3ステップは、前記外部IO端子に近接する位置を前記IOブロックの配置位置として決定する
     ことを特徴とする請求項1記載の集積回路製造方法。
     
  5.  前記タイミング調整回路は、入力された信号について、当該信号を含む複数の信号が前記バスを流れることにより発生する当該複数の信号間の位相のずれを修正して出力する回路であり、
     前記第4ステップは、前記配線長に応じて前記信号に発生する遅延量に基づいて、前記タイミング調整回路を挿入する段数及びその配置位置を決定する
     ことを特徴とする請求項1記載の集積回路製造方法。
     
  6.  集積回路の製造に用いられるマスクパターンを作成するためのレイアウト設計ステップと、前記マスクパターンを用いて、半導体材料上に前記集積回路を作成する作成ステップとを含む集積回路製造方法であって、
     前記レイアウト設計ステップは、
     機能ブロックの配置を決定する第1ステップと、
     前記集積回路と外部の機器とを接続するための複数の外部IO(Input-Output)端子の配置を決定する第2ステップと、
     前記第2ステップで決定された各外部IO端子の配置に応じて、前記外部IO端子のいずれかに接続される少なくとも1つのIO(Input-Output)ブロックの配置を決定する第3ステップと、
     前記機能ブロックと前記IOブロックとの間を接続する共有バスの配置と、当該共有バスの配線長に応じた段数の、前記共有バス上を流れる信号のタイミング調整を行うタイミング調整回路の配置とを決定する第4ステップと、
     を含む集積回路製造方法。
     
  7.  前記第1ステップにおいて配置を決定する機能ブロックは、データ転送制御回路を含む
     ことを特徴とする請求項6記載の集積回路製造方法。
     
  8.  前記第4ステップにおいて配置を決定する共有バスは、前記機能ブロックと前記IOブロックとをデイジーチェーン接続するように配置が決定される
     ことを特徴とする請求項7記載の集積回路製造方法。
     
  9.  前記第3ステップにおいて配置を決定する前記IOブロックは、データ転送制御回路を含む
     ことを特徴とする請求項6記載の集積回路製造方法。
     
  10.  前記第4ステップにおいて配置を決定する共有バスは、前記機能ブロックと前記IOブロックとをデイジーチェーン接続するように配置が決定される
     ことを特徴とする請求項9記載の集積回路製造方法。
     
  11.  前記第3ステップは、前記外部IO端子に近接する位置を前記IOブロックの配置位置として決定する
     ことを特徴とする請求項6記載の集積回路製造方法。
     
  12.  前記タイミング調整回路は、入力された信号について、当該信号を含む複数の信号が前記共有バスを流れることにより発生する当該複数の信号間の位相のずれを修正して出力する回路であり、
     前記第4ステップは、前記配線長に応じて前記信号に発生する遅延量に基づいて、前記タイミング調整回路を挿入する段数及びその配置位置を決定する
     ことを特徴とする請求項6記載の集積回路製造方法。
     
  13.  集積回路の製造に用いられるマスクパターンを作成するためのレイアウト設計ステップと、前記マスクパターンを用いて、半導体材料上に前記集積回路を作成する作成ステップとを含む集積回路製造方法であって、
     前記レイアウト設計ステップは、
     機能ブロックの配置を決定する第1ステップと、
     共有バスと、前記共有バス上を流れる信号のタイミング調整を行うタイミング調整回路との配置を決定する第2ステップと、
     前記集積回路と外部の機器とを接続するための複数の外部IO(Input-Output)端子の配置を決定する第3ステップと、
     前記第2ステップで決定された各外部IO端子の配置に応じて、前記外部IO端子のいずれかに接続される少なくとも1つのIO(Input-Output)ブロックの配置を決定する第4ステップと、
     前記機能ブロックと前記IOブロックとを前記共有バスに接続する第5ステップと、
     を含む集積回路製造方法。
     
  14.  前記第1ステップにおいて配置を決定する機能ブロックは、データ転送制御回路を含む
     ことを特徴とする請求項13記載の集積回路製造方法。
     
  15.  前記第5ステップにおいて、前記機能ブロックと前記IOブロックとは前記共有バスによりデイジーチェーン接続されるように配置が決定される
     ことを特徴とする請求項14記載の集積回路製造方法。
     
  16.  前記第4ステップにおいて配置を決定する前記IOブロックは、データ転送制御回路を含む
     ことを特徴とする請求項13記載の集積回路製造方法。
     
  17.  前記第5ステップにおいて、前記機能ブロックと前記IOブロックとは前記共有バスによりデイジーチェーン接続されるように配置が決定される
     ことを特徴とする請求項16記載の集積回路製造方法。
     
  18.  前記第4ステップは、前記外部IO端子に近接する位置を前記IOブロックの配置位置として決定する
     ことを特徴とする請求項13記載の集積回路製造方法。
     
  19.  前記タイミング調整回路は、入力された信号について、当該信号を含む複数の信号が前記共有バスを流れることにより発生する当該複数の信号間の位相のずれを修正して出力する回路であり、
     前記第2ステップは、前記配線長に応じて前記信号に発生する遅延量に基づいて、前記タイミング調整回路を挿入する段数及びその配置位置を決定する
     ことを特徴とする請求項13記載の集積回路製造方法。
     
  20.  機能ブロックと、
     複数の外部IO端子と、
     前記外部IO端子のいずれかに接続される少なくとも1つのIOブロックと、
     前記機能ブロックと前記複数のIOブロックとの間で共有される共有バスと、
     前記共有バスに挿入され、前記共有バス上を流れる信号のタイミング調整を行う1以上のタイミング調整回路と
     を備え、
     前記共有バスは、挿入されている前記タイミング調整回路により、複数のスライスに分割されており、
     前記機能ブロックと前記IOブロックとは前記複数のスライスの何れかに接続されている
     ことを特徴とする半導体集積回路。
     
  21.  前記機能ブロックは、データ転送制御回路を含む
     ことを特徴とする請求項20記載の半導体集積回路
     
  22.  前記共有バスは、
     前記データ転送制御回路から前記IOブロックへ向かう方向の信号を伝達するためのダウンリンクバスと、
     前記IOブロックから前記データ転送制御回路へ向かう方向の信号を伝達するためのアップリンクバスと
     を含んで構成される
     ことを特徴とする請求項21記載の半導体集積回路。
     
  23.  前記半導体集積回路は、更に、前記共有バスの一端に接続され、前記IOブロックから前記データ転送制御回路へ向かう方向のデータ転送に関するバス権要求信号を調停するアップリンク調停器を備え、
     前記アップリンク調停器は、複数のIOブロックからのバス権要求信号を調停し、前記複数のIOブロックのうち選択された1つのIOブロックにバス権承認信号を発行し、
     前記バス権承認信号は、前記選択された1つのIOブロックと前記アップリンク調停器間のスライスを介して遅延されて前記選択された1つのIOブロックに通知される
     ことを特徴とする請求項22記載の半導体集積回路。
     
  24.  前記アップリンク調停器は、複数のIOブロックが転送するデータそれぞれのバースト長の情報を備えており、
     前記アップリンク調停器が、バス権を承認された1つのIOブロックに対応したバースト長の情報に応じて、バス権要求信号の調停間隔を決定する
     ことを特徴とする請求項23記載の半導体集積回路。
     
  25.  前記半導体集積回路は、更に、前記データ転送制御回路に接続され、前記データ転送制御回路から前記IOブロックへ向かう方向のデータ転送に関するバス権要求信号を調停するダウンリンク調停器を備え、
     前記データ転送制御回路は、前記IOブロックが配置されたスライスまでの遅延に応じたタイミングで、前記共有バスにデータを出力する
     ことを特徴とする請求項22記載の半導体集積回路。
     
  26.  前記ダウンリンク調停器は、複数のチャネルが転送するデータそれぞれのバースト長の情報を備えており、
     前記ダウンリンク調停器が、バス権を承認された1つのチャネルに対応したバースト長の情報に応じて、バス権要求信号の調停間隔を決定する
     ことを特徴とする請求項25記載の半導体集積回路。
     
  27.  前記共有バスは、長バーストデバイス用のバスと、短バーストデバイス用のバスとを含み、
     前記データ転送制御回路と前記IOブロックとの間のデータ転送のバースト長に応じて、前記長バーストデバイス用のバスと、前記短バーストデバイス用のバスの何れかを用いてデータ転送を行う
     ことを特徴とする請求項20記載の半導体集積回路。
     
  28.  前記IOブロックは、データ転送制御回路を含む
     ことを特徴とする請求項20記載の半導体集積回路。
     
  29.  前記IOブロックは、前記外部IO端子に近接する位置に配置されている
     ことを特徴とする請求項20記載の集積回路製造方法。
PCT/JP2011/002985 2010-05-31 2011-05-27 集積回路製造方法及び半導体集積回路 WO2011152013A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US13/383,335 US8438523B2 (en) 2010-05-31 2011-05-27 Integrated circuit manufacturing method and semiconductor integrated circuit
JP2012518239A JP5834226B2 (ja) 2010-05-31 2011-05-27 集積回路製造方法及び半導体集積回路
CN201180003011.XA CN102473198B (zh) 2010-05-31 2011-05-27 集成电路制造方法及半导体集成电路

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010-125275 2010-05-31
JP2010125275 2010-05-31
JP2011119206 2011-05-27
JP2011-119206 2011-05-27

Publications (1)

Publication Number Publication Date
WO2011152013A1 true WO2011152013A1 (ja) 2011-12-08

Family

ID=45066406

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/002985 WO2011152013A1 (ja) 2010-05-31 2011-05-27 集積回路製造方法及び半導体集積回路

Country Status (4)

Country Link
US (1) US8438523B2 (ja)
JP (1) JP5834226B2 (ja)
CN (1) CN102473198B (ja)
WO (1) WO2011152013A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112037830A (zh) * 2014-09-05 2020-12-04 爱思开海力士有限公司 刷新控制电路以及使用该刷新控制电路的半导体器件

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9372818B2 (en) * 2013-03-15 2016-06-21 Atmel Corporation Proactive quality of service in multi-matrix system bus
US9471524B2 (en) 2013-12-09 2016-10-18 Atmel Corporation System bus transaction queue reallocation
US10649790B1 (en) 2017-08-24 2020-05-12 Amazon Technologies, Inc. Multithreaded rendering for virtualized graphics processing

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131414A (ja) * 1992-10-16 1994-05-13 Fujitsu Ltd 回路合成方式
JPH10293782A (ja) * 1997-03-13 1998-11-04 Internatl Business Mach Corp <Ibm> レイアウト・コンパイル方法および設計システム
JPH1173258A (ja) * 1997-08-28 1999-03-16 Toshiba Corp 低消費電力バス構造及びその制御方法、低消費電力バス構造の合成システム及びその合成方法、携帯情報機器
JP2003271688A (ja) * 2002-03-13 2003-09-26 Matsushita Electric Ind Co Ltd 半導体集積回路の設計方法
JP2005107556A (ja) * 2003-08-12 2005-04-21 Matsushita Electric Ind Co Ltd 半導体集積回路の配線処理方法
JP2007334692A (ja) * 2006-06-15 2007-12-27 Canon Inc データ処理装置及び方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07120514B2 (ja) 1990-02-26 1995-12-20 三菱電機株式会社 陰極線管
US5884100A (en) * 1996-06-06 1999-03-16 Sun Microsystems, Inc. Low-latency, high-throughput, integrated cache coherent I/O system for a single-chip processor
US6041061A (en) * 1997-01-31 2000-03-21 Macronix International Co., Ltd. Internal arbiter for a repeater in a computer network
JP3250542B2 (ja) 1999-03-23 2002-01-28 日本電気株式会社 Lsi設計方法
US6901562B2 (en) * 2000-01-18 2005-05-31 Cadence Design Systems, Inc. Adaptable circuit blocks for use in multi-block chip design
US6948138B1 (en) * 2002-11-04 2005-09-20 Cadence Design Systems, Inc. Method for positioning I/O buffers and pads in an IC layout
WO2009096141A1 (ja) * 2008-01-29 2009-08-06 Panasonic Corporation メモリアクセスタイミング調整装置及びメモリアクセスタイミング調整方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131414A (ja) * 1992-10-16 1994-05-13 Fujitsu Ltd 回路合成方式
JPH10293782A (ja) * 1997-03-13 1998-11-04 Internatl Business Mach Corp <Ibm> レイアウト・コンパイル方法および設計システム
JPH1173258A (ja) * 1997-08-28 1999-03-16 Toshiba Corp 低消費電力バス構造及びその制御方法、低消費電力バス構造の合成システム及びその合成方法、携帯情報機器
JP2003271688A (ja) * 2002-03-13 2003-09-26 Matsushita Electric Ind Co Ltd 半導体集積回路の設計方法
JP2005107556A (ja) * 2003-08-12 2005-04-21 Matsushita Electric Ind Co Ltd 半導体集積回路の配線処理方法
JP2007334692A (ja) * 2006-06-15 2007-12-27 Canon Inc データ処理装置及び方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112037830A (zh) * 2014-09-05 2020-12-04 爱思开海力士有限公司 刷新控制电路以及使用该刷新控制电路的半导体器件
CN112037830B (zh) * 2014-09-05 2024-01-02 爱思开海力士有限公司 刷新控制电路以及使用该刷新控制电路的半导体器件

Also Published As

Publication number Publication date
JPWO2011152013A1 (ja) 2013-07-25
CN102473198A (zh) 2012-05-23
JP5834226B2 (ja) 2015-12-16
US8438523B2 (en) 2013-05-07
US20120110535A1 (en) 2012-05-03
CN102473198B (zh) 2015-09-09

Similar Documents

Publication Publication Date Title
JP4857291B2 (ja) データアクセス方法およびマルチチップコントローラを備えるメモリシステム
US10495689B2 (en) Blade centric automatic test equipment system
US9255968B2 (en) Integrated circuit with a high-speed debug access port
CN103605632B (zh) 一种axi总线与ahb总线的通信方法与装置
JP5834226B2 (ja) 集積回路製造方法及び半導体集積回路
CN105988968B (zh) 半导体装置
US9003092B2 (en) System on chip bus system and a method of operating the bus system
CN113792520A (zh) 布局布线方法、装置、同步电路以及集成电路芯片
US20030101299A1 (en) Information processing apparatus having a bus using the protocol of the acknowledge type in the source clock synchronous system
JP2012181724A (ja) クロック同期化回路及び半導体集積回路
US7774529B2 (en) Bus communication apparatus that uses shared memory
US6665807B1 (en) Information processing apparatus
TW200912660A (en) Dual bus matrix architecture for micro-controllers
EP2006773A2 (en) Integrated circuit, and integrated circuit system
CN111506461A (zh) 一种基于总线、用于测试的反压模块及其实现方法
WO2008056468A1 (fr) Circuit intégré à semiconducteur et sa technique d&#39;implantation
JP2005012045A (ja) 半導体集積回路のレイアウト方法及び半導体集積回路
JP2006345011A (ja) 通信装置
KR102117479B1 (ko) 인터페이스 변환 장치
Guide Intel® Pentium® 4 Processor in 478-pin Package and Intel® 845E Chipset Platform for DDR
JP4874139B2 (ja) 半導体集積回路
JP2010033314A (ja) バスアクセス回路装置及びバスアクセス方法
Olney Introduction to Board Level Simulation and the PCB Design Process
KR20100024805A (ko) 고속 인터페이스 장치
Guide Mobile Intel® Pentium® 4 Processor-M and Intel® 845MP/845MZ Chipset Platform

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180003011.X

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 13383335

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2012518239

Country of ref document: JP

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11789427

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11789427

Country of ref document: EP

Kind code of ref document: A1