1461107160-59893bb8-004f-44ad-a0d2-ddc82f847e69

1. A method of evaluating a circuit, the method comprising:
obtaining design data for the circuit;
detecting a rule violation based on the design data;
obtaining an adjustment window for an adjustable parameter for the rule violation; and
generating a plurality of predictions based on the adjustment window.
2. The method of claim 1, wherein the generating step includes:
obtaining a calculation algorithm based on the rule violation;
generating a plurality of adjustments for the adjustable parameter based on the adjustment window; and
determining a predicted impact for each adjustment in the plurality of adjustments by applying the calculation algorithm, wherein each of the plurality of predictions comprises an adjustment and a corresponding predicted impact.
3. The method of claim 2, wherein the obtaining a calculation algorithm step includes:
obtaining a set of results for a set of full-wave simulations on sample design data for a sample circuit, wherein the sample design data includes a similar set of parameters as the design data; and
generating the calculation algorithm based on the set of results.
4. The method of claim 3, wherein the receiving step includes:
obtaining the sample design data;
performing a full-wave simulation on the sample design data;
defining a sample adjustment window for the adjustable parameter;
adjusting the sample design data for each of a plurality of adjustments in the sample adjustment window; and
repeating the performing step for each adjusted sample design data, wherein the set of results includes the result of each of the full-wave simulations.
5. The method of claim 2, wherein the obtaining a calculation algorithm step includes:
obtaining an actual measurement for a sample circuit having a similar set of parameters as the design data; and
generating the calculation algorithm based on the actual measurement.
6. The method of claim 1, further comprising obtaining a modification for implementation into the design data based on one of the plurality of predictions.
7. The method of claim 6, further comprising automatically implementing the modification into the design data.
8. The method of claim 1, wherein the detecting step includes:
obtaining a rule that defines the rule violation; and
applying the rule to the design data.
9. The method of claim 8, wherein the detecting step further includes obtaining a set of acceptable values for the rule, wherein the set of acceptable values further define the rule violation.
10. The method of claim 1, further comprising identifying one of a plurality of parameters as the adjustable parameter.
11. The method of claim 1, wherein the obtaining an adjustment window step includes automatically analyzing the design data to determine a minimum adjustment for the adjustment window.
12. A system for evaluating a circuit, the system comprising:
a modification system for obtaining design data for the circuit;
a violation system for detecting a rule violation based on the design data;
an adjustment system for obtaining an adjustment window for an adjustable parameter for the rule violation; and
a prediction system for generating a plurality of predictions based on the adjustment window.
13. The system of claim 12, further comprising a rule system for obtaining a rule that defines the rule violation, wherein the violation system applies the rule to the design data.
14. The system of claim 12, further comprising an algorithm system for obtaining a calculation algorithm based on the rule violation, wherein the prediction system generates the plurality of predictions by applying the calculation algorithm.
15. The system of claim 12, wherein each of the plurality of predictions includes:
an adjustment to the adjustable parameter; and
a predicted impact for the adjustment.
16. The system of claim 12, further comprising a feedback system for obtaining a modification for implementation into the design data based on one of the plurality of predictions.
17. The system of claim 16, wherein the modification system automatically implements the modification into the design data.
18. A program product stored on a computer-readable medium, which when executed, evaluates a circuit, the program product comprising:
program code for obtaining design data for the circuit;
program code for detecting a rule violation based on the design data;
program code for obtaining an adjustment window for an adjustable parameter for the rule violation; and
program code for generating a plurality of predictions based on the adjustment window.
19. The program product of claim 18, wherein the program code for generating includes:
program code for obtaining a calculation algorithm based on the rule violation;
program code for generating a plurality of adjustments for the adjustable parameter based on the adjustment window; and
program code for determining a predicted impact for each adjustment in the plurality of adjustments by applying the calculation algorithm, wherein each of the plurality of predictions comprises an adjustment and a corresponding predicted impact.
20. The program product of claim 18, further comprising program code for obtaining a modification for implementation into the design data based on one of the plurality of predictions.
21. The program product of claim 20, further comprising program code for automatically implementing the modification into the design data.
22. The program product of claim 18, wherein the program code for detecting includes:
program code for obtaining a rule that defines the rule violation; and
program code for applying the rule to the design data.
23. The program product of claim 18, further comprising program code for identifying one of a plurality of parameters as the adjustable parameter.
24. The program product of claim 18, wherein the program code for obtaining an adjustment window includes program code for analyzing the design data to determine a minimum adjustment for the adjustment window.
25. A circuit design tool comprising:
a modification system for managing design data for the circuit;
a violation system for detecting a rule violation based on the design data;
a parameter system for obtaining an adjustment window for an adjustable parameter for the rule violation; and
a predication system for generating a plurality of predictions based on the adjustment window.
26. The circuit design tool of claim 25, further comprising a rule system for obtaining a rule that defines the rule violation, wherein the violation system applies the rule to the design data.
27. The circuit design tool of claim 25, further comprising an algorithm system for obtaining a calculation algorithm based on the rule violation, wherein the prediction system generates the plurality of predictions by applying the calculation algorithm to the rule violation.
28. The circuit design tool of claim 25, further comprising a feedback system for obtaining a modification for implementation into the design data based on one of the plurality of predictions.
29. The circuit design tool of claim 28, wherein the modification system automatically implements the selected adjustment into the design data.
30. The circuit design tool of claim 25, wherein a user uses the modification system to modify the design data.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A variable-diameter wheel comprising:
a wheel having a folding pattern in which a unit cell is repeated and configured to be expanded or contracted so that a wheel diameter is varied;
a spoke fixedly coupled to both longitudinal ends of the wheel and configured to be expanded or contracted according to a change in a distance between both sides, such that the wheel diameter is varied; and
a variable induction shaft rotatably coupled with one of the both spokes to move the spoke in at least one lengthwise direction and configured to vary a distance between one spoke and the other spoke.
2. The variable-diameter wheel of claim 1, wherein the unit cell of the wheel comprises one pair of longitudinal edge folding parts configured to extend in a lengthwise direction of the wheel, one pair of cross edge folding parts configured to extend in a circumferential direction of the wheel, a longitudinal middle edge folding part configured to extend in the lengthwise direction at a middle portion between the longitudinal edge folding parts, and an inclined edge folding part configured to extend at each intersecting point of the longitudinal edge folding parts and the cross edge folding parts to be inclined and to intersect with the longitudinal middle edge folding part.
3. The variable-diameter wheel of claim 2, wherein the wheel comprises a wheel body having the folding pattern in which the unit cell is repeated, and a spoke connection part formed at both longitudinal ends of the wheel body and in which a unit cell for spoke connection is repeated so as to form a predetermined-sized spoke coupling hole at the both longitudinal ends of the wheel body, and
wherein the unit cell for spoke connection comprises a first connection cell in which a longitudinal peripheral edge folding part configured to extend in parallel with the longitudinal edge folding part of the unit cell located at the both ends of the wheel body forms one side thereof, and a peripheral inclined edge folding part configured to extend from an end of the longitudinal peripheral edge folding part to an intersecting point of the longitudinal middle edge folding part and the cross edge folding part of the unit cell is provided, and a second connection cell formed to be connected with at least one peripheral inclined edge folding part of both first connection cells, such that the both first connection cells are connected with each other via an equilateral triangular cell.
4. The variable-diameter wheel of claim 1, wherein the variable induction shaft comprises a sliding shaft coupled with one of the both spokes to be rotatable and to control movement of the one spoke in at least one lengthwise direction, a sliding shaft actuator configured to provide a longitudinal movement force of the sliding shaft, and a rotating shaft restrictively coupled with the other spoke to rotate the other spoke.
5. The variable-diameter wheel of claim 4, wherein the variable induction shaft further comprises a fixing shaft having a hollow in which the sliding shaft is coupled to rotatable therein and which guides longitudinal movement of the sliding shaft, and of which the other end is fixed to a body of a robot or a vehicle,
the sliding shaft extends through the hollow of the fixing shaft so that one end thereof is coupled to the one spoke, and
the rotating shaft has a hollow in which the fixing shaft is inserted, and the rotating shaft is coupled so as to be rotatable with respect to the fixing shaft, and a power transmitting part configured to receive a rotating force provided from a power source of the robot or the vehicle is provided at the other end of the rotating shaft.
6. The variable-diameter wheel of claim 5, wherein the sliding shaft extends to pass through a shaft hole of the one spoke, and a flange at least partly expanded in a radial direction is provided at an end of the sliding shaft located at an outer side of the shaft hole.
7. The variable-diameter wheel of claim 6, further comprising a sliding shaft cover configured to cover the flange of the sliding shaft located at an outer side of the one spoke, and coupled with the one spoke.
8. The variable-diameter wheel of claim 4, wherein the sliding shaft actuator comprises a driving motor installed at a body of the vehicle or the robot, and a wire wound on or unwound from the driving motor and of which an end is fixed to the sliding shaft.
9. The variable-diameter wheel of claim 1, wherein an elastic member configured to provide an elastic force in a direction in which the wheel is contracted is installed in the wheel.
10. The variable-diameter wheel of claim 1, wherein a sheet including a folding area configured to form edge folding parts which are foldable when the wheel is separated and developed, and a rigid area surrounded by the folding area is formed,
the wheel includes first and second flexible sheets formed of a flexible material, and a rigid material disposed at a position of the rigid area between the first and second flexible sheets, and
the folding area is formed by bonding the first and second flexible sheets without the rigid material interposed therebetween, and the rigid area is formed by bonding the first and second flexible sheets with the rigid material at least partly interposed therebetween.
11. The variable-diameter wheel of claim 10, wherein a through-hole is formed at an intersecting point of the edge folding parts, and a reinforcing member is coupled in the through-hole.

1461107151-3b651948-9bb8-4a89-b181-ddc7c077f266

1. A method for managing a memory apparatus, the memory apparatus comprising at least one non-volatile (NV) memory element, each of the at least one NV memory element comprising a plurality of blocks, the method applied to a controller of the memory apparatus, the controller being used to control the at least one NV element, the method comprising following steps:
temporarily storing data received from a host device into a volatile memory in the controller and utilizing the data in the volatile memory as received data, and dynamically monitoring a data amount of the received data to determine whether to immediately write the received data into the at least one NV memory element, wherein at least one write command received from the host device indicates that the host device requests to write the data; and
when determining to immediately write the received data into the at least one NV memory element, directly writing the received data into a specific block configured to be a Multiple Level Cell (MLC) memory block within a specific NV memory element of the at least one NV memory element, rather than indirectly writing the received data into the specific block by first temporarily writing the received data into any other block configured to be a Single Level Cell (SLC) memory block.
2. The method of claim 1, wherein under a situation that a memory cell in the specific block is used to store a plurality of bits, the plurality of bits need to be repeatedly written into the memory cell for a predetermined number of times, so that the memory cell is correctly programmed in the specific NV memory element, thus making each of the plurality of bits correctly stored into the memory cell for further reading; and the predetermined number of times is larger than 1.
3. The method of claim 2, wherein the step of dynamically monitoring the data amount of the received data comprises:
when the data amount of the received data reaches a predetermined data amount threshold, determining to immediately write the received data into the at least one NV memory element;
wherein a storage capacity of the volatile memory is larger than or equal to a product of the predetermined data amount threshold and the predetermined number of times, to allow at least a portion of the received data to be used in a repeated write operation of the memory cell.
4. The method of claim 3, wherein the predetermined data amount threshold is equal to a storage capacity of a set of memory cells belonging to a word-line in the specific NV memory element.
5. The method of claim 4, wherein any of the plurality of blocks comprises a predetermined number of pages; and the method further comprises:
receiving a plurality of sets of data from the host device, respectively, and temporarily storing the plurality of sets of data into the volatile memory, wherein each of the plurality of sets of data comprises a plurality of pages, and a data amount of each of the plurality of sets of data is equal to the predetermined data amount threshold; and
reading the plurality of sets of data from the volatile memory, to directly write the plurality of sets of data into the specific block, respectively, and directly writing a first set of data of the plurality of sets of data into the specific block several times, wherein a number of times the first set of data is written into the specific block reaches the predetermined number of times, so that a specific set of memory cells belonging to a specific word-line in the specific block is correctly programmed in the specific NV memory element, thus making each bit of the first set of data correctly stored in the specific set of memory cells for further reading.
6. The method of claim 2, wherein any of the plurality of blocks comprises a predetermined number of pages; and the method further comprises:
respectively receiving a first set of data comprising a plurality of pages from the host device in a page-by-page manner until a total received data amount of the first set of data reaches a predetermined data amount threshold, and temporally storing the first set of data into the volatile memory, wherein before the total received data amount of the first set of data reaches the predetermined data amount threshold, the first set of data is not written into the specific block; and
when the total received data amount of the first set of data reaches the predetermined data amount threshold, reading at least a portion of the first set of data from the volatile memory to directly write the first set of data into the specific block.
7. The method of claim 6, further comprising:
respectively receiving a second set of data comprising a plurality of pages from the host device in a page-by-page manner until a total received data amount of the second set of data reaches the predetermined data amount threshold, and temporally storing the second set of data into the volatile memory, wherein before the total received data amount of the second set of data reaches the predetermined data amount threshold, the second set of data is not written into the specific block; and
when the total received data amount of the second set of data reaches the predetermined data amount threshold, reading at least a portion of the second set of data from the volatile memory to directly write the second set of data into the specific block, and directly writing the first set of data into the specific block for a second time.
8. The method of claim 7, further comprising:
respectively receiving a third set of data comprising a plurality of pages from the host device in a page-by-page manner until a total received data amount of the third set of data reaches the predetermined data amount threshold, and temporally storing the third set of data into the volatile memory, wherein before the total received data amount of the third set of data reaches the predetermined data amount threshold, the third set of data is not written into the specific block; and
when the total received data amount of the third set of data reaches the predetermined data amount threshold, reading at least a portion of the third set of data from the volatile memory to directly write the third set of data into the specific block, directly writing the second set of data into the specific block for a second time, and directly writing the first set of data into the specific block for a third time, so that each bit of data of any page of the first set of data is correctly stored into the specific block for further reading.
9. The method of claim 1, further comprising:
before determining to immediately write the received data into the at least one NV memory element:
when at least one read command received from the host device indicates that the host device requests to read at least a portion of the data, reading at least the portion of the data from the volatile memory to respond to the host device, instead of reading at least the portion of the data from the specific NV memory element.
10. The method of claim 1, further comprising:
directly writing the received data into the specific block several times, wherein under control of the controller, a number of times the received data is written into the specific block reaches a predetermined number of times, so that a specific set of memory cells belonging to a specific word-line in the specific block is correctly programmed in the NV memory element, thus making each bit in the received data correctly stored into the specific set of memory cells for further reading.
11. A memory apparatus, comprising:
at least one non-volatile (NV) memory element, each comprising
a plurality of blocks; and

a controller, arranged to control the at least one NV element, the controller comprising a processing unit arranged to manage the memory apparatus according to a program code embedded in the processing unit or received from outside of the processing unit, wherein the controller temporarily stores data received from a host device into a volatile memory in the controller and utilizes the data in the volatile memory as received data, and dynamically monitors a data amount of the received data to determine whether to immediately write the received data into the at least one NV memory element, wherein at least one write command received from the host device indicates that the host device requests to write the data;
wherein when determining to immediately write the received data into the at least one NV memory element, the controller directly writes the received data into a specific block configured to be a Multiple Level Cell (MLC) memory block within a specific NV memory element of the at least one NV memory element, rather than indirectly writes the received data into the specific block by first temporarily writing the received data into any other block configured to be a Single Level Cell (SLC) memory block.
12. The memory apparatus of claim 11, wherein under a situation that a memory cell in the specific block is used to store a plurality of bits, the plurality of bits need to be repeatedly written into the memory cell for a predetermined number of times, so that the memory cell is correctly programmed in the specific NV memory element, thus making each of the plurality of bits correctly stored into the memory cell for further reading; and the predetermined number of times is larger than 1.
13. The memory apparatus of claim 12, wherein when the data amount of the received data reaches a predetermined data amount threshold, the controller determines to immediately write the received data into the at least one NV memory element; and a storage capacity of the volatile memory is not less than a product of the predetermined data amount threshold and the predetermined number of times to allow at least a portion of the received data to be used in a repeated write operation of the memory cell.
14. The memory apparatus of claim 13, wherein the predetermined data amount threshold is equal to a storage capacity of a set of memory cells belonging to a word-line in the specific NV memory element.
15. The memory apparatus of claim 14, wherein any of the plurality of blocks comprises a predetermined number of pages; the controller receives a plurality of sets of data from the host device, respectively, and temporarily stores the plurality of sets of data into the volatile memory, wherein each of the plurality of sets of data comprises a plurality of pages, and a data amount of each of the plurality of sets of data is equal to the predetermined data amount threshold; and the controller reads the plurality of sets of data from the volatile memory to directly write the plurality of sets of data into the specific block, respectively, and directly writes a first set of data of the plurality of sets of data into the specific block several times, wherein a number of times the first set of data is written into the specific block reaches the predetermined number of times, so that a specific set of memory cells belonging to a specific word-line in the specific block is correctly programmed in the specific NV memory element, thus making each bit of the first set of data correctly stored in the specific set of memory cells for further reading.
16. A controller of a memory apparatus, the memory apparatus comprising at least one non-volatile (NV) memory element each comprising a plurality of blocks, the controller comprising:
a processing unit, arranged to manage the memory apparatus according to a program code embedded in the processing unit or received from outside of the processing unit, wherein the controller temporarily stores data received from a host device into a volatile memory in the controller and utilizes the data in the volatile memory as received data, and dynamically monitors a data amount of the received data to determine whether to immediately write the received data into the at least one NV memory element, wherein at least one write command received from the host device indicates that the host device requests to write the data; and
wherein when determining to immediately write the received data into the at least one NV memory element, the controller directly writes the received data into a specific block configured to be a Multiple Level Cell (MLC) memory block within a specific NV memory element of the at least one NV memory element, rather than indirectly writes the received data into the specific block by first temporarily writing the received data into any other block configured to be a Single Level Cell (SLC) memory block.
17. The controller of claim 16, wherein under a situation that a memory cell in the specific block is used to store a plurality of bits, the plurality of bits need to be repeatedly written into the memory cell for a predetermined number of times, so that the memory cell is correctly programmed in the specific NV memory element, thus making each of the plurality of bits correctly stored into the memory cell for further reading; and the predetermined number of times is larger than 1.
18. The controller of claim 17, wherein when the data amount of the received data reaches a predetermined data amount threshold, the controller determines to immediately write the received data into the at least one NV memory element; and a storage capacity of the volatile memory is larger than or equal to a product of the predetermined data amount threshold and the predetermined number of times to allow at least a portion of the received data to be used in a repeated write operation of the memory cell.
19. The controller of claim 18, wherein the predetermined data amount threshold is equal to a capacity of a set of memory cells belonging to a word-line in the specific NV memory element.
20. The controller of claim 19, wherein any of the plurality of blocks comprises a predetermined number of pages; the controller receives a plurality of sets of data from the host device, respectively, and temporarily stores the plurality of sets of data into the volatile memory, wherein each of the plurality of sets of data comprises a plurality of pages, and a data amount of each of the plurality of sets of data is equal to the predetermined data amount threshold; and the controller reads the plurality of sets of data from the volatile memory to directly write the plurality of sets of data into the specific block, respectively, and directly writes a first set of data of the plurality of sets of data into the specific block several times, wherein a number of times the first set of data is written into the specific block reaches the predetermined number of times, so that a specific set of memory cells belonging to a specific word-line in the specific block is correctly programmed in the specific NV memory element, thus making each bit of the first set of data correctly stored in the specific set of memory cell for further reading.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. An electric machine comprising:
a laminated stack including first and second additively manufactured conductive phase coils, each of the first and second additively manufactured phase coils comprised of a plurality of conductive strands; and
an additively manufactured end winding that conductively couples the first and second phase coils, wherein the end winding has a non-circular cross-sectional geometry.
2. The electric machine of claim 1, wherein the non-circular cross-sectional geometry is quadrilateral.
3. The electric machine of claim 2, wherein the non-circular cross-sectional geometry is rectangular.
4. The electric machine of claim 2, wherein the end winding twists 180\xb0 between the first and second phase coils.
5. The electric machine of claim 1, wherein the additively manufactured end winding has a stair-stepped geometry.
6. The electric machine of claim 2, wherein the end winding further comprises:
first and second linear legs extending from the first and second phase coils, respectively; and
a semicircular bridge arranged perpendicular to the laminated stack, wherein the semicircular bridge is connected to both the first and second linear legs;

wherein the first and second linear legs and the semicircular bridge each comprise a plurality of conductive portions embedded in an insulating material.
7. The electrical machine of claim 1, and further comprising a plurality of slots each containing two phase coils.
8. The electrical machine of claim 7, wherein the two phase coils in each slot are separated from one another by a predetermined minimum distance.
9. The electrical machine of claim 1, wherein the laminated stack has a first height, and the end windings have a second height, and the ratio of the first height to the second height is greater than 6 to 1.
10. An end winding structure for an electric machine having a plurality of conductive phase coils additively manufactured within a laminated stack, the end winding comprising:
a plurality of conductive portions configured to selectively interconnect a plurality of strands of the phase coils;
an insulator material surrounding each of the plurality of conductive portions, wherein a fill factor of the strands comprising the phase coils is greater than 50%.
11. The end winding structure of claim 10, wherein the end winding is arranged along an optimized path.
12. The end winding structure of claim 10, wherein the plurality of conductive portions are arranged in a region that has a non-circular cross-section.
13. The end winding structure of claim 12, wherein the region has a quadrilateral cross-section.
14. The end winding structure of claim 10, wherein the laminated stack has a first height, and the plurality of conductive portions have a second height, and the ratio of the first height to the second height is greater than 6 to 1.
15. The end winding structure of claim 10, wherein the plurality of phase coils are connected by a plurality of end windings in an FSCW pattern.
16. The end winding structure of claim 10, wherein the end winding includes a 180\xb0 twist.
17. The end winding structure of claim 10, wherein the conductive end winding further comprises:
first and second linear legs extending from the first and second phase coils, respectively; and
a semicircular portion arranged perpendicular to the laminated stack, wherein the semicircular portion is connected to both the first and second linear legs.
18. The end winding structure of claim 17, wherein each of the linear legs extend from the laminated stack at an angle 8 that is between 0\xb0 and 90\xb0.
19. The end winding structure of claim 10, wherein at least two end windings are separated from one another by at least a predetermined minimum distance.
20. The end winding structure of claim 19, wherein the distance between any two adjacent end windings is constant.