General-purpose input / output multiplexer and system-on-chip comprising same
Patent Information
- Application Number
- PCT/KR2026/002171
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-10-16
- Filing Date
- 2026-02-05
- Publication Date
- 2026-08-27
Smart Images

Figure KR2026002171_27082026_PF_FP_ABST
Abstract
Description
General-purpose I / O multiplexer and system-on-chip including the same
[0001] The present invention relates to a general-purpose input / output multiplexer (GPIO multiplexer) and a system-on-chip including the same. More specifically, the invention relates to a general-purpose input / output multiplexer and a system-on-chip including the same, which enables testing of a general-purpose input / output (GPIO) by controlling the transmission and reception of test signals between a plurality of IP blocks and a general-purpose input / output (GPIO) within the system-on-chip in a test mode.
[0002] The present invention is based on the research results of the research project "Development of DFT system design automation solution in System on chip" (Executing organization: Itda Semiconductor Co., Ltd., Research period: September 1, 2024 to August 31, 2027), which was conducted with support from Scale-up TIPS (Project No.: RS-2024-00507894), organized by the Ministry of SMEs and Startups of the Republic of Korea and managed by the Technology Promotion Agency for SMEs (TIPA).
[0003] A System-on-Chip (SoC) is a technology designed to implement complex electronic systems on a single chip by integrating various Intellectual Property (IP) blocks, such as a central processing unit (CPU), memory, digital signal processing units, and analog circuits, onto a single semiconductor chip.
[0004] Figure 1 is a block diagram illustrating a conventional system-on-chip (SoC).
[0005] The SoC includes a plurality of IP blocks (111, 112, 113), and each IP block (111, 112, 113) has one or more ports for transmitting and receiving signals with an external device. The SoC includes a General Purpose Input / Output (GPIO) (120) for interfacing with an external device. The General Purpose Input / Output (120) consists of tens to hundreds of GPIO pads, and each GPIO pad is connected to an external device of the SoC to transmit and receive data or to detect the state of the internal circuit of the SoC.
[0006] IP blocks (111, 112, 113) may include processor blocks, memory blocks, multimedia blocks, network blocks, logic blocks, security blocks, interface blocks, hard macro blocks, etc.
[0007] In the case of a typical SoC, since the number of IP block ports is much greater than the number of GPIO pads, the GPIO pads must be able to be selectively connected to multiple ports, and for this purpose, an input / output multiplexer (IOMUX) (130) may be used.
[0008] The input / output multiplexer (130) allows a single GPIO pad to be connected to any of the multiple ports according to a control signal, thereby enabling flexible reconfiguration of the connection between the ports inside the SoC and the GPIO pad. For example, the same GPIO pad may be configured to be connected to a port of a security block at a specific time to transmit encryption-related data, and at another time to be connected to a port of a sensor interface block to receive sensor data.
[0009] Meanwhile, SoCs must support a test mode to detect functional defects and verify circuit operation after manufacturing, and to this end, a Design-for-Test (DFT) structure must be incorporated. Conventional SoC designs often consider only I / O connection structures centered on functional operation, and since no separate test path is provided for GPIO pads, there has been a problem in that GPIO defects cannot be sufficiently verified during the manufacturing process or during the testing phase after mass production.
[0010] To solve these problems, recent I / O multiplexers are being designed to simultaneously perform the DFTMUX function for internal circuit observation and control in test mode as well as in function mode. However, if an I / O multiplexer is designed with a structure that supports both function mode and test mode in this way, the following problems may occur.
[0011] First, design complexity increases. Since multiple ports are connected to a single GPIO pad and separate path selection control must be configured for both functional and test modes, the path selection logic of the I / O multiplexer becomes very complex. Furthermore, as multiple control signals and data paths overlap, wiring complexity, area, and power consumption increase, making it difficult to analyze the timing and ensure the reliability of the entire SoC.
[0012] In addition, while the DFT structure itself is inserted by EDA (Electronic Design Automation) tools, the preceding Pre-DFT work must mostly be performed manually by DFT engineers. Generally, since functional designers and DFT designers design individually, design errors and omitted tests may occur due to a lack of information sharing between them regarding GPIO-related I / O multiplexer settings, port-pin mapping, and mode switching settings.
[0013] In addition, since defects such as short, open, and leakage between GPIO pads are difficult to detect with general logic tests alone, a direct control and observation path in test mode is required. However, in conventional structures, the test paths of GPIO pads are not clearly defined or are inconsistent, which leads to a problem where the overall test coverage is limited.
[0014] Furthermore, in the SoC design flow, DFT is often perceived as a separate area from functional design; consequently, functional designers design without considering DFT, and DFT designers attempt to insert DFT structures without a sufficient understanding of functional behavior. In particular, although the configuration for GPIO testing should be established during the Pre-DFT phase, it tends to remain a gray zone due to unclear responsibility.
[0015] The objective of the present invention is to provide a general-purpose input / output multiplexer and a system-on-chip including the same, which configures GPIO pads to be hardware-connectable with a plurality of IP block ports and enables flexible control of a test path through a controller based on the IEEE 1687 standard.
[0016] Another objective of the present invention is to provide a general-purpose I / O multiplexer and a system-on-chip including the same, which enables smooth transmission and reception of test signals between a plurality of IP blocks and general-purpose I / O (GPIO) by configuring all hardware-possible port connection paths and then selectively controlling the paths according to a test mode.
[0017] Another objective of the present invention is to provide a general-purpose I / O multiplexer and a system-on-chip including the same, which allows a single GPIO pad to be selectively connected to a port of a plurality of IP blocks according to a test mode type, thereby enabling flexible configuration of input / output signal paths for various test modes.
[0018] Another objective of the present invention is to provide a general-purpose input / output multiplexer and a system-on-chip including the same, which can expand the degree of design freedom in a test mode and improve configuration flexibility by allowing one IP block port to selectively connect to any one of a plurality of GPIO pads in a specific test mode type.
[0019] Another objective of the present invention is to provide a general-purpose input / output multiplexer and a system-on-chip including the same, which can prevent signal interference, minimize chip area waste, ensure flexibility in testing and debugging, and increase chip resource utilization by dynamically controlling the connection between GPIO pads and IP blocks according to test scenarios.
[0020] A general-purpose input / output multiplexer according to one embodiment of the present invention includes a port connection unit configured to include a first input / output path for connecting a first pad test input / output of a first GPIO pad among a plurality of GPIO pads constituting a pad group to a first IP block port and a second input / output path for connecting the first pad test input / output to a second IP block port, and a test controller configured to activate the first input / output path in a first test mode type and activate the second input / output path in a second test mode type.
[0021] The port connection section is configured to further include a third input / output path for connecting the first pad test input / output to the third IP block port, and the test controller is configured to enable the third input / output path in the third test mode type.
[0022] The general-purpose input / output multiplexer further includes a second port connection part configured to include a fourth input / output path for connecting the second pad test input / output of the second GPIO pad among a plurality of GPIO pads constituting a pad group to a fourth IP block port and a fifth input / output path for connecting the second pad test input / output to a fifth IP block port, and the test controller is configured to activate the fourth input / output path in a first test mode type and activate the fifth input / output path in a second test mode type.
[0023] At least one of the first input / output path or the second input / output path includes an output path for transmitting a pad test output input from a GPIO pad to an IP block port and an input path for transmitting a pad test input input from an IP block port to a GPIO pad, and the test controller selectively enables one of the output path or the input path according to the test mode type.
[0024] The test controller includes a controller based on the IEEE 1687 standard (IJTAG: Internal Joint Test Action Group).
[0025] The test controller includes a test mode type register that enables and outputs a port select signal to at least one of the input path of a first input / output path, the output path of a first input / output path, the input path of a second input / output path, or the output path of a second input / output path, depending on the test mode type.
[0026] The test controller sets the test mode type register through the IJTAG interface.
[0027] The port connection unit includes a first AND operator configured such that a first pad test output from a first GPIO pad and a first port selection signal from a test mode type register are each connected to an input terminal and a first IP block port is connected to an output terminal; a second AND operator configured such that a first pad test output and a second port selection signal from a test mode type register are each connected to an input terminal and a second IP block port is connected to an output terminal; a third AND operator configured such that a first IP block port and a third port selection signal from a test mode type register are each connected to an input terminal and a first GPIO pad is connected to an output terminal; and a fourth AND operator configured such that a second IP block port and a fourth port selection signal from a test mode type register are each connected to an input terminal and a first GPIO pad is connected to an output terminal.
[0028] A general-purpose input / output multiplexer according to another embodiment of the present invention includes: a first pad mode selection unit configured to be connected to a first GPIO pad and receive a test mode signal from a test controller to selectively connect the first GPIO pad to at least one of a first mapping group or a second mapping group; a second pad mode selection unit configured to be connected to a second GPIO pad and receive a test mode signal to selectively connect the second GPIO pad to at least one of a first mapping group or a third mapping group; and a first mapping group configured to receive a map selection signal from a test controller to switch the connection relationship between each of the first GPIO pad and the second GPIO pad and between a first port and a second port.
[0029] The first mapping group includes a 1-1 pad-port map connection unit configured to operate when a first map is selected and to connect a first GPIO pad to a first port and a second GPIO pad to a second port, and a 1-2 pad-port map connection unit configured to operate when a second map is selected and to connect a first GPIO pad to a second port and a second GPIO pad to a first port.
[0030] The 1-1 pad-port map connection includes a 11th output buffer connected between the 1st GPIO pad and the 1st port in the pad test output path of the 1st GPIO pad, a 11th input buffer connected between the 1st GPIO pad and the 1st port in the pad test input path of the 1st GPIO pad, a 12th output buffer connected between the 2nd GPIO pad and the 2nd port in the pad test output path of the 2nd GPIO pad, and a 12th input buffer connected between the 2nd GPIO pad and the 2nd port in the pad test input path of the 2nd GPIO pad.
[0031] Only one of the 11th input buffer and the 11th output buffer is enabled and the other is disabled, and only one of the 12th input buffer and the 12th output buffer is enabled and the other is disabled.
[0032] The first-2 pad-port map connection includes a 21st output buffer connected between the first GPIO pad and the second port in the pad test output path of the first GPIO pad, a 21st input buffer connected between the first GPIO pad and the second port in the pad test input path of the first GPIO pad, a 22nd output buffer connected between the second GPIO pad and the first port in the pad test output path of the second GPIO pad, and a 22nd input buffer connected between the second GPIO pad and the first port in the pad test input path of the second GPIO pad.
[0033] Only one of the 21st input buffer and the 21st output buffer is enabled and the other is disabled, and only one of the 22nd input buffer and the 22nd output buffer is enabled and the other is disabled.
[0034] The input terminal of the disabled input buffer is fixed at level 0, and the output terminal of the disabled output buffer is opened to high impedance.
[0035] The test controller includes a controller based on the IEEE 1687 standard (IJTAG: Internal Joint Test Action Group).
[0036] The test controller sets the mode & map select register through the IJTAG interface.
[0037] The Mode & Map Select Register is configured to output a test mode signal and a map select signal according to the shift input value.
[0038] A system-on-chip according to one embodiment of the present invention includes a first GPIO multiplexer configured such that at least one GPIO pad among a plurality of GPIO pads constituting a first pad group is connected to at least one port of a first block group in at least one test mode type, and a second GPIO multiplexer configured such that at least one GPIO pad among a plurality of GPIO pads constituting a first pad group is connected to at least one port of a second block group in at least one test mode type.
[0039] At least one GPIO multiplexer among the first GPIO multiplexer or the second GPIO multiplexer comprises a port connection portion configured to include a first input / output path for connecting a first pad test input / output of a first GPIO pad among a plurality of GPIO pads constituting a pad group to a first IP block port and a second input / output path for connecting the first pad test input / output to a second IP block port, and a test controller configured to activate the first input / output path in a first test mode type and activate the second input / output path in a second test mode type.
[0040] At least one GPIO multiplexer among the first GPIO multiplexer or the second GPIO multiplexer comprises: a first pad mode selector configured to be connected to the first GPIO pad and receive a test mode signal from a test controller to selectively connect the first GPIO pad to at least one of the first mapping group or the second mapping group; a second pad mode selector configured to be connected to the second GPIO pad and receive a test mode signal to selectively connect the second GPIO pad to at least one of the first mapping group or the third mapping group; and a first mapping group configured to receive a map selector signal from a test controller to switch the connection relationship between the first GPIO pad and the second GPIO pad, respectively, and between the first port and the second port.
[0041] According to the present invention, GPIO pads are configured to be pre-connected to a plurality of IP block ports in hardware, and by dynamically controlling the test path through a test controller based on the IEEE 1687 standard (IJTAG), flexible signal path configuration in various test modes becomes possible, and accordingly, a designer or test engineer can efficiently configure an internal test structure without external pin relocation or physical rewiring.
[0042] According to the present invention, all possible port connection paths are configured to be connected in advance, and one port connection path is selectively activated according to the test mode type, thereby allowing the transmission and reception of test signals between a GPIO pad and a plurality of IP blocks to be performed stably without conflict.
[0043] According to the present invention, through a structure in which a single GPIO pad can be selectively connected to a plurality of IP block ports, the input / output direction and signal flow can be flexibly set for each test mode, thereby enabling various test modes (e.g., Scan, MBIST, LBIST, JTAG, IJTAG, etc.) to be efficiently performed with a single GPIO resource, reducing the complexity of the internal test path design of the SoC, and improving reusability and scalability.
[0044] According to the present invention, by allowing one IP block port to be selectively connected to any one of a plurality of GPIO pads in a specific test mode type, the scalability of test scenarios, design freedom, and test flexibility can be improved.
[0045] According to the present invention, since port connections are dynamically controlled according to test scenarios, specific paths are activated only when necessary to prevent signal interference and minimize the waste of unnecessary hardware resources. Consequently, this is advantageous for reducing chip area and low-power design, and can improve the efficiency of testing and debugging the entire SoC.
[0046] The effects of the present invention are not limited to those mentioned above, and other unmentioned effects will be clearly understood by a person skilled in the art to which the present invention pertains (referred to as "person skilled in the art") from the description in the claims.
[0047] Embodiments of the present invention will be described with reference to the accompanying drawings described below, wherein similar reference numerals indicate similar elements, but are not limited thereto.
[0048] Figure 1 is a block diagram illustrating a conventional system-on-chip (SoC).
[0049] FIG. 2 is a block diagram illustrating a system-on-chip to which a general-purpose input / output test system according to the present invention is applied.
[0050] FIG. 3 is a configuration diagram of a pad group controller according to one embodiment of the present invention.
[0051] FIG. 4 is a detailed circuit diagram of a pad interface according to the present invention.
[0052] FIG. 5 is a configuration diagram of a pad group controller according to another embodiment of the present invention.
[0053] FIG. 6 is a diagram of an SoC configuration including a GPIO router according to the present invention.
[0054] FIG. 7 is a configuration diagram of a GPIO router according to the present invention.
[0055] FIG. 8 is a detailed circuit diagram of a GPIO splitter cell according to the present invention.
[0056] FIG. 9 is a configuration diagram illustrating a GPIO multiplexer according to one embodiment of the present invention.
[0057] FIG. 10 is a diagram briefly showing the connection status of the GPIO multiplexer illustrated in FIG. 9.
[0058] FIG. 11 is a configuration diagram illustrating a GPIO multiplexer according to another embodiment of the present invention.
[0059] FIG. 12 is an example diagram of the first internal circuit of the first-1 pad-port map connection part of FIG. 11.
[0060] FIG. 13 is an example diagram of the first internal circuit of the first-2 pad-port map connection part of FIG. 11.
[0061] FIG. 14 is an example diagram of the second internal circuit of the first-1 pad-port map connection part of FIG. 11.
[0062] FIG. 15 is an example diagram of the second internal circuit of the first-second pad-port map connection part of FIG. 11.
[0063] FIG. 16 is an example diagram of the third internal circuit of the first-1 pad-port map connection part of FIG. 11.
[0064] FIG. 17 is an example diagram of the third internal circuit of the first-second pad-port map connection of FIG. 11.
[0065] FIG. 18 is a configuration diagram illustrating a hard macro interface according to the present invention.
[0066] [Explanation of the symbol]
[0067] 211, 212, 213: Pad group
[0068] 221, 222, 223, 224, 225, 226: IP Block
[0069] 231, 232, 233: Pad group controllers
[0070] 241, 242, 244, 246: Hard Macro Interface
[0071] 251, 252, 253: GPIO multiplexer
[0072] 261, 262, 263, 264, 265, 266, 267: GPIO Router
[0073] Hereinafter, specific details for implementing the present invention will be described in detail with reference to the attached drawings. However, in the following description, specific descriptions regarding widely known functions or configurations will be omitted if there is a risk of unnecessarily obscuring the essence of the present invention.
[0074] In the attached drawings, identical or corresponding components are assigned the same reference numerals. Additionally, in the description of the following embodiments, the description of identical or corresponding components may be omitted. However, even if a description of a component is omitted, it is not intended that such component is not included in any embodiment.
[0075] The advantages and features of the embodiments disclosed in this specification, and the methods for achieving them, will become clear by referring to the embodiments described below in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below but may be implemented in various different forms, and these embodiments are provided merely to fully inform a person skilled in the art of the scope of the invention.
[0076] Unless otherwise defined, all terms used in this specification (including technical and scientific terms) may be used in a meaning that is commonly understood by those skilled in the art to which the present invention pertains. Additionally, terms defined in commonly used dictionaries are not to be interpreted ideally or excessively unless explicitly and specifically defined otherwise.
[0077] For example, the term “technique” may refer to systems, methods, computer-readable instructions, modules, algorithms, hardware logic, and / or operations throughout the document as permitted by the context described above.
[0078] In this specification, singular expressions include plural expressions unless the context clearly specifies them as singular. Additionally, plural expressions include singular expressions unless the context clearly specifies them as plural. Throughout the specification, when a part is described as including a certain component, this means that, unless specifically stated otherwise, it does not exclude other components but may include additional components.
[0079] In the present invention, terms such as 'comprising', 'comprising', etc. may indicate the presence of features, steps, actions, elements and / or components, but do not exclude the addition of one or more other functions, steps, actions, elements, components and / or combinations thereof.
[0080] In the present invention, where a specific component is described as being 'combined,' 'combined,' 'connected,' 'associated,' or 'reacted' to any other component, the specific component may be directly combined, combined, connected, and / or associated with, or reacted to the other component, but is not limited thereto. For example, one or more intermediate components may exist between the specific component and the other component. Additionally, in the present invention, "and / or" may include each of the one or more listed items or a combination of at least some of the one or more items.
[0081] In the present invention, terms such as 'first', 'second', etc., are used to distinguish a specific component from another component, and the components described above are not limited by these terms. For example, the 'first' component may be used to refer to an element of the same or similar form as the 'second' component.
[0082] General-purpose I / O test system
[0083] FIG. 2 is a block diagram illustrating a system-on-chip to which a general-purpose input / output test system according to the present invention is applied.
[0084] A system-on-chip may be composed of a general-purpose input / output (GPIO) consisting of multiple GPIO pads and multiple IP blocks. The multiple GPIO pads constituting the general-purpose input / output may be divided into at least two pad groups (211, 212, 213). Each pad group (211, 212, 213) may be grouped based on placement location and may include one or more GPIO pads. Each GPIO pad may belong to at least one pad group (211, 212, 213), and one GPIO pad may constitute one pad group.
[0085] FIG. 2 illustrates a system-on-chip composed of three pad groups (211, 212, 213) and six IP blocks (221, 222, 223, 224, 225, 226), but the number of pad groups and IP blocks is not limited thereto. Each pad group (211, 212, 213) may consist of the same number of GPIO pad(s) or different number of GPIO pad(s). For example, the first pad group (211) may consist of n1 GPIO pads, the second pad group (212) may consist of n2 GPIO pads, and the third pad group (213) may consist of n3 GPIO pads. Here, n1, n2, and n3 may be the same natural number or different natural numbers.
[0086] Each GPIO pad can be connected to a different IP block for each test mode and may operate as an input or an output. To this end, pad operation control is required to control the operation of the GPIO pad. Each GPIO pad may be provided with a pad input that is input from within the SoC to the GPIO pad and a pad output that is output from the GPIO pad to within the SoC, along with multiple pad operation control signals. The pad operation control signals may include a drive strength (DS) signal to determine the output drive strength of the pad, a pull enable (PE) signal to determine whether the pad pull circuit is enabled, a pull-up / down (PU) signal to determine one of pull-up and pull-down in the enabled state of the pad pull circuit, an input enable (IE) signal to determine the pad operation as an input, and an output enable (OE) signal to determine the pad operation as an output. The drive strength (DS) signal, pull enable (PE) signal, pull up / down (PU) signal, input enable (IE) signal, and output enable (OE) signal are each independent pad operation control signals, and can be collectively referred to as pad operation control signals.
[0087] Pad inputs include pad function inputs input to GPIO pads in function mode and pad test inputs input to GPIO pads in test mode. Pad outputs include pad function outputs output from GPIO pads in function mode and pad test outputs output from GPIO pads in test mode.
[0088] IP blocks (221, 222, 223, 224, 225, 226) may include processor blocks, memory blocks, multimedia blocks, network blocks, logic blocks, security blocks, interface blocks, hard macro blocks, etc. IP blocks that are not hard macro blocks may be collectively referred to as non-hard macro blocks. Non-hard macro blocks may include processor blocks, memory blocks, multimedia blocks, network blocks, logic blocks, security blocks, interface blocks, etc.
[0089] The six IP blocks (221, 222, 223, 224, 225, 226) of FIG. 2 can be divided into multiple block groups. Multiple IP blocks constituting the SoC can be distributed and arranged within the SoC, and multiple IP blocks can be grouped into block groups based on their placement locations. In FIG. 2, it is assumed that the first IP block (221), the second IP block (222), and the third IP block (223) are grouped into the first block group, the fourth IP block (224) and the fifth IP block (225) are grouped into the second block group, and the sixth IP block (226) is grouped into the third block group. The number of IP blocks constituting each block group is not limited to a specific number, and the number of block group(s) and the IP block(s) belonging to each block group can be freely determined and changed by the SoC designer.
[0090] In FIG. 2, the first IP block (221), the second IP block (222), the fourth IP block (224), and the sixth IP block (226) may be hard macro blocks, and the third IP block (223) and the fifth IP block (225) may be non-hard macro blocks. The number of hard macro blocks and the number of non-hard macro blocks constituting the SoC can be freely determined and changed by the SoC designer.
[0091] A general-purpose input / output test system includes a first pad group controller (231) that performs pad function input / output and pad function operation control in function mode and first pad test input / output and pad test operation control for each of a plurality of GPIO pads constituting a first pad group (211), and a first hard macro interface (241) that transmits and receives port input / output in test mode for each of a plurality of ports constituting a first IP block (221). The port input / output may include at least one of the first pad test input / output, function port input / output, and register test data.
[0092] The general-purpose input / output test system may further include a second pad group controller (232) and a third pad group controller (233). The second pad group controller (232) performs pad function input / output and pad function operation control in function mode for each of the plurality of GPIO pads constituting the second pad group (212), and performs second pad test input / output and pad test operation control in test mode. The third pad group controller (233) performs pad function input / output and pad function operation control in function mode for each of the plurality of GPIO pads constituting the third pad group (213), and performs third pad test input / output and pad test operation control in test mode. Additional pad group controllers may be included depending on the number of pad groups of the general-purpose input / output (GPIO), and it is preferable that the pad groups and pad group controllers be configured to correspond one-to-one.
[0093] The first hard macro interface (241) may receive at least one of the first pad test input / output from the first pad group controller (231) or the second pad test input / output from the second pad group controller (232). The first hard macro interface (241) may transmit and receive port input / output to each of the plurality of ports constituting the first IP block (221) in test mode. This port input / output may include at least one of the pad test input / output, function port input / output, and register test data transmitted from the pad group controller.
[0094] The general-purpose input / output test system may further include a second hard macro interface (242) that performs port input / output for each of the plurality of ports constituting the second IP block (222) in test mode, a fourth hard macro interface (244) that performs port input / output for each of the plurality of ports constituting the fourth IP block (224), and a sixth hard macro interface (246) that performs port input / output for each of the plurality of ports constituting the sixth IP block (226).
[0095] In test mode, the second hard macro interface (242) can receive pad test input / output from at least one of the first and second pad group controllers (231, 232). The fourth hard macro interface (244) can receive pad test input / output from at least one of the first, second, and third pad group controllers (231, 232, 233). The sixth hard macro interface (246) can receive pad test input / output from at least one of the second and third pad group controllers (232, 233).
[0096] A general-purpose I / O test system may further include GPIO multiplexers (MUX) (251, 252, 253) placed in each block group. The SoC of the example in FIG. 2 consists of three block groups, and thus includes three GPIO multiplexers (251, 252, 253). Each GPIO multiplexer (251, 252, 253) supports multiple I / O so that GPIO pads of one or more pad groups can be connected to one or more IP blocks.
[0097] The first pad test input / output of the first pad group controller (231) and the second pad test input / output of the second pad group controller (232) are connected to the input side of the first GPIO multiplexer (251). The first hard macro interface (241), the second hard macro interface (242), and the third IP block (223) may be optionally connected to the output side of the first GPIO multiplexer (251). Through the first GPIO multiplexer (251), the GPIO pads of the first pad group (211) and the second pad group (212) may be physically connected to the corresponding ports of the first IP block (221), the second IP block (222), and the third IP block (223), respectively.
[0098] The first pad test input / output of the first pad group controller (231), the second pad test input / output of the second pad group controller (232), and the third pad test input / output of the third pad group controller (233) are connected to the input side of the second GPIO multiplexer (252). The fourth hard macro interface (244) and the fifth IP block (225) may be optionally connected to the output side of the second GPIO multiplexer (252). Through the second GPIO multiplexer (252), the GPIO pads of the first pad group (211), the second pad group (212), and the third pad group (213) may be physically connected to the corresponding ports of the fourth IP block (224) and the fifth IP block (225), respectively.
[0099] The second pad test input / output of the second pad group controller (232) and the third pad test input / output of the third pad group controller (233) are connected to the input side of the third GPIO multiplexer (253). The sixth hard macro interface may be connected to the output side of the third GPIO multiplexer (253). Through the third GPIO multiplexer (253), the GPIO pads of the second pad group (212) and the third pad group (213) may each be physically connected to the corresponding port of the sixth IP block (226).
[0100] The first IP block (221), the second IP block (222), the fourth IP block (224), and the sixth IP block (226), which are hard macro blocks, can be connected to the first GPIO multiplexer (251), the second GPIO multiplexer (252), and the third GPIO multiplexer (253) through the first hard macro interface (241), the second hard macro interface (242), the fourth hard macro interface (244), and the sixth hard macro interface (246), respectively. Meanwhile, the third IP block (223) and the fifth IP block (225), which are non-hard macro blocks, can be connected to the first GPIO multiplexer (251) and the second GPIO multiplexer (252), respectively, without mediating a hard macro interface.
[0101] A general-purpose input / output test system may further include multiple GPIO routers. A first-1 GPIO router (261) distributes the first pad test input / output of the first pad group controller (231) to the first GPIO multiplexer (251). A first-2 GPIO router (262) receives the first pad test input / output of the first pad group controller (231) through the first-1 GPIO router (261) and distributes it to the second GPIO multiplexer (252). A second-1 GPIO router (263) distributes the second pad test input / output of the second pad group controller (232) to the first GPIO multiplexer (251). A second-2 GPIO router (264) receives the second pad test input / output of the second pad group controller (232) through the second-1 GPIO router (263) and distributes it to the second GPIO multiplexer (252). The 2-3 GPIO router (265) receives the 2nd pad test input / output of the 2nd pad group controller (232) through the 2-2 GPIO router (264) and distributes it to the 3rd GPIO multiplexer (253). The 3-1 GPIO router (266) distributes the 3rd pad test input / output of the 3rd pad group controller (233) to the 2nd GPIO multiplexer (252). The 3-2 GPIO router (267) receives the 3rd pad test input / output of the 3rd pad group controller (233) through the 3-1 GPIO router (266) and distributes it to the 3rd GPIO multiplexer (253).
[0102] One example of a pad group controller
[0103] FIG. 3 is a configuration diagram of a pad group controller according to one embodiment of the present invention.
[0104] The pad group controller of FIG. 3 may be any one of the first pad group controller (231), the second pad group controller (232), or the third pad group controller (233) of FIG. 2.
[0105] A pad group controller includes one or more pad interfaces (310, 320) configured to correspond to each GPIO pad (301, 302), and a test controller (330) that outputs a test mode signal for determining an operation mode to the pad interfaces (310, 320) and pad test operation control signals for controlling pad operation in the test mode. GPIO pads (301, 302) connected to a single pad group controller may form the same pad group. It is preferable that the number of pad interfaces included in the pad group controller be equal to the number of GPIO pads forming the pad group. The operation modes of the pad interfaces may include a test mode and a function mode.
[0106] Each corresponding GPIO pad (301, 302) is connected to the pad interface (310, 320). The pad interface (310, 320) provides pad operation control (PAD CTRL) signals to the GPIO pad (301, 302), receives a pad output (PAD OUT) signal from the GPIO pad (301, 302), and provides a pad input (PAD IN) signal to the GPIO pad (301, 302). Pad operation control signals may include a drive strength (DS) signal for determining the output drive strength of the pad, a pull enable (PE) signal for determining whether the pad pull circuit is activated, a pull-up / down (PU) signal for determining one of pull-up and pull-down in the activated state of the pad pull circuit, an input enable (IE) signal for determining the pad operation as an input, and an output enable (OE) signal for determining the pad operation as an output.
[0107] A GPIO function controller (304) and a GPIO router (305) may be connected to the pad interface (310, 320). The operation mode of the pad interface (310, 320) is determined by the control of the test controller (330), and the operation mode may include a function mode or a test mode. The GPIO router (305) may be any one of the first-1 GPIO router (261), first-2 GPIO router (262), second-1 GPIO router (263), second-2 GPIO router (264), second-3 GPIO router (265), third-1 GPIO router (266), or third-2 GPIO router (267) of FIG. 2.
[0108] In function mode, the GPIO function controller (304) outputs pad function input (PAD FUNC IN) signals and pad function operation control (PAD FUNC CTRL) signals to pad interfaces (310, 320) and receives pad function output (PAD FUNC OUT) signals from each pad interface (310, 320). In test mode, the GPIO router (305) outputs pad test input (PAD TEST IN) signals to each pad interface (310, 320) and receives pad test output (PAD TEST OUT) signals from each pad interface (310, 320).
[0109] A first pad interface (310) can be connected to the first GPIO pad (301), and an n-th pad interface (320) can be connected to the n-th GPIO pad (302). A pad group consists of a total of n GPIO pads, and a pad interface corresponding one-to-one can be connected to each GPIO pad.
[0110] The first pad interface (310) and the nth pad interface (320) receive a TEST MODE signal from the test controller (330) indicating whether the test mode is enabled or disabled. When the test mode is disabled, each pad interface (310, 320) operates in function mode, and when the test mode is enabled, each pad interface (310, 320) operates in test mode.
[0111] The signal flow when the first pad interface (310) operates in function mode is as follows. The GPIO function controller (304) outputs pad function operation control (PAD FUNC CTRL 1) signals to the first pad interface (310) to control the operation of the first GPIO pad (301), and the first pad interface (310) provides pad operation control (PAD CTRL 1) signals to the first GPIO pad (301) based on the pad function operation control (PAD FUNC CTRL 1) signals. In addition, a pad output (PAD OUT 1) signal generated from the first GPIO pad (301) is received by the first pad interface (310), and the first pad interface (310) outputs a pad function output (PAD FUNC OUT 1) signal to the GPIO function controller (304) based on the pad output (PAD OUT 1) signal. Additionally, a pad function input (PAD FUNC IN 1) signal generated by the GPIO function controller (304) is input to the first pad interface (310), and the first pad interface (310) outputs a pad input (PAD IN 1) signal to the first GPIO pad (301) based on the pad function input (PAD FUNC IN 1) signal.
[0112] Meanwhile, the signal flow when the first pad interface (310) operates in test mode is as follows. The test controller (330) outputs pad test operation control (PAD TEST CTRL 1) signals to the first pad interface (310) to control the operation of the first GPIO pad (301), and the first pad interface (310) outputs pad operation control (PAD CTRL 1) signals to the first GPIO pad (301) based on the pad test operation control (PAD TEST CTRL 1) signals. In addition, a pad output (PAD OUT 1) signal generated from the first GPIO pad (301) is input to the first pad interface (310), and the first pad interface (310) outputs a pad test output (PAD TEST OUT 1) signal to the GPIO router (305) based on the pad output (PAD OUT 1) signal. Additionally, a pad test input (PAD TEST IN 1) signal input from the GPIO router (305) is input to the first pad interface (310), and the first pad interface (310) outputs a pad input (PAD IN 1) signal to the first GPIO pad (301) based on this pad test input (PAD TEST IN 1) signal.
[0113] Similarly, the signal flow when the n-th pad interface (320) operates in function mode is as follows. The GPIO function controller (304) outputs pad function operation control (PAD FUNC CTRL n) signals for controlling the operation of the n-th GPIO pad (302) to the n-th pad interface (320), and the n-th pad interface (320) outputs pad operation control (PAD CTRL n) signals to the n-th GPIO pad (302) based on the pad function operation control (PAD FUNC CTRL n) signals. Additionally, a pad output (PAD OUT n) signal is input from the n-th GPIO pad (302) to the n-th pad interface (320), and the n-th pad interface (320) outputs a pad function output (PAD FUNC OUT n) signal to the GPIO function controller (304) based on the pad output (PAD OUT n) signal. Additionally, a pad function input (PAD FUNC IN n) signal input from the GPIO function controller (304) is input to the n-th pad interface (320), and the n-th pad interface (320) outputs a pad input (PAD IN n) signal to the n-th GPIO pad (302) based on this pad function input (PAD FUNC IN n) signal.
[0114] Meanwhile, the signal flow when the n-th pad interface (320) operates in test mode is as follows. The test controller (330) outputs pad test operation control (PAD TEST CTRL n) signals to the n-th pad interface (320) to control the operation of the n-th GPIO pad (302), and the n-th pad interface (320) outputs pad operation control (PAD CTRL n) signals to the n-th GPIO pad (302) based on the pad test operation control (PAD TEST CTRL n) signals. In addition, a pad output (PAD OUT n) signal is input from the n-th GPIO pad (302) to the n-th pad interface (320), and the n-th pad interface (320) outputs a pad test output (PAD TEST OUT n) signal to the GPIO router (305) based on the pad output (PAD OUT n) signal. Additionally, a pad test input (PAD TEST IN n) signal input from the GPIO router (305) is transmitted to the n-th pad interface (320), and the n-th pad interface (320) outputs a pad input (PAD IN n) signal to the n-th GPIO pad (302) based on the pad test input (PAD TEST IN n) signal.
[0115] The test controller (330) may be a controller based on the IEEE 1687 standard (IJTAG: Internal Joint Test Action Group). The test controller (330) can set the test mode register (331) and the test operation control register (332) through the IJTAG interface. Each register (331, 332) may be configured as a test data register (TDR) that operates in a shift manner.
[0116] The test mode register (331) may be composed of a single flip-flop and outputs a test mode signal that determines whether the first pad interface (310) and the n-th pad interface (320) will operate in test mode or function mode. This test mode signal may be a 1-bit control signal indicating the activation or deactivation of the test mode.
[0117] The test operation control register (332) may be composed of multiple flip-flops and may output multiple pad test operation control (PAD TEST CTRL 1, PAD TEST CTRL n) signals corresponding to each pad interface. For example, if the pad test operation control (PAD TEST CTRL 1) signals for controlling the operation of the first GPIO pad are composed of a total of five control signals, including drive strength (DS), pull enable (PE), pull up / down (PU), input enable (IE), and output enable (OE), the test operation control register (332) may output control signals that determine the value or activation status of each control signal. At this time, the test operation control register (332) may include flip-flops corresponding to each control signal for the first GPIO pad. Two or more flip-flops may be used to determine the value of a single control signal. For example, since a control value of 2 bits or more may be required for the drive strength (DS), multiple flip-flops may be used to configure the drive strength control signal. Additionally, the test operation control register (332) may additionally include flip-flops that determine the value or activation status of the pad test operation control signals for the nth GPIO pad.
[0118] FIG. 4 is a detailed circuit diagram of a pad interface according to one embodiment of the present invention.
[0119] The pad interface may be either the first pad interface (310) or the nth pad interface (320) of FIG. 3.
[0120] The pad interface is configured to operate in either functional mode or test mode depending on the state of the test mode signal, and includes various logic circuits for the selective processing of pad outputs, pad inputs, and pad operation control signals.
[0121] The pad interface comprises a first AND operator (411) that performs a logical AND operation between the inverted signal of the TEST MODE signal and the PAD OUT signal to output a PAD FUNC OUT signal, a second AND operator (412) that performs a logical AND operation between the TEST MODE signal and the PAD OUT signal to output a PAD TEST OUT signal, an inverter (413) that inverts the TEST MODE signal and provides it to the first AND operator (411), a pad input multiplexer (414) that receives control from the TEST MODE signal and selects between the PAD FUNC IN signal and the PAD TEST IN signal to output a PAD IN signal, and for each pad operation control signal, receives control from the TEST MODE signal and selects between the PAD FUNC CTRL signal and the PAD TEST CTRL signal to pad It includes one or more operation control multiplexers (415, 416) that output operation control signals. It is preferable to include as many operation control multiplexers (415, 416) as there are pad operation control signals.
[0122] First, the pad output path is described. The pad interface includes a first AND operator (411). The first AND operator (411) performs an AND operation between the inverted signal of the TEST MODE signal and the PAD OUT signal to generate a PAD FUNC OUT signal when operating in function mode. To this end, the TEST MODE signal is inverted by an inverter (413) and then input to the first AND operator (411). Therefore, the PAD OUT signal is transmitted to the PAD FUNC OUT only when the TEST MODE signal is deactivated (i.e., in function mode).
[0123] Additionally, the pad interface includes a second AND operator (412). The second AND operator (412) performs an AND operation between a TEST MODE signal and a PAD OUT signal to generate a PAD TEST OUT signal when the TEST MODE is activated.
[0124] Next, the pad input path is described. The pad interface includes a pad input multiplexer (414). The pad input multiplexer (414) selects either a pad function input (PAD FUNC IN) signal or a pad test input (PAD TEST IN) signal and outputs it as a pad input (PAD IN) signal according to the control of the test mode (TEST MODE) signal. As a result, the pad input path can be automatically switched according to the operating mode.
[0125] Additionally, the pad interface includes a motion control multiplexer (415, 416) for generating a pad motion control signal. The motion control multiplexer (415, 416) uses a TEST MODE signal as a control signal to select one of a pad function operation control (PAD FUNC CTRL) signal and a pad test operation control (PAD TEST CTRL) signal, and outputs the selected signal as a pad operation control (PAD CTRL) signal.
[0126] Here, the pad operation control signal includes a drive strength (DS), pull enable (PE), pull up / down (PU), input enable (IE), and output enable (OE), and the operation control multiplexer (415, 416) can be configured to correspond to each pad operation control signal.
[0127] The operation control multiplexer (415) receives control from the test mode signal for the driving intensity (DS) signal and selects between the pad function operation control (PAD FUNC CTRL_DS) signal and the pad test operation control (PAD TEST CTRL_DS) signal to output as the pad operation control (PAD CTRL_DS) signal. Additionally, the operation control multiplexer (416) receives control from the test mode signal for the output enable (OE) signal and selects between the pad function operation control (PAD FUNC CTRL_OE) signal and the pad test operation control (PAD TEST CTRL_OE) signal to output as the pad operation control (PAD CTRL_OE) signal.
[0128] Likewise, an operation control multiplexer that selects between a pad function operation control signal and a pad test operation control signal for a pull enable (PE) signal, an operation control multiplexer that selects between a pad function operation control signal and a pad test operation control signal for a pull up / down (PU) signal, and an operation control multiplexer that selects between a pad function operation control signal and a pad test operation control signal for an input enable (IE) signal may be further included.
[0129] When the TEST MODE signal is deactivated, a high level is input to the first input terminal of the first AND operator (411) and a low level is input to the first input terminal of the second AND operator (412). When the TEST MODE signal is activated, a high level is input to the first input terminal of the second AND operator (412) and a low level is input to the first input terminal of the first AND operator (411). When a low level is input to the first input terminal of the AND operator, it is output as a low level regardless of the value input to the second input terminal, and when a high level is input to the first input terminal of the AND operator, the value input to the second input terminal is output.
[0130] Accordingly, when the TEST MODE signal is deactivated, the PAD OUT is output to the PAD FUNC OUT through the first AND operator (411), and the output terminal of the second AND operator (412) remains at a low level. Meanwhile, when the TEST MODE signal is activated, the output terminal of the first AND operator (411) remains at a low level, and the PAD OUT is output to the PAD TEST OUT through the second AND operator (412).
[0131] The pad input multiplexer (414) selects the pad function input (PAD FUNC IN) and outputs it to the pad input (PAD IN) when the test mode (TEST MODE) signal is deactivated, and selects the pad test input (PAD TEST IN) and outputs it to the pad input (PAD IN) when the test mode (TEST MODE) signal is activated.
[0132] The operation control multiplexer (415) selects the pad function operation control (PAD FUNC CTRL_DS) and outputs the pad operation control (PAD CTRL_DS) when the test mode (TEST MODE) signal is deactivated, and selects the pad test operation control (PAD TEST CTRL_DS) and outputs the pad operation control (PAD CTRL_DS) when the test mode (TEST MODE) signal is activated. Meanwhile, the operation control multiplexer (416) selects the pad function operation control (PAD FUNC CTRL_OE) and outputs the pad operation control (PAD CTRL_OE) when the test mode (TEST MODE) signal is deactivated, and selects the pad test operation control (PAD TEST CTRL_OE) and outputs the pad operation control (PAD CTRL_OE) when the test mode (TEST MODE) signal is activated.
[0133] Another embodiment of a pad group controller
[0134] The pad group controller of FIGS. 3 and 4 is configured such that, during testing, a single test operation control register outputs all pad test operation control signals for all GPIO pads. The test operation control register is a test data register (TDR) composed of multiple flip-flops that operate in a shifting manner and has a structure that sets data by sequentially pushing (shifting).
[0135] In this structure, changing just one bit of the setting consumes cycles corresponding to the length of the entire TDR, that is, the number of flip-flops. As the size of the system-on-chip (SoC) increases and the number of GPIO pads connected to a single pad group controller increases, the number of pad test operation control signals to be processed by a single test operation control register increases, and accordingly, the number of flip-flops constituting the test operation control register also increases.
[0136] Most test operation control signals rarely need to be changed once set. However, since input and output enable signals configure the corresponding pads to function as input or output in any test mode, they must be modified multiple times whenever the test mode changes during the test.
[0137] The problem is that even if the input or output operation of a single pad changes, requiring a change to only a single input enable or output enable, the entire value of the test operation control register must be re-shifted and reset. This consumes a cycle equivalent to the entire length of the test operation control register every time, resulting in a significant decrease in test efficiency and an increase in total test time. This, in turn, leads to the problem of increased test costs.
[0138] Accordingly, the present embodiment additionally includes a separate test operation control register that outputs an input enable signal and an output enable signal in test mode. By configuring at least two test operation control registers to each output different pad test operation control signals, the change of input and output enable signals can be performed more efficiently.
[0139] FIG. 5 is a configuration diagram of a pad group controller according to another embodiment of the present invention.
[0140] The pad group controller includes one or more pad interfaces (430) configured to correspond to each GPIO pad, and a test controller (420) that outputs a test mode signal for determining an operation mode to the pad interfaces (430) and pad test operation control signals for controlling pad operation in the test mode.
[0141] The pad operation control signal may include a drive strength (DS) signal for determining the output drive strength of the pad, a pull enable (PE) signal for determining whether to activate the pad's pull circuit, a pull-up / down (PU) signal for selecting one of pull-up and pull-down when the pad's pull circuit is activated, an input enable (IE) signal for determining the pad's operation as an input, and an output enable (OE) signal for determining the pad's operation as an output.
[0142] The pad test operation control signal may include a test drive strength control signal, a test pull enable control signal, a test pull-up / down control signal, a test input enable control signal, and a test output enable control signal, each corresponding to the above pad operation control signal. Additionally, the pad function operation control signal may include a function drive strength control signal, a function pull enable control signal, a function pull-up / down control signal, a function input enable control signal, and a function output enable control signal, each corresponding to the pad operation control signal.
[0143] Each pad interface (430) is connected to a corresponding GPIO pad to provide a pad operation control signal to the GPIO pad, receive a pad output signal from the GPIO pad, and provide a pad input signal to the GPIO pad. The basic operation of the pad interface (430) is the same as that of the pad interfaces (310, 320) of FIG. 3.
[0144] The test controller (420) is configured to include a test mode register (331) that outputs a test mode signal determining whether the pad interface (430) will operate in a test mode or a function mode, a first test operation control register (421) that outputs one or more pre-set pad test operation control signals in the test mode, and a second test operation control register (422) that outputs the remaining pre-set pad test operation control signals in the test mode. Here, the first test operation control register (421) outputs a pad test operation control signal with a low change frequency, and the second test operation control register (422) outputs a pad test operation control signal with a high change frequency. Based on such change frequencies, the two test operation control registers (421, 422) are each assigned to output test operation control signals.
[0145] The test controller (420) may be a controller based on the IEEE 1687 standard (IJTAG: Internal Joint Test Action Group). The test controller (420) can set the test mode register (331), the first test operation control register (421), and the second test operation control register (422) through the IJTAG interface. Each register (331, 421, 422) may be configured as a test data register (TDR) that operates in a shift manner.
[0146] The first test operation control register (421) is configured to output a test drive strength control signal, a test pull enable control signal, and a test pull-up / down control signal, and the second test operation control register (422) is configured to output a test input enable control signal and a test output enable control signal.
[0147] The test mode register (331) may be composed of a single flip-flop and outputs a test mode signal that determines whether the pad interface (430) will operate in test mode or function mode. This test mode signal may be a 1-bit control signal indicating the activation or deactivation of the test mode.
[0148] The first test operation control register (421) and the second test operation control register (422) may each be composed of a plurality of flip-flops and may output a plurality of pad test operation control signals to the pad interface (430). The first test operation control register (421) may include flip-flops corresponding to a test drive strength control signal, a test pull enable control signal, and a test pull-up / down control signal. The second test operation control register (422) may include flip-flops corresponding to a test input enable control signal and a test output enable control signal.
[0149] The configuration of the first AND operator (411), the second AND operator (412), the inverter (413), and the pad input multiplexer (414) constituting the pad interface (430), as well as the pad output path and the pad input path, are the same as those in FIG. 4.
[0150] The pad interface (430) includes a plurality of operation control multiplexers (441, 451, 452). Each operation control multiplexer receives control from a test mode signal, selects one of the function operation control (PAD FUNC CTRL) signal and the test operation control (PAD TEST CTRL) signal, and outputs it as a pad operation control (PAD CTRL) signal that is finally applied to the GPIO pad. The operation control multiplexers correspond to the types of pad operation control signals, namely, drive strength (DS), pull enable (PE), pull up / down (PU), input enable (IE), and output enable (OE), respectively.
[0151] For example, the operation control multiplexer (441) receives control of the test mode (TEST MODE) signal for the drive intensity (DS) signal and selects one of the function drive intensity control (PAD FUNC CTRL_DS) signal and the test drive intensity control (PAD TEST CTRL_DS) signal output from the first test operation control register (421) and outputs it as the drive intensity control (PAD CTRL_DS) signal. Similarly, in the case of a pull enable (PE) signal, an operation control multiplexer may be included that selects between the function pull enable control signal and the test pull enable control signal output from the first test operation control register (421). Additionally, in the case of a pull-up / down (PU) signal, an operation control multiplexer may be further included that selects between the function pull-up / down control signal and the test pull-up / down control signal output from the first test operation control register (421).
[0152] Additionally, the operation control multiplexer (451) receives control of the test mode signal for the output enable signal and selects one of the function output enable control (PAD FUNC CTRL_OE) signal and the test output enable control (PAD TEST CTRL_OE) signal output from the second test operation control register (422) and outputs it as the output enable (PAD CTRL_OE) signal. Likewise, the operation control multiplexer (452) receives control of the test mode signal for the input enable signal and selects one of the function input enable control (PAD FUNC CTRL_IE) signal and the test input enable control (PAD TEST CTRL_IE) signal output from the second test operation control register (422) and outputs it as the input enable (PAD CTRL_IE) signal.
[0153] The values of the test drive strength control signal, test pull enable control signal, and test pull-up / down control signal rarely change after the initial test setup. On the other hand, the values of the test input enable control signal and test output enable control signal must be changed frequently whenever the test mode is changed.
[0154] Therefore, by assigning signals with a high change frequency (input enable and output enable) to a separate test operation control register, only the necessary parts can be rapidly updated without the need to repeatedly shift the entire register during testing. This significantly reduces the time required for shifting, thereby increasing test efficiency and effectively reducing test time and costs.
[0155] GPIO Router
[0156] FIG. 6 is a diagram of an SoC configuration including a GPIO router according to the present invention.
[0157] As mentioned in the description of FIG. 2, the SoC (500) is composed of multiple IP blocks, and the multiple IP blocks can be grouped into multiple block groups (530, 540, 550, 560, 570) according to their placement location. FIG. 6 is an example of an SoC composed of five block groups.
[0158] The SoC (500) includes a pad group (510) composed of a plurality of GPIO pads, and the pad group (510) is typically placed on the outer edge of the SoC (500) to facilitate signal input and output with the outside.
[0159] Additionally, the SoC (500) includes a pad group controller (520) positioned near the pad group (510). The pad group controller (520) may be any one of the first pad group controller (231), the second pad group controller (232), or the third pad group controller (233) of FIG. 2.
[0160] The pad group controller (520) is configured to perform different functions for each GPIO pad constituting the pad group (510) according to the operation mode. More specifically, the pad group controller (520) performs pad function input / output and pad function operation control for each GPIO pad in function mode. In addition, when test mode is enabled, the pad group controller (520) performs pad test input / output and pad test operation control for each GPIO pad. This enables testing of the internal circuitry and pad operation of the SoC (500), and can be utilized to verify the electrical characteristics and operating status of the pads after manufacturing or during the system initialization phase.
[0161] To this end, it is desirable that the input / output signals of the GPIO pads be configured to be linked with multiple IP blocks placed inside the SoC. That is, the input / output signals of the GPIO pads must be distributed to multiple block groups to which each IP block belongs. However, due to the layout characteristics inside the SoC, some block groups must be physically separated from the pad group (510) or the pad group controller (520). In such cases, a means of transmission is required to efficiently distribute and collect pad test input / output signals to each block group.
[0162] In the present invention, a plurality of GPIO routers may be included as such transmission means. For example, the first GPIO router (531) receives a pad test output signal from the pad group controller (520) and distributes it to the first block group (530) and the lower third GPIO router (551). Additionally, it receives pad test input signals from the first block group (530) and the lower third GPIO router (551), respectively, and transmits them to the pad group controller (520).
[0163] Meanwhile, if all IP blocks included in the second block group (540) do not use the GPIO pads of the pad group (510), a separate GPIO router that distributes pad test input / output to the second block group (540) may be omitted. In this case, the component connected to the first GPIO router (531) as a subordinate GPIO router becomes the third GPIO router (551).
[0164] The third GPIO router (551) distributes the pad test output distributed from the upper first GPIO router (531) to the third block group (550) and the lower fourth GPIO router (561), and transmits the pad test input received from the third block group (550) and the lower fourth GPIO router (561) to the upper first GPIO router (531). The fourth GPIO router (561) distributes the pad test output distributed from the upper third GPIO router (551) to the fourth block group (560) and the lower fifth GPIO router (571), and transmits the pad test input received from the fourth block group (560) and the lower fifth GPIO router (571) to the upper third GPIO router (551). The 5th GPIO router (571) transmits the pad test output distributed from the upper 4th GPIO router (561) to the 5th block group (570) and transmits the pad test input input from the 5th block group (570) to the upper 4th GPIO router (561).
[0165] Accordingly, the pad test output from the GPIO pad can be distributed to the first block group (530), the third block group (550), the fourth block group (560), and the fifth block group (570) sequentially through the first GPIO router (531), the third GPIO router (551), the fourth GPIO router (561), and the fifth GPIO router (571). Additionally, the pad test input output from the fifth block group can be input to the GPIO pad sequentially through the fifth GPIO router (571), the fourth GPIO router (561), the third GPIO router (551), and the first GPIO router (531). A pad test input output from the fourth block group (560) can be input to a GPIO pad through the fourth GPIO router (561), the third GPIO router (551), and the first GPIO router (531) in sequence, a pad test input output from the third block group (550) can be input to a GPIO pad through the third GPIO router (551) and the first GPIO router (531), and a pad test input output from the first block group (530) can be input to a GPIO pad through the first GPIO router (531).
[0166] The GPIO routers according to the present invention have a hierarchical structure in which the side logically adjacent to the pad group controller (520) is defined as the upper layer, and the direction away from it is defined as the lower layer. Accordingly, the first GPIO router (531) transmits pad test outputs received from the pad group controller (520) to the third GPIO router (551), which is the lower layer, and relays pad test inputs collected from the lower layer to the upper layer. The physical arrangement of block groups within the system-on-chip (SoC) can be determined according to design efficiency regardless of the distance from the pad group controller (520). However, in terms of the logical hierarchical structure, the fifth block group (570) corresponds to the lowest layer that transmits and receives signals through the first, third, and fourth GPIO routers (531, 551, 561), and as a result, the fifth GPIO router (571) performs only output distribution from the upper layer and input transmission to the upper layer without a lower router connection terminal.
[0167] FIG. 7 is a configuration diagram of a GPIO router according to the present invention.
[0168] The GPIO router of FIG. 7 may correspond to any one of the first GPIO router (531), the third GPIO router (551), or the fourth GPIO router (561) of FIG. 6. The GPIO router includes a plurality of GPIO splitter cells (610, 620) that correspond to each GPIO pad, one side of which is connected to a pad group controller or an upper GPIO router, and the other side of which is connected to a block group and a lower GPIO router.
[0169] FIG. 8 is a detailed circuit diagram of a GPIO splitter cell according to the present invention.
[0170] The GPIO distributor cell includes a logical OR operator (611) that performs a logical OR operation on a pad test input (PAD TEST IN) signal output from a block group and a pad test input (PAD TEST IN) signal input from a lower GPIO router and outputs the result to an upper direction (pad group controller or upper GPIO router), and a first buffer (612) and a second buffer (613) that distribute a pad test output (PAD TEST OUT) input from a pad group controller or upper GPIO router to a block group and a lower GPIO router.
[0171] The logical OR operator (611) performs a logical OR operation on the pad test input (PAD TEST IN) output from the block group and the pad test input (PAD TEST IN) output from the lower GPIO router and outputs the result to the upper pad group controller or GPIO router. Accordingly, if the pad test input signal is active (high) in either the lower GPIO router or the block group, the signal can be transmitted to the upper level. That is, the upper GPIO router can detect when a signal comes in from any of the multiple lower paths.
[0172] The first buffer (612) buffers the pad test output (PAD TEST OUT) input from the pad group controller or the upper GPIO router and then transmits it to the block group, and the second buffer (613) buffers the pad test output (PAD TEST OUT) input from the pad group controller or the upper GPIO router and then transmits it to the lower GPIO router. Through this, the pad test output signal from the upper can be reliably branched into multiple paths, and all lower block groups can receive the same pad test output signal.
[0173] The GPIO router according to the present embodiment can implement a bidirectional test signal transmission structure capable of efficiently aggregating lower pad test input signals and transmitting them to the upper level, while simultaneously stably distributing pad test output signals from the upper level via multiple paths. Such a structure provides test flexibility and scalability for various block groups within a complex SoC and is effective in ensuring signal integrity during testing.
[0174] One embodiment of a GPIO multiplexer
[0175] The SoC can operate in various test mode types depending on the type of test target and the test scope, and the operation method of IP blocks and port I / O may vary according to each test mode type. For example, test mode types may include scan test mode, memory BIST (Built-In Seft Test) mode, logic BIST (Built-In Seft Test) mode, JTAG (Joint Test Action Group) test mode, IJTAG (Internal Joint Test Action Group) test mode, and external automatic test equipment interface test mode.
[0176] Depending on each of these test mode types, different data signals for performing tests may be provided to each port of the IP block, and the input / output direction of the port may also be dynamically configured. For example, in the SoC implementation shown in FIG. 2, in the first test mode type, a first pad among the first pad group (211) of the SoC may operate as an input pad, and the input pad may be connected to the first port of the first IP block (221). In this case, a pad test input signal may be transmitted from the first port of the first IP block (221) to the first pad of the first pad group (211).
[0177] Additionally, in the second test mode type, the first pad of the first pad group (211) operates as an output pad and can be connected to the third port of the second IP block (222). In this case, a pad test output signal output from the first pad of the first pad group (211) is transmitted to the third port of the second IP block (222). Additionally, in the third test mode type, the first pad of the first pad group (211) operates as an output pad and can be connected to the fourth port of the first IP block (221). In this case, a pad test output signal output from the first pad of the first pad group (211) is transmitted to the fourth port of the first IP block (221).
[0178] In this way, the first pad of the first pad group (211) can be connected to the first port of the first IP block (221) as an input pad, connected to the third port of the second IP block (222) as an output pad, or connected to the fourth port of the third IP block (223) as an output pad, depending on the test mode type. In other words, for each GPIO pad, the input / output direction and the connection target port must be dynamically set according to the test mode type.
[0179] Referring to FIG. 2, each GPIO pad of the first pad group (211) can be connected to one port selected according to the test mode type among the ports of the first IP block (221) to the fifth IP block (225). That is, the port of the IP block to which each GPIO pad is connected may differ depending on the test environment settings. Similarly, each GPIO pad of the second pad group (212) can also be connected to one port according to the test mode type among the ports of the first IP block (221) to the sixth IP block (226), and each GPIO pad of the third pad group (213) can be selectively connected to one port according to the test mode type among the ports of the fourth IP block (224) to the sixth IP block (226).
[0180] As such, it is desirable that the ports of the IP blocks connected to each GPIO pad of the pad group be selectively configured according to the designer's intent for each test mode type. This allows the SoC designer to set the optimal test path based on test requirements or the configuration of the test equipment.
[0181] To implement this port connection flexibility, all GPIO pads within a pad group are connected to a GPIO multiplexer, and each GPIO pad can have a physical connection path to the ports dynamically established by the GPIO multiplexer.
[0182] In other words, the GPIO multiplexer selects and connects a specific port to each GPIO pad based on control signals input for each test mode type, and blocks connections to the remaining ports, thereby ensuring that only a single port is connected in correspondence with a single test mode type. This configuration allows for flexible support of multiple test scenarios for each GPIO pad, while simultaneously preventing signal collisions or electrical interference by blocking unnecessary paths.
[0183] For example, the first GPIO multiplexer (251) illustrated in FIG. 2 is configured to be hardware-connectable to a first pad included in a first pad group (211) with a first port of a first IP block (221), a third port of a second IP block (222), and a fourth port of a third IP block (223). The ports connected to the first pad are not limited to the first port of the first IP block (221), the third port of the second IP block (222), and the fourth port of the third IP block (223), and may be configured to be connected to any port of the first IP block to the third IP block according to the intention of the SoC designer.
[0184] And, the first GPIO multiplexer (251) controls the first pad to be connected only to the first port of the first IP block (221) in the first test mode type, controls the first pad to be connected only to the third port of the second IP block (222) in the second test mode type, and controls the first pad to be connected only to the fourth port of the third IP block (223) in the third test mode type.
[0185] In this way, the GPIO multiplexer has a hardware configuration in which a single GPIO pad can be connected to multiple ports, but by operating to be connected to only a single port per test mode, it can provide a structure that satisfies the functional requirements of various test modes.
[0186] FIG. 9 is a configuration diagram illustrating a GPIO multiplexer according to the present invention.
[0187] A GPIO multiplexer includes a first port connection unit (810) configured to correspond to a first GPIO pad (801) and supporting a selective connection between the first GPIO pad (801) and ports (802, 803, 804) of two or more IP blocks, and a test controller (830) that controls the connection path according to a test mode type. The first port connection unit (810) is a circuit that selectively connects an input / output path between the first GPIO pad (801) and a plurality of ports (802, 803, 804), and the connection with each port is controlled by a port selection signal. The port selection signal is generated by a test mode type register (831) included in the test controller (830). It is preferable that one port connection unit be configured to correspond to one GPIO pad.
[0188] The GPIO multiplexer of FIG. 9 illustrates an example of operating in three test mode types, and separate ports are connected for each test mode type, but the scope of the present invention is not limited thereto. The number of test mode types is not limited to three, and a single GPIO pad may be connected to the same port in two or more test mode types.
[0189] The test controller (830) may be a controller based on the IEEE 1687 standard, namely IJTAG (Internal Joint Test Action Group). The test controller (830) controls the port connection configuration according to the test mode type by setting the test mode type register (831) through the IJTAG interface. The test mode type register (831) may be composed of a test data register (TDR) that operates in a shift manner and may internally include logic elements such as flip-flops.
[0190] The first port connection part (810) is configured with a plurality of logical AND operators so that a first pad test output signal from the first GPIO pad (801) is transmitted to a selected port, or a pad test input signal from the selected port is transmitted to the GPIO pad (801).
[0191] The first port connection unit (810) includes a first AND operator (811) in which a first pad test output (PAD TEST OUT 1) signal from a first GPIO pad (801) and a first port selection signal from a test mode type register (831) are each input to an input terminal and a first-1 port (802) is connected to an output terminal; a second AND operator (812) in which a first pad test output (PAD TEST OUT 1) signal and a second port selection signal from a test mode type register (831) are each input to an input terminal and a first-2 port (803) is connected to an output terminal; and a third AND operator (813) in which a first pad test output (PAD TEST OUT 1) signal and a third port selection signal from a test mode type register (831) are each input to an input terminal and a first-3 port (804) is connected to an output terminal.
[0192] Additionally, the first port connection section (810) comprises a fourth AND operator (814) in which a fourth port selection signal from the first-1 port (802) and the test mode type register (831) is respectively connected to an input terminal and a first pad test input (PAD TEST IN 1) signal is output from an output terminal to the first GPIO pad (801); a fifth AND operator (815) in which a fifth port selection signal from the first-2 port (803) and the test mode type register (831) is respectively connected to an input terminal and a first pad test input (PAD TEST IN 1) signal is output from an output terminal to the first GPIO pad (801); and a sixth AND operator in which a sixth port selection signal from the first-3 port (804) and the test mode type register (831) is respectively connected to an input terminal and a first pad test input (PAD TEST IN 1) signal is output from an output terminal to the first GPIO pad (801). It includes an arithmetic unit (816).
[0193] The first-1 port (802), connected to the output terminal of the first AND operator (811) and the input terminal of the fourth AND operator (814), is identical; the first-2 port (803), connected to the output terminal of the second AND operator (812) and the input terminal of the fifth AND operator (815), is identical; and the first-3 port (804), connected to the output terminal of the third AND operator (813) and the input terminal of the sixth AND operator (816), is identical. The first-1 port (802), the first-2 port (803), and the first-3 port (804) may all be different, or two or more ports may be identical.
[0194] The first GPIO pad (801) and the first port connection (810) can be connected via a pad group controller and a GPIO router. The first port connection (810) and the ports (802, 803, 804) may be connected via a hard macro interface or a separate interface, or they may be connected directly. If the IP block is a hard macro block, the first port connection (810) and the ports (802, 803, 804) may be connected via a hard macro interface. If the IP block is a non-hard macro block, the first port connection (810) and the ports (802, 803, 804) may be connected directly or via a separate interface without a hard macro interface.
[0195] If the GPIO multiplexer of FIG. 9 is the first GPIO multiplexer (251) of FIG. 2, the first GPIO pad (801) may be any one GPIO pad belonging to the first pad group (211) and the second pad group (212). Additionally, the first-1 port (802), the first-2 port (803), and the first-3 port (804) may each be any one of at least one of the first IP block (221), the second IP block (222), and the third IP block (223).
[0196] For all GPIO pads of the first pad group (211) and the second pad group (212), a port connection can be connected corresponding to each GPIO pad.
[0197] The second port connection section (820) comprises a seventh AND operator (821) in which a second pad test output (PAD TEST OUT 2) signal from the second GPIO pad (805) and a seventh port selection signal from the test mode type register (831) are each input to an input terminal and a second-1 port (806) is connected to an output terminal; an eighth AND operator (822) in which a second pad test output (PAD TEST OUT 2) signal and an eighth port selection signal from the test mode type register (831) are each input to an input terminal and a second-2 port (807) is connected to an output terminal; a ninth AND operator (823) in which a second pad test output (PAD TEST OUT 2) and a ninth port selection signal from the test mode type register (831) are each input to an input terminal and a second-3 port (808) is connected to an output terminal; and a second-1 port (806) and a tenth port selection signal are each input to an input terminal It further includes a 10th AND operator (824) that is connected and outputs a 2nd pad test input (PAD TEST IN 2) signal to the 2nd GPIO pad (805) through an output terminal, a 11th AND operator (825) that outputs a 2nd pad test input (PAD TEST IN 2) signal to the 2nd GPIO pad (805) through an output terminal, and a 2nd 3rd port (808) and a 12th port selection signal that are connected to an input terminal and output a 2nd pad test input (PAD TEST IN 2) signal to the 2nd GPIO pad (806) through an output terminal.
[0198] Each port is connected to an AND operator for the output path and an AND operator for the input path, respectively, according to the test mode type. The first AND operator (811) is connected to the pad test output path between the first GPIO pad (801) and the first-1 port (802), and the fourth AND operator (814) is connected to the pad test input path between the first GPIO pad (801) and the first-1 port (802). In the second test mode type, the second AND operator (812) is connected to the pad test output path between the first GPIO pad (801) and the first-2 port (803), and the fifth AND operator (815) is connected to the pad test input path between the first GPIO pad (801) and the first-2 port (803). In the third test mode type, the third AND operator (813) is connected to the pad test output path between the first GPIO pad (801) and the first-third port (804), and the sixth AND operator (816) is connected to the pad test input path between the first GPIO pad (801) and the first-third port (804).
[0199] Depending on whether the port selection signal is enabled for each test mode type, only one of the input path or output path between the first GPIO pad and the port is enabled. That is, it is designed so that only one path (input or output) is enabled for each test mode type, thereby preventing interference between multiple paths.
[0200] The test mode type register (831) outputs a port selection signal to the first port connection part (810) such that when a GPIO pad operates as an input pad in a specific test mode type, only the logical AND operator connected to the pad test input path is enabled, and the logical AND operator connected to the pad test output path is disabled.
[0201] For example, when the first GPIO pad (801) operates as an input pad in the first test mode type, the test mode type register (831) enables and outputs a port select signal only to the fourth AND operator (814) connected to the input path, and outputs a deactivation signal to other AND operators to block the path. When the first GPIO pad (801) operates as an output pad in the second test mode type, the test mode type register (831) enables and outputs a port select signal only to the second AND operator (812) connected to the output path, and outputs a deactivation signal to other AND operators to block the path. When the first GPIO pad (801) operates as an output pad in the third test mode type, the test mode type register (831) enables and outputs a port select signal only to the third AND operator (813) connected to the output path, and outputs a deactivation signal to other AND operators to block the path.
[0202] The output terminal of each AND operator transmits a pad test input or pad test output only when the port select signal is active (high), and when the port select signal is inactive (low), the output of the corresponding AND operator remains at a low level.
[0203] Accordingly, in the first test mode type, since the port selection signal is activated only at the fourth AND operator (814), only the pad test input path from the first-1 port (802) to the first GPIO pad (801) is connected. In the second test mode type, since the port selection signal is activated only at the second AND operator (812), only the pad test output path from the first GPIO pad (801) to the first-2 port (803) is connected. And, in the third test mode type, since the port selection signal is activated only at the third AND operator (813), only the pad test output path from the first GPIO pad (801) to the first-3 port (804) is connected.
[0204] As such, the GPIO multiplexer of the present invention has the advantage of improving testing and debugging flexibility and enhancing chip area efficiency by selectively connecting one GPIO pad to the ports of various IP blocks according to test mode type.
[0205] Another embodiment of a GPIO multiplexer
[0206] FIG. 10 is a diagram briefly showing the connection status of the GPIO multiplexer illustrated in FIG. 9.
[0207] The GPIO multiplexer (900) is configured such that, during testing, one GPIO pad (901) is selectively connected to one port (902, 903, 904) depending on the test mode type. That is, one GPIO pad (901) can be connected to any one of the multiple ports (902, 903, 904). Here, the multiple ports (902, 903, 904) may belong to the same IP block or to different IP blocks.
[0208] Conversely, from the perspective of the ports, each port can only have one GPIO pad connected in a specific test mode type. That is, it does not support the operation of a single port being selectively connected among multiple GPIO pads. However, a function may be required where a single port can be selectively connected to any one of multiple GPIO pads in a specific test mode type.
[0209] FIG. 11 is a configuration diagram illustrating a GPIO multiplexer according to another embodiment of the present invention.
[0210] The GPIO multiplexer comprises a first pad mode selector (1011) configured to be connected to a first GPIO pad (1001) and receive a test mode signal from a test controller (1060) to selectively connect the first GPIO pad (1001) to one of a first mapping group (1020) or a second mapping group (1030); a second pad mode selector (1012) configured to be connected to a second GPIO pad (1002) and receive a test mode signal from a test controller (1060) to connect the second GPIO pad (1002) to one of a first mapping group (1020) or a third mapping group (1040); and a first mapping configured to receive a Map Select signal (Map Select 1) from a test controller (1060) to switch the connection relationship between the first GPIO pad (1001) and the second GPIO pad (1002), and between the first port (1051) and the second port (1052). Includes group (1020).
[0211] According to the present invention, a GPIO multiplexer can flexibly change the connection relationship between each GPIO pad, a mapping group, and each port according to a test mode signal and a map selection signal. This allows for support of various connection scenarios in a specific test mode type, and since any one port can be selectively connected to one of a plurality of GPIO pads, design freedom and test flexibility can be improved.
[0212] The GPIO multiplexer may additionally include a third pad mode selector (not shown) and a fourth pad mode selector (not shown). The third pad mode selector is connected to a third GPIO pad (not shown) and receives a test mode signal from a test controller (1060) to selectively connect the third GPIO pad to a second mapping group (1030). Additionally, the fourth pad mode selector is connected to a fourth GPIO pad (not shown) and receives a test mode signal from a test controller (1060) to selectively connect the fourth GPIO pad to a third mapping group (1040). The test controller (1060) provides a map select signal (Map Select 2) to the second mapping group (1030) and a map select signal (Map Select 3) to the third mapping group (1040) to control the operation mode of each mapping group.
[0213] The first mapping group (1020) is configured to switch the connection between the GPIO pad and the port according to the map select signal (Map Select 1). The first mapping group (1020) includes a first-1 pad-port map connection unit (1021) configured to operate when the first map is selected and to connect the first GPIO pad (1001) to the first port (1051) and to connect the second GPIO pad (1002) to the second port (1052), and a first-2 pad-port map connection unit (1022) configured to operate when the second map is selected and to connect the first GPIO pad (1001) to the second port (1052) and to connect the second GPIO pad (1002) to the first port (1051).
[0214] The second mapping group (1030) is configured to switch the connection between the GPIO pad and the port according to the Map Select signal (Map Select 2). The second mapping group (1030) includes a second-1 pad-port map connection unit (1031) configured to operate during the first map selection and to connect the first GPIO pad (1001) to the third port (1053) and to connect the third GPIO pad to the fourth port (1054), and a second-2 pad-port map connection unit (1032) configured to operate during the second map selection and to connect the first GPIO pad (1001) to the fourth port (1054) and to connect the third GPIO pad to the third port (1053).
[0215] The third mapping group (1040) is configured to switch the connection between the GPIO pad and the port according to the Map Select signal (Map Select 3). The third mapping group (1040) includes a third-1 pad-port map connection unit (1041) configured to operate during the first map selection and to connect the second GPIO pad (1002) to the fifth port (1055) and the fourth GPIO pad to the sixth port (1056), and a third-2 pad-port map connection unit (1042) configured to operate during the second map selection and to connect the second GPIO pad (1002) to the sixth port (1056) and the fourth GPIO pad to the fifth port (1055).
[0216] FIG. 11 illustrates an exemplary configuration in which two GPIO pads and two ports are connected to each mapping group, but the scope of the present invention is not limited thereto. FIG. 11 illustrates that each mapping group includes two pad-port map connections, but this is not a limitation. In addition, while two test mode types are set, the number of test mode types, the number of mapping groups, the number of GPIO pads and ports connected to each mapping group, and the number of pad-port map connections per mapping group can be varied according to the designer's design and system requirements.
[0217] The test controller (1060) may be a controller based on the IEEE 1687 standard, i.e., IJTAG (Internal Joint Test Action Group). The test controller (1060) enables the output of a test mode signal (TEST MODE) and map select signals (Map Select 1 ~ Map Select 3) by setting the mode & map select register (1061) through the IJTAG interface. The mode & map select register (1061) may be composed of a test data register (TDR) that operates in a shift mode and may internally include logic elements such as flip-flops.
[0218] The operation of the GPIO multiplexer of FIG. 11 will be explained below.
[0219] The GPIO multiplexer dynamically switches the connection status between each GPIO pad, mapping group, and each port according to the test mode signal (TEST MODE) and map selection signals (Map Select 1 ~ Map Select 3) output from the mode & map selection register (1061) of the test controller (1060).
[0220] The test controller (1060) operates according to the IEEE 1687 standard, namely the IJTAG (Internal Joint Test Action Group) method. The test controller (1060) controls the mode & map select register (1061) in a shift manner through the IJTAG interface. The mode & map select register (1061) is configured to output a test mode signal (TEST MODE) and map select signals (Map Select 1 ~ Map Select 3) according to the shift input value. The test mode signal is distributed simultaneously to all pad mode selectors. That is, all pad mode selectors receive a common test mode signal and control all GPIO pads to operate in the same test mode type. Meanwhile, individual map select signals can be output to each mapping group.
[0221] The first pad mode selector (1011) receives a test mode signal and determines whether the first GPIO pad (1001) is connected to either the first mapping group (1020) or the second mapping group (1030). The second pad mode selector (1012) receives a test mode signal and determines whether the second GPIO pad (1002) is connected to either the first mapping group (1020) or the third mapping group (1040). Additionally, the third pad mode selector selectively connects the third GPIO pad to the second mapping group (1030). The fourth pad mode selector selectively connects the fourth GPIO pad to the third mapping group (1040).
[0222] According to the map selection signal (Map Select 1) input from the mode & map selection register (1061), when the first map is selected, the first-1 pad-port map connection part (1021) of the first mapping group (1020) operates to connect the first GPIO pad (1001) to the first port (1051) and the second GPIO pad (1002) to the second port (1052). When the second map is selected, the first-2 pad-port map connection part (1022) operates to connect the first GPIO pad (1001) to the second port (1052) and the second GPIO pad (1002) to the first port (1051).
[0223] Additionally, according to the map selection signal (Map Select 2) input from the mode & map selection register (1061), when the first map is selected, the 2-1 pad-port map connection part (1031) of the second mapping group (1030) operates to connect the first GPIO pad (1001) to the third port (1053) and the third GPIO pad to the fourth port (1054). When the second map is selected, the 2-2 pad-port map connection part (1032) operates to connect the first GPIO pad (1001) to the fourth port (1054) and the third GPIO pad to the third port (1053).
[0224] Additionally, according to the map selection signal (Map Select 3) input from the mode & map selection register (1061), when the first map is selected, the 3-1 pad-port map connection part (1041) of the 3rd mapping group (1040) operates to connect the 2nd GPIO pad (1002) to the 5th port (1055) and the 4th GPIO pad to the 6th port (1056). When the 2nd map is selected, the 3-2 pad-port map connection part (1042) operates to connect the 2nd GPIO pad (1002) to the 6th port (1056) and the 4th GPIO pad to the 5th port (1055).
[0225] Through this operation, the connection relationship between each GPIO pad and port can be switched in real time according to the test mode signal and map selection signal. Since the same port can be selectively connected to one of multiple GPIO pads, it supports various test scenarios and allows test configurations to be easily expanded without design changes, even in complex systems.
[0226] FIG. 12 is an example diagram of the first internal circuit of the first-1 pad-port map connection part of FIG. 11, and FIG. 13 is an example diagram of the first internal circuit of the first-2 pad-port map connection part of FIG. 11.
[0227] The first-1 pad-port map connection (1021) of FIG. 12 includes a first-1 output buffer (1101) connected between the first GPIO pad (1001) and the first port (1051) in the input path (pad test output path) of the first port (1051), a first-1 input buffer (1102) connected between the first GPIO pad (1001) and the first port (1051) in the output path (pad test input path) of the first port (1051), a second-12 output buffer (1103) connected between the second GPIO pad (1002) and the second port (1052) in the input path (pad test output path) of the second port (1052), and a second-12 input buffer (1104) connected between the second GPIO pad (1002) and the second port (1052) in the output path (pad test input path) of the second port (1052).
[0228] The first-second pad-port map connection (1022) of FIG. 13 includes a second-first output buffer (1105) connected between the first GPIO pad (1001) and the second port (1052) in the input path (pad test output path) of the second port (1052), a second-first input buffer (1106) connected between the first GPIO pad (1001) and the second port (1052) in the output path (pad test input path) of the second port (1052), a second-second output buffer (1107) connected between the second GPIO pad (1002) and the first port (1051) in the input path (pad test output path) of the first port (1051), and a second-second input buffer (1108) connected between the second GPIO pad (1002) and the first port (1051) in the output path (pad test input path) of the first port (1051).
[0229] For each port, only one of the input buffer and the output buffer may be activated. Each port may operate as an input port or an output port. When the port operates as an input port, data may be received from the first GPIO pad (1001) or from the second GPIO pad (1002) depending on whether the first pad-port map connection (1021) and the second pad-port map connection (1022) are activated. Additionally, when the port operates as an output port, data may be output to the first GPIO pad (1001) or to the second GPIO pad (1002) depending on whether the first pad-port map connection (1021) and the second pad-port map connection (1022) are activated.
[0230] Specifically, in the first-1 pad-port map connection (1021) of FIG. 12, when the first port (1051) operates as an input port, only the first output buffer (1101) is activated and the first input buffer (1102) is deactivated, so that only a port input path (pad test output path) is formed between the first GPIO pad (1001) and the first port (1051). Conversely, when the first port (1051) operates as an output port, only the first input buffer (1102) is activated and the first output buffer (1101) is deactivated, so that only a port output path (pad test input path) is formed between the first GPIO pad (1001) and the first port (1051). Meanwhile, when the second port (1052) operates as an input port, only the 12th output buffer (1103) is activated and the 12th input buffer (1104) is deactivated, so that only a port input path (pad test output path) is formed between the second GPIO pad (1002) and the second port (1052). Conversely, when the second port (1052) operates as an output port, only the 12th input buffer (1104) is activated and the 12th output buffer (1103) is deactivated, so that only a port output path (pad test input path) is formed between the second GPIO pad (1002) and the second port (1052).
[0231] In the first-second pad-port map connection (1022) of FIG. 13, when the second port (1052) operates as an input port, only the second-first output buffer (1105) is activated and the second-first input buffer (1106) is deactivated, so that only a port input path (pad test output path) is formed between the first GPIO pad (1001) and the second port (1052). Conversely, when the second port (1052) operates as an output port, only the second-first input buffer (1106) is activated and the second-first output buffer (1105) is deactivated, so that only a port output path (pad test input path) is formed between the first GPIO pad (1001) and the second port (1052). Meanwhile, when the first port (1051) operates as an input port, only the second output buffer (1107) is activated and the second input buffer (1108) is deactivated, so that only a port input path (pad test output path) is formed between the second GPIO pad (1002) and the first port (1051). Conversely, when the first port (1051) operates as an output port, only the second input buffer (1108) is activated and the second output buffer (1107) is deactivated, so that only a port output path (pad test input path) is formed between the second GPIO pad (1002) and the first port (1051).
[0232] When the input buffers (1102, 1104, 1106, 1108) are disabled, the input terminals are tied to a 0 level to prevent them from becoming floating, thereby preventing noise or malfunction. When the output buffers (1101, 1103, 1105, 1107) are disabled, the output terminals are opened to a high-impedance (High-Z) state.
[0233] FIGS. 12 and FIGS. 13 illustrate a state in which both the first port (1051) and the second port (1052) operate as input ports. The first-1 pad-port map connection (1021) and the first-2 pad-port map connection (1022) operate mutually exclusively according to a map selection signal, and the unselected pad-port map connection remains in an inactive state.
[0234] When the 1-1 pad-port map connection unit (1021) is operated, the 11th output buffer (1101) and the 12th output buffer (1103) are activated, and in this case, the 1st GPIO pad (1001) and the 1st port (1051), and the 2nd GPIO pad (1002) and the 2nd port (1052) are connected, respectively. When the 1-2 pad-port map connection unit (1022) is operated, the 21st output buffer (1105) and the 22nd output buffer (1107) are activated, and in this case, the 1st GPIO pad (1001) and the 2nd port (1052), and the 2nd GPIO pad (1002) and the 1st port (1051) are connected, respectively. The input terminals of the 11th input buffer (1102), the 12th input buffer (1104), the 21st input buffer (1106), and the 22nd input buffer (1108) are all tied to level 0.
[0235] The first-1 pad-port map connection section (1021) is responsible for the connection between the first GPIO pad (1001) and the first port (1051), and between the second GPIO pad (1002) and the second port (1052). Since the first port (1051) operates as an input port, the first output buffer (1101) is activated, forming a port input path (pad test output path) through which data flows from the first GPIO pad (1001) toward the first port (1051). At this time, the first input buffer (1102) is deactivated, and the input terminal of the first input buffer (1102) is tied to level 0. When the second port (1052) operates as an input port, the second output buffer (1103) is activated, forming a port input path (pad test output path) through which data flows from the second GPIO pad (1002) toward the second port (1052). At this time, the 12th input buffer (1104) is deactivated and the input terminal of the 12th input buffer (1104) is tied to level 0.
[0236] The first-second pad-port map connection (1022) is responsible for cross-connecting between the first GPIO pad (1001) and the second port (1052), and between the second GPIO pad (1002) and the first port (1051). Since the first port (1051) operates as an input port, the second-second output buffer (1107) is activated, forming a port input path (pad test output path) through which data flows from the second GPIO pad (1002) toward the first port (1051). At this time, the second-second input buffer (1108) is deactivated, and the input terminal of the second-second input buffer (1108) is tied to level 0. When the second port (1052) operates as an input port, the second-first output buffer (1105) is activated, forming a port input path (pad test output path) through which data flows from the first GPIO pad (1001) toward the second port (1052). At this time, the 21st input buffer (1106) is deactivated and the input terminal of the 21st input buffer (1106) is tied to level 0.
[0237] FIG. 14 is an example diagram of the second internal circuit of the first-1 pad-port map connection part of FIG. 11, and FIG. 15 is an example diagram of the second internal circuit of the first-2 pad-port map connection part of FIG. 11.
[0238] FIGS. 14 and 15 illustrate a state in which the first port (1051) operates as an input port and the second port (1052) operates as an output port. The first-1 pad-port map connection (1021) and the first-2 pad-port map connection (1022) operate mutually exclusively according to a map selection signal, and the unselected pad-port map connection remains in an inactive state.
[0239] The first-1 pad-port map connection section (1021) is responsible for the connection between the first GPIO pad (1001) and the first port (1051), and between the second GPIO pad (1002) and the second port (1052). When the first port (1051) operates as an input port, the first output buffer (1101) is activated to form a port input path (pad test output path) through which data flows from the first GPIO pad (1001) to the first port (1051). At this time, the first input buffer (1102) is deactivated, and the input terminal of the deactivated first input buffer (1102) is tied to level 0. When the second port (1052) operates as an output port, the second input buffer (1104) is activated to form a port output path (pad test input path) through which data flows from the second port (1052) to the second GPIO pad (1002). At this time, the 12th output buffer (1103) is deactivated, and the output terminal of the deactivated 12th output buffer (1103) is opened to a high impedance state.
[0240] The first-second pad-port map connection (1022) is responsible for cross-connecting between the first GPIO pad (1001) and the second port (1052), and between the second GPIO pad (1002) and the first port (1051). When the first port (1051) operates as an input port, the second-second output buffer (1107) is activated, forming a port input path (pad test output path) through which data flows from the second GPIO pad (1002) toward the first port (1051). At this time, the second-second input buffer (1108) is deactivated, and the input terminal of the deactivated second-second input buffer (1108) is tied to level 0. When the second port operates as an output port, the second-first input buffer (1106) is activated, forming a port output path (pad test input path) through which data flows from the second port (1052) toward the first GPIO pad (1001). At this time, the 21st output buffer (1105) is deactivated, and the output terminal of the deactivated 21st output buffer (1105) is opened to a high impedance state.
[0241] FIG. 16 is an example diagram of the third internal circuit of the first-1 pad-port map connection part of FIG. 11, and FIG. 17 is an example diagram of the third internal circuit of the first-2 pad-port map connection part of FIG. 11.
[0242] FIGS. 16 and 17 are examples of internal state circuits when both the first port (1051) and the second port (1052) operate as output ports. The first-1 pad-port map connection (1021) and the first-2 pad-port map connection (1022) operate mutually exclusively according to a map selection signal, and the unselected pad-port map connection remains in an inactive state.
[0243] The first-1 pad-port map connection (1021) is responsible for connecting to output data from the first port (1051) to the first GPIO pad (1001) and from the second port (1052) to the second GPIO pad (1002). Since the first port (1051) operates as an output port, the first input buffer (1102) is activated, and a port output path (pad test input path) is formed in which data flows from the first port (1051) toward the first GPIO pad (1001). At this time, the first output buffer (1101) is deactivated, and the output terminal of the deactivated first output buffer (1101) becomes a high-impedance state. Since the second port (1052) operates as an output port, the 12th input buffer (1104) is activated, and a port output path (pad test input path) is formed in which data flows from the second port (1052) toward the second GPIO pad (1002). At this time, the 12th output buffer (1103) is deactivated, and the output terminal of the deactivated 12th output buffer (1103) becomes a high impedance state.
[0244] The first-second pad-port map connection (1022) is responsible for cross-connecting to output data from the first port (1051) to the second GPIO pad (1002) and from the second port (1052) to the first GPIO pad (1001). When the first port (1051) operates as an output port, the second-second input buffer (1108) is activated, forming a port output path (pad test input path) through which data flows from the first port (1051) to the second GPIO pad (1002). At this time, the second-second output buffer (1107) is deactivated, and the output terminal of the deactivated second-second output buffer (1107) becomes a high-impedance state. When the second port (1052) operates as an output port, the second input buffer (1106) is activated, and a port output path (pad test input path) is formed in which data flows from the second port (1052) toward the first GPIO pad (1001). At this time, the second output buffer (1105) is deactivated, and the output terminal of the deactivated second output buffer (1105) becomes a high impedance state.
[0245] Hard Macro Interface
[0246] FIG. 18 is a configuration diagram illustrating a hard macro interface according to the present invention.
[0247] The hard macro interface of FIG. 18 may be one of the first hard macro interface (241), the second hard macro interface (242), the fourth hard macro interface (244), and the sixth hard macro interface (246) of FIG. 2. If the IP block is a hard macro block, the hard macro interface may be placed between the GPIO multiplexer and the IP block.
[0248] The hard macro interface provides port I / O to each port of the hard macro block in test mode. The port I / O may include at least one of pad test I / O, function port I / O, and register test data transmitted from the pad group controller. Through these various I / O paths, the hard macro interface enables flexible control and verification of each port of the hard macro block under test mode, and allows for the selective configuration of appropriate signal paths according to various test purposes. Accordingly, logic testing, signal flow verification, and fault diagnosis within the hard macro block can be performed efficiently.
[0249] A port of a hard macro block (1403) is connected to the hard macro interface, and a hard macro function controller (1401) that provides function port input / output to the hard macro port in function mode and test mode, and a GPIO multiplexer (1402) that performs pad test input / output with a GPIO pad in test mode are connected.
[0250] The hard macro interface includes a plurality of hard macro interface units (1410) configured to correspond to one port of the hard macro block and transmitting port input / output to the corresponding hard macro port in test mode, and a test controller (1411) that controls register test data to be output.
[0251] The hard macro interface unit (1410) includes decoding logic (1413) that selects one of register test data, pad test input / output transmitted from the GPIO multiplexer (1402), and function port input / output transmitted from the hard macro function controller (1401), and connects it to a port of the hard macro block (1403). The hard macro interface unit (1410) further includes a first buffer and a second buffer (1414, 1415) inserted into the input path and output path, respectively, between the decoding logic (1413) and the port of the hard macro block (1403).
[0252] Depending on the test mode type, the hard macro port may need to transmit and receive function port I / O identical to that of the function mode. For example, to test the performance of other hard macro blocks or other ports within the same hard macro block, function port I / O identical to that of the function mode may need to be transmitted and received on a specific port. Additionally, depending on the test mode type, pad test I / O transmitted and received from GPIO pads may need to be transmitted and received through the corresponding port. In this case, it is possible to test whether signal transmission and reception between the GPIO pad and the port is performed normally.
[0253] For another test mode type, predetermined register test data may need to be input into a hard macro port. In this case, the register test data is set to a fixed value and provided through the port to configure test scenarios. Conversely, in certain test mode types, the port may not be used for testing.
[0254] The SoC designer can pre-set the type of data to be input / output to the hard macro port according to each test mode type, and the decoding logic (1413) is configured to select at least one of pad test input / output, function port input / output, and register test data for each test mode type based on the SoC designer's settings and connect it to the corresponding port.
[0255] The test controller (1411) may be a controller based on the IEEE 1687 standard (IJTAG: Internal Joint Test Action Group). The test controller (1411) can set the test data setting register (1412) through the IJTAG interface. The register (1412) may each be composed of a test data register (TDR) that operates in a shift manner.
[0256] The test data setting register (1412) may be configured as a flip-flop and provides register test data that is output to a port of a hard macro block according to the test mode type. This register test data may be a single-bit or multi-bit signal, and to support multi-bit data, the test data setting register (1412) may include a plurality of flip-flops.
[0257] Many variations and modifications may be made to the embodiments described above, and such elements should be understood as being one of other acceptable examples. All such modifications and variations are intended to be included within the scope of this disclosure and protected by the following claims.
[0258] Although the present invention has been described above with specific details such as specific components, limited embodiments, and drawings, this is provided only to aid in a more comprehensive understanding of the invention, and the invention is not limited to the above embodiments, and a person skilled in the art to which the invention belongs can make various modifications and variations from this description.
[0259] Accordingly, the scope of the present invention is not limited to the embodiments described above, and all modifications equivalent to or equivalent to the claims set forth below, as well as the claims described below, shall be considered to fall within the scope of the scope of the present invention.
Claims
1. A port connection unit configured to include a first input / output path for connecting a first pad test input / output of a first GPIO pad among a plurality of GPIO pads constituting a pad group to a first IP block port, and a second input / output path for connecting the first pad test input / output to a second IP block port, and A test controller configured to activate the first input / output path in a first test mode type and activate the second input / output path in a second test mode type, General-purpose I / O multiplexer.
2. In Paragraph 1, The above port connection unit is configured to further include a third input / output path for connecting the first pad test input / output to a third IP block port, and the test controller is configured to activate the third input / output path in a third test mode type. General-purpose I / O multiplexer.
3. In Paragraph 1, The second port connection part further includes a fourth input / output path for connecting the second pad test input / output of the second GPIO pad among the plurality of GPIO pads constituting the pad group to the fourth IP block port, and a fifth input / output path for connecting the second pad test input / output to the fifth IP block port. The above test controller is configured to activate the fourth input / output path in the first test mode type and activate the fifth input / output path in the second test mode type, General-purpose I / O multiplexer.
4. In Paragraph 1, At least one of the first input / output path or the second input / output path includes an output path for transmitting a pad test output input from a GPIO pad to an IP block port and an input path for transmitting a pad test input input from an IP block port to a GPIO pad. The above test controller selectively activates one of the output path or the input path depending on the test mode type, General-purpose I / O multiplexer.
5. In Paragraph 4, The above test controller includes a controller based on the IEEE 1687 standard (IJTAG: Internal Joint Test Action Group), General-purpose I / O multiplexer.
6. In Paragraph 5, The above test controller is, A test mode type register comprising, depending on the test mode type, an input path of the first input / output path, an output path of the first input / output path, an input path of the second input / output path, or an output path of the second input / output path, wherein a port select signal is enabled and output to at least one of the input path of the first input / output path, an output path of the second input / output path, or an output path of the second input / output path. General-purpose I / O multiplexer.
7. In Paragraph 6, The above test controller sets the above test mode type register through the IJTAG interface, General-purpose I / O multiplexer.
8. In Paragraph 6, The above port connection part is, A first AND operator configured such that a first pad test output from the first GPIO pad and a first port select signal from the test mode type register are each connected to an input terminal and the first IP block port is connected to an output terminal, and A second AND operator configured such that the first pad test output and the second port selection signal from the test mode type register are each connected to an input terminal and the second IP block port is connected to an output terminal, A third AND operator configured such that the first IP block port and the third port selection signal from the test mode type register are each connected to an input terminal and the first GPIO pad is connected to an output terminal, and A fourth AND operator configured such that the second IP block port and the fourth port selection signal from the test mode type register are each connected to an input terminal and the first GPIO pad is connected to an output terminal, General-purpose I / O multiplexer.
9. A first pad mode selector connected to a first GPIO pad and configured to receive a test mode signal from a test controller and selectively connect the first GPIO pad to at least one of a first mapping group or a second mapping group; A second pad mode selector connected to a second GPIO pad and configured to receive the test mode signal and selectively connect the second GPIO pad to at least one of the first mapping group or the third mapping group; and A first mapping group configured to receive a map selection signal from the test controller and switch the connection relationship between the first GPIO pad and the second GPIO pad, respectively, and between the first port and the second port, comprising General-purpose I / O multiplexer.
10. In Paragraph 9, The above-mentioned first mapping group is, A 1-1 pad-port map connection unit configured to operate when a 1st map is selected and to connect the 1st GPIO pad to the 1st port and the 2nd GPIO pad to the 2nd port, and A first-second pad-port map connection unit configured to operate when a second map is selected and to connect the first GPIO pad to the second port and to connect the second GPIO pad to the first port, General-purpose I / O multiplexer.
11. In Paragraph 10, The above 1-1 pad-port map connection part is, A 11th output buffer connected between the 1st GPIO pad and the 1st port in the pad test output path of the 1st GPIO pad, and A 11th input buffer connected between the 1st GPIO pad and the 1st port in the pad test input path of the 1st GPIO pad, A 12th output buffer connected between the 2nd GPIO pad and the 2nd port in the pad test output path of the 2nd GPIO pad, and A first input buffer including a second input buffer connected between the second GPIO pad and the second port in the pad test input path of the second GPIO pad, General-purpose I / O multiplexer.
12. In Paragraph 11, Only one of the above 11th input buffer and the above 11th output buffer is enabled, and the others are disabled, and Only one of the above 12th input buffer and the above 12th output buffer is activated, and the other is deactivated, General-purpose I / O multiplexer.
13. In Paragraph 10, The above 1-2 pad-port map connection part is, A 21st output buffer connected between the first GPIO pad and the second port in the pad test output path of the first GPIO pad, and A 21st input buffer connected between the first GPIO pad and the second port in the pad test input path of the first GPIO pad, A 22nd output buffer connected between the 2nd GPIO pad and the 1st port in the pad test output path of the 2nd GPIO pad, and A 22nd input buffer connected between the 2nd GPIO pad and the 1st port in the pad test input path of the 2nd GPIO pad, General-purpose I / O multiplexer.
14. In Paragraph 13, Only one of the above 21st input buffer and the above 21st output buffer is enabled, and the other is disabled, and Only one of the above 22nd input buffer and the above 22nd output buffer is enabled, and the other is disabled, General-purpose I / O multiplexer.
15. In Paragraph 12, The input terminal of the disabled input buffer is fixed at level 0, and The output terminal of the disabled output buffer is opened to high impedance, General-purpose I / O multiplexer.
16. In Paragraph 14, The input terminal of the disabled input buffer is fixed at level 0, and The output terminal of the disabled output buffer is opened to high impedance, General-purpose I / O multiplexer.
17. In Paragraph 9, The above test controller includes a controller based on the IEEE 1687 standard (IJTAG: Internal Joint Test Action Group), General-purpose I / O multiplexer.
18. In Paragraph 17, The above test controller sets the mode & map selection register via the IJTAG interface, General-purpose I / O multiplexer.
19. In Paragraph 18, The above mode & map selection register is configured to output the above test mode signal and the above map selection signal according to the shift input value, General-purpose I / O multiplexer.
20. A first GPIO multiplexer configured such that at least one GPIO pad among a plurality of GPIO pads constituting a first pad group is connected to at least one port of a first block group in at least one test mode type, and A second GPIO multiplexer configured such that at least one GPIO pad among a plurality of GPIO pads constituting the first pad group is connected to at least one port of the second block group in at least one test mode type, System on Chip.
21. In Paragraph 20, At least one of the first GPIO multiplexer or the second GPIO multiplexer is a GPIO multiplexer, A port connection unit configured to include a first input / output path for connecting a first pad test input / output of a first GPIO pad among a plurality of GPIO pads constituting a pad group to a first IP block port, and a second input / output path for connecting the first pad test input / output to a second IP block port, A test controller configured to activate the first input / output path in a first test mode type and activate the second input / output path in a second test mode type, System on Chip.
22. In Paragraph 20, At least one of the first GPIO multiplexer or the second GPIO multiplexer is a GPIO multiplexer, A first pad mode selection unit connected to a first GPIO pad and configured to receive a test mode signal from a test controller and selectively connect the first GPIO pad to at least one of a first mapping group or a second mapping group; A second pad mode selector connected to a second GPIO pad and configured to receive the test mode signal and selectively connect the second GPIO pad to at least one of the first mapping group or the third mapping group; and A first mapping group configured to receive a map selection signal from the test controller and switch the connection relationship between the first GPIO pad and the second GPIO pad, respectively, and between the first port and the second port, comprising System on Chip.