The present disclosure relates generally to wireless communication systems, and more particularly to a method and apparatus that provide multi-level clock gate controls to address scan mode power droop and voltage bump requirements.
Wireless communication devices have become smaller and more powerful as well as more capable. Increasingly users rely on wireless communication devices for mobile phone use as well as email and Internet access. At the same time, devices have become smaller in size. Devices such as cellular telephones, personal digital assistants (PDAs), laptop computers, and other similar devices provide reliable service with expanded coverage areas. Such devices may be referred to as mobile stations, stations, access terminals, user terminals, subscriber units, user equipment, and similar terms.
A wireless communication system may support communication for multiple wireless communication devices at the same time. In use, a wireless communication device may communicate with one or more base stations by transmissions on the uplink and downlink. Base stations may be referred to as access points, Node Bs, or other similar terms. The uplink or reverse link refers to the communication link from the wireless communication device to the base station, while the downlink or forward link refers to the communication from the base station to the wireless communication devices.
Wireless communication systems may be multiple access systems capable of supporting communication with multiple users by sharing the available system resources, such as bandwidth and transmit power. Examples of such multiple access systems include code division multiple access (CDMA) systems, time division multiple access (TDMA) systems, frequency division multiple access (FDMA) systems, wideband code division multiple access (WCDMA) systems, global system for mobile (GSM) communication systems, enhanced data rates for GSM evolution (EDGE) systems, and orthogonal frequency division multiple access (OFDMA) systems.
Power consumption during scan mode of circuit operation is an area of concern for high performance circuits. Mobile system modems (MSM), which may be used in many devices, may be designed to operate at more than 3 GHz. This demanding performance requirement may require extensive testing. During this testing a scan mode is used to capture information about how the MSM is behaving during testing. Logic activity during scan capture of test pattern data may be sufficient to support only the functional power budget and may not be able to sustain the higher power demands of scan capture, which may lead to excessive scan capture power and voltage droop. As a result, at-speed testing becomes challenging, or may be performed at an elevated power level, Vbump. Structural testing run with normal power and Vbump power may mask real timing defects and lead to a higher defect rate per million parts.
There is a need in the art for a method and apparatus for multi-level clock gate controls to address scan mode power droop and voltage bump requirements.
Embodiments described herein provide a method for multi-level clock gate control for testing electronic devices. The method begins when the number of clock gate controls from root level to the last leaf level are identified. These levels are then ranked from the root level to the last leaf level. Next, a number of test enable commands for testing at least one block of an electronic device are determined. During testing, these commands are used to selectively connect and disconnect the test enable commands based on the ranked clock gate levels. This method may be repeated for each block of an electronic device.
A further embodiment provides an apparatus for multi-level clock gate control for testing electronic devices. The apparatus includes a chain of at least two uncompressed flip-flops. Additional flip-flops may be added to the uncompressed flip-flop chain to provide multi-level clock gate control during testing of an electronic device. The flip-flops added to provide multi-level gate control are each in communication with an OR gate to provide the logic functions to selectively connect and disconnect the test enable command during testing. A decompressor is in communication with the chain of at least two uncompressed flip-flops and an at least one flip-flop in communication with an OR gate. A compressor is also in communication with the chain of at least two uncompressed flip-flops and the at least one flip-flop in communication with an OR gate.
A still further embodiment provides an apparatus for multi-level clock gate control for testing electronic devices. The apparatus includes: means for identifying a number of clock gate levels from root level to least leaf level; means for ranking the clock gate levels from the root level to the last leaf level; means for determining a number of test enable commands for at least one test block of an electronic device; means for selectively connecting and disconnecting the test enable commands based on the ranked clock gate levels; and means for testing the at least one electronic device.
A yet further embodiment provides a non-transitory computer-readable medium containing instructions, which when executed, cause a processor to perform the following steps: identify a number of clock gate levels from root level to last leaf level; rank the clock gate levels from the root level to the last leaf level; determine a number of test enable commands for at least one test block of an electronic device; selectively connect and disconnect the test enable commands based on the ranked clock gate levels; and test that at least one test block of the electronic device.
The detailed description set forth below in connection with the appended drawings is intended as a description of exemplary embodiments of the present disclosure and is not intended to represent the only embodiments in which the present disclosure can be practiced. The term “exemplary” used throughout this description means “serving as an example, instance, or illustration,” and should not necessarily be construed as preferred or advantageous over other exemplary embodiments. The detailed description includes specific details for the purpose of providing a thorough understanding of the exemplary embodiments of the present disclosure. It will be apparent to those skilled in the art that the exemplary embodiments of the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form in order to avoid obscuring the novelty of the exemplary embodiments presented herein.
As used in this application, the terms “component,” “module,” “system,” and the like are intended to refer to a computer-related entity, either hardware, firmware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, an integrated circuit, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a computing device and the computing device can be a component. One or more components can reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers. In addition, these components can execute from various computer readable media having various data structures stored thereon. The components may communicate by way of local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network, such as the Internet, with other systems by way of the signal).
Furthermore, various aspects are described herein in connection with an access terminal and/or an access point. An access terminal may refer to a device providing voice and/or data connectivity to a user. An access wireless terminal may be connected to a computing device such as a laptop computer or desktop computer, or it may be a self-contained device such as a cellular telephone. An access terminal can also be called a system, a subscriber unit, a subscriber station, mobile station, mobile, remote station, remote terminal, a wireless access point, wireless terminal, user terminal, user agent, user device, or user equipment. A wireless terminal may be a subscriber station, wireless device, cellular telephone, PCS telephone, cordless telephone, a Session Initiation Protocol (SIP) phone, a wireless local loop (WLL) station, a personal digital assistant (PDA), a handheld device having wireless connection capability, or other processing device connected to a wireless modem. An access point, otherwise referred to as a base station or base station controller (BSC), may refer to a device in an access network that communicates over the air-interface, through one or more sectors, with wireless terminals. The access point may act as a router between the wireless terminal and the rest of the access network, which may include an Internet Protocol (IP) network, by converting received air-interface frames to IP packets. The access point also coordinates management of attributes for the air interface.
Moreover, various aspects or features described herein may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips . . . ), optical disks (e.g., compact disk (CD), digital versatile disk (DVD) . . . ), smart cards, and flash memory devices (e.g., card, stick, key drive . . . ), and integrated circuits such as read-only memories, programmable read-only memories, and electrically erasable programmable read-only memories.
Various aspects will be presented in terms of systems that may include a number of devices, components, modules, and the like. It is to be understood and appreciated that the various systems may include additional devices, components, modules, etc. and/or may not include all of the devices, components, modules etc. discussed in connection with the figures. A combination of these approaches may also be used.
Other aspects, as well as features and advantages of various aspects, of the present disclosure will become apparent to those of skill in the art through consideration of the ensuring description, the accompanying drawings and the appended claims.
Embodiments described herein relate to an architecture for multi-level clock gate controls that address scan mode power droop and voltage bump requirements. This architecture may be used as part of a testing process for a system-on-chip (SoC) device. Testing a SoC may be complex and time consuming. During testing power consumption during the scan mode may be a major concern for high performance circuits. Many mobile system modems (MSMs) may be designed for more than 3 GHz operation. During testing of these devices the logic activity during the capture of test pattern data may lead to excessive power consumption and voltage droop.
Excessive power consumption and voltage droop may arise because the power grid may be designed to support only the functional power budget and not to sustain a high power budget that may occur during scan capture. Under such circumstances, the power grid may not be able to sustain the increased scan capture power. When this occurs, at-speed testing may become challenging or may be performed at an elevated voltage (Vnormal+Vbump). Running structural tests of the SoC with the additional voltage may mask real-time timing defects, and may lead to a higher defect rate per parts per million.
Embodiments described below utilize customizable test systems and clock gate levels to address scan mode power droop and voltage bump requirements. The approach begins with identifying the number of clock gate levels from the root level to the leaf level. These clock gate levels are then ranked from the root, which is ranked at 0, to the last leaf, which is ranked as N. Once this ranking has been completed, the number of test enable (t_en) commands that may be required for the given block to be tested may be determined. The number of t_en commands may be based on the maximum number of flip-flops in a clock domain. These test enable commands may be shared across the clock domains. Test control procedures, which may vary depending on the test tool being used, are used to trace the clock gates for connecting and disconnecting the test enable controls.
Each group of antennas and/or the area in which they are designed to communicate is often referred to as a sector of the access point. In an aspect, antenna groups are each designed to communicate to access terminals in a sector of the areas covered by access point 102.
In communication over downlinks or forward links 118 and 124, the transmitting antennas of an access point utilize beamforming in order to improve the signal-to-noise ratio (SNR) of downlinks or forward links for the different access terminals 116 and 122. Also, an access point using beamforming to transmit to access terminals scattered randomly through its coverage causes less interference to access terminals in neighboring cells than an access point transmitting through a single antenna to all its access terminals.
An access point may be a fixed station used for communicating with the terminals and may also be referred to as a Node B, an evolved Node B (eNB), or some other terminology. An access terminal may also be called a mobile station, user equipment (UE), a wireless communication device, terminal or some other terminology. For certain aspects, either the AP 102, or the access terminals 116, 122 may utilize the techniques described below to improve performance of the system.
In the transmit path, data processor 210 processes data to be transmitted and provides an analog output signal to transmitter 230. Within transmitter 230, the analog output signal is amplified by an amplifier (Amp) 232, filtered by a low pass filter 234 to remove images caused by digital-to-analog conversion, amplified by a variable gain amplifier (VGA) 236, and upconverted from baseband to RF by a mixer 238. The upconverted signal is filtered by a filter 240, further amplified by a driver amplifier, 242 and a power amplifier 244, routed through switches/duplexers 246, and transmitted via an antenna 248.
In the receive path, antenna 248 receives signals from base stations and/or other transmitter stations and provides a received signal, which is routed through switches/duplexers 246 and provided to receiver 250. Within receiver 250, the received signal is amplified by an LNA 252, filtered by a bandpass filter 254, and downconverted from RF to baseband by a mixer 256. The downconverted signal is amplified by a VGA 258, filtered by a low pass filter 260, and amplified by an amplifier 262 to obtain an analog input signal, which is provided to data processor 210.
Data processor 210 may perform various functions for wireless device 200, e.g., processing for transmitter and received data. Memory 212 may store program codes and data for data processor 210. Data processor 210 may be implemented on one or more application specific integrated circuits (ASICs) and/or other ICs.
The ARM processor 304 interfaces with the peripheral bridge 340 which also provides input and output interface with the system controller 310. The peripheral bridge communicates with multiple components using an application peripheral bus (APB) 342. An internal bus 338 operates in conjunction with the peripheral bridge 340 to communicate with additional devices within the SoC 300. The internal bus 338 may be an application specific bus (APB) or an application handling bus (AHB). Memory controller 340 interfaces with ARM processor 304 using internal bus 338. The memory controller 340 also communicates with the external bus interface (EBI) 346. Memory controller 340 is also in communication with static random access memory (SRAM) 348, and with flash memory 350. Flash memory 350 is in communication with flash programmer 354. The memory controller 344 is also in communication with peripheral data controller 352. Additional application specific logic 356 communicates with the internal bus 338 and may also have external connections. A second PIO 358 provides communication with an Ethernet medium access control (MAC) 360. The second PIO 358 also communicates with a universal asynchronous receiver/transmitter 362, a serial peripheral interface (SPI) 364, a two wire interface 366, and an analog to digital converter 368. These devices and interfaces connect through internal bus 338 with a controller area network bus (CAN) 370, universal serial bus (USB) devices 372, a pulse width modulator (PWM) controller 374, a synchro serial controller 376, and a timer/counter 378. These devices CAN 370, USB device 372, PWM controller 374, synchro serial controller 376, and timer/counter 378 interface with third PIO 380, which provides external input and output. While these elements are typical of many SoCs, other devices may be incorporated, and some may not be included.
If the test enable command (test_en) is set to 0, a logic low state, then testing relies on the functional enable (en). When the functional enable command is used, the tool run time may become very high. In addition, there may be coverage loss and a greater increase in patterns that must be tested. Attempting to solve these problems using the automatic test pattern generation functions included in many test tools does not resolve the problems as the effort required to implement such an option may be high. Moreover, run times may increase dramatically and the amount of coverage provided is less. While this option does honor the power budget is some cases, and does not result in a voltage bump, the run time and coverage problems do not compensate. In other cases, the power budget may not be honored and the problems mentioned above arise as well.
The architecture, 500 incorporates a multi-level clock gate select logic block programmed in accordance with the built-in tool functions for the specific test tool being used. Multi-level clock gate select logic block 502 receives input that may include a list of flip-flops to be tested, and may also include the specific pins to be tested. Multi-level clock gate select logic block 502 provides for selection between clock input (clk), a functional enable command (en), and a test enable command (te). Multi-level clock gate select logic provides a level 1 test enable command (L1_TE) to multi-level clock gate select logic blocks in the first level, in
There are many test tools that may be used in this type of testing including: Synopsis-TMAX, Mentor-Fast Scan, and Cadence-ET. For example, the Synopsis-TMAX tool uses additional automated test pattern generation primitives in a selection set to provide information on the flip-flops to be tested. This creates a logical function “sel1” with all of the pins listed in the command “Sel1” is the function keyword. The output of this logic will be 1 if one input is 1 with all other inputs 0. If two or more inputs are 1 the output of this logic will be 0. If all inputs are 0 then the output will also be 0. All other conditions are X. Additional automatic test pattern generation constraints may be added. When the architecture specific logical function described above is set to 1, the test tool is directed to apply the one hot decoder values are applied to the listed pins when the automatic test pattern generation function is activated.
If the Mentor-Fast Scan test tool is used, then additional automatic test pattern generation functions that are user defines are used to create the input flip-flop list. The command for these additional automatic test pattern generation functions may be: add_atpg_functions user_defined_function_name select1. For the select1 function is a high state (logic value 1) if one input is at a high state and the other inputs are at a logic low state (logic value 0). If the output of the function is a logic low state then there are at least two inputs at a logic high state, or, all inputs are at a logic low state.
For Cadence-ET the virtual constraint function may be used to enable the same functionality as described above.
Multi-level clock gate select logic block 602 provides input to each of multi-level clock gate select logic blocks 604, 606, and 608. Clock logic block 604 provides input to clock logic block 610. Clock logic block 606 provides input to clock logic block 612. Clock logic block 608 provides input to clock logic block 614.
Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the exemplary embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the exemplary embodiments of the present disclosure.
The various illustrative logical blocks, modules, and circuits described in connection with the exemplary embodiments disclosed herein may be implemented or performed with a general purpose processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
In one or more exemplary embodiments, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitter over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM EEPROM, CD-ROM or other optical disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
The previous description of the disclosed exemplary embodiments is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these exemplary embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the present disclosure. Thus, the present disclosure is not intended to be limited to the exemplary embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.