We claim:
1. An automated method of testing implementations of an instruction set architecture (ISA) comprising the steps of:
defining a finite state transition system model of the ISA;
traversing the finite state model to find a state sequence of interest; and
automatically transforming a description of the state sequence of interest to an assembly language test program wherein the step of traversing the finite state model utilizes a satisfiability solving tool (SAT)-based bounded model checker to find state transitions that reach architectural states of interest in the state sequence of interest obeying certain designated constraints.
2. The method of claim 1 wherein the step of defining the finite state model comprises the steps of:
identifying a set of state variables;
defining a present and a next state variable pair for each of said state variables; and
defining a set of input variables.
3. The method of claim 2 wherein the set of state variables comprises variables representing programmer visible features.
4. The method of claim 2 wherein the input variables comprise a set union of a set of variables representing instructions and a set of variables representing relationships among instructions.
5. The method of claim 2 further comprising the steps of:
defining a transition function for each specified state variable based on the ISA.
6. The method of claim 4 further comprising the step of:
establishing a transition relation of the model of the ISA by ANDing the transition functions together.
7. The method of claim 1 further comprising the step of:
writing predicate functions that define constraints on the programming environment of the ISA.
8. The method of claim 7 further comprising the step of ANDing the predicate functions with the transition relation functions to insure the production of state sequences that obey the constraints.
9. The method of claim 1 further comprising the step of:
specifying types of state sequences for which it is desired to determine if said sequences are possible as formulas in a temporal logic.
10. The method of claim 9 further comprising the use of SAT-based bounded model checking on the finite state transition model of the ISA to generate instruction sequence templates that satisfy the temporal logic formulas.
11. The method of claim 10 further comprising the step of:
using an instruction sequence template and the constraints as in input to using a test program generator specific to the ISA to automatically generate assembly language programs based on specified sequences of opcode types and user specified constraints.
12. The method of claim 1 further comprising the steps of:
breaking a sequence from an initial state to a final step into two sequences, a first from the initial state to a first predetermined state and a second from the first predetermined state to the final state;
utilizing the SAT-based bounded model checker to find the first and the second sequences; and
concatenating the first and the second sequences.
13. An automated system for verifying an instruction set architecture (ISA) design comprising the steps of:
means for defining a finite state transition system model of the ISA;
means for traversing the finite state model to find a state sequence of interest; and
means for automatically transforming a description of the state sequence of interest to an assembly language test program wherein the means for traversing the finite state model utilizes a satisfiability solving tool (SAT)-based bounded model checker to find state transitions that reach architectural states of interest in the state sequence of interest obeying certain designated constraints.
14. The system of claim 13 wherein the means for defining the finite state model further comprises:
means for identifying a set of state variables;
means for defining a present and a next state variable pair for each of said state variables; and
means for defining a set of input variables.
15. The system of claim 14 wherein said set of state variables comprises variables representing programmer visible features.
16. The system of claim 14 wherein the system’s input variables comprise a set union of a set of variables representing instructions and a set of variables representing relationships among instructions.
17. The system of claim 14 further comprising:
means for defining a transition function for each specified state variable based on the ISA.
18. The system of claim 17 further comprising:
means for establishing a transition relation of the model of the ISA by ANDing the transition functions together.
19. The system of claim 13 further comprising:
means for writing predicate functions that define constraints on the programming environment of the ISA.
20. The system if claim 13 further comprising means for ANDing the predicate functions with the transition relation functions to insure the production of state sequences that obey the constraints.
21. The system of claim 13 further comprising:
means specifying types of state sequences for which it is desired to determine if said sequences are possible as formulas in a temporal logic.
22. The system of claim 21 further comprising a SAT-based bounded model checking tool to generate instruction sequence templates that satisfy the temporal logic formulas based on the finite state transition model of the ISA.
23. The system of claim 13 further comprising:
a test program generator specific to the ISA to automatically generate assembly language programs based on specified sequences of opcode types and user specified constraints.
24. The system of claim 13 further comprising:
means for breaking a sequence from an initial state to a final step into two sequences, a first from the initial state to a first predetermined state and a second from the first predetermined state to the final state;
the SAT-based bounded model checker further operable to find the first and the second sequences; and
means for automatically concatenating the first and the second sequences.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
That which is claimed:
1. A method of forming a template for a countertop, the template being usable to form a countertop configured for application to an existing countertop-receiving structure, said method comprising:
collecting data with a single portable data collection module and according to a coordinate system established with respect to a countertop-receiving structure, the data comprising a plurality of points directly corresponding to and defining the countertop-receiving structure;
processing the data so as to form a closed-boundary representation of a countertop corresponding to the countertop-receiving structure; and
dimensioning the countertop representation, the countertop representation forming a template configured so as to be usable to form the countertop, the formed countertop thereby being correspondingly engageable with the countertop-receiving structure.
2. A method according to claim 1 further comprising establishing a base horizontal plane with respect to the countertop-receiving structure so as to establish an origin of a Z-axis.
3. A method according to claim 2 further comprising establishing an X-axis having an origin corresponding to the Z-axis origin, the X-axis extending along the base horizontal plane.
4. A method according to claim 3 further comprising establishing a positive Y-direction with respect to the X-axis origin.
5. A method according to claim 1 wherein collecting data further comprises receiving a signal directly from each of the plurality of points with the data collection module, the data collection module being configured so as to be capable of determining a coordinate of each point with respect to the coordinate system.
6. A method according to claim 5 further comprising disposing a sound emitter at each of the plurality of points wherein the sound emitter is configured to emit a sound signal directly from each point, the sound signal being receivable by the data collection module.
7. A method according to claim 5 further comprising disposing a light emitter at each of the plurality of points wherein the light emitter is configured to emit a light signal directly from each point, the light signal being receivable by the data collection module.
8. A method according to claim 1 wherein collecting data further comprises determining a coordinate of each point with respect to the coordinate system with an articulating arm extending from the data collection module directly to the respective point.
9. A method according to claim 1 wherein collecting data further comprises photogrammetrically determining a coordinate of each point with respect to the coordinate system with a plurality of digital images of each point taken from a plurality of image acquisition locations remotely disposed from the countertop-receiving structure, each point being indicated with a marker disposed directly thereon, the marker being configured to have a sharp contrast with respect to the respective point.
10. A method according to claim 1 wherein processing the data further comprises arranging the plurality of points according to a two-dimensional coordinate system on at least one of a horizontal plane and a vertical plane.
11. A method according to claim 1 wherein processing the data further comprises adding an overhang component to the countertop representation, the overhang component being configured to extend outwardly of the countertop-receiving structure.
12. A method according to claim 1 wherein processing the data further comprises defining an accommodation for an accessory feature on the countertop representation, the accommodation being configured to correspond to the accessory feature upon engagement of the countertop with the countertop-receiving structure.
13. A method according to claim 1 wherein processing the data further comprises adding a backsplash component to the countertop representation, the backsplash component being configured to extend generally perpendicularly to the countertop.
14. A method according to claim 1 wherein dimensioning a countertop representation further comprises adding at least one of a numerical dimension and a note to the countertop representation.
15. A method according to claim 1 further comprising configuring the template to be cooperable with computer-aided designcomputer-aided manufacturing (CADCAM) computer software following dimensioning of the countertop representation.
16. A method according to claim 1 further comprising configuring the template to be cooperable with a Computer Numerical Control (CNC) machine following dimensioning of the countertop representation.
17. A method according to claim 1 further comprising configuring the template to as to be transmittable over an electronic data communication link following dimensioning of the countertop representation.
18. A method according to claim 1 further comprising forming the countertop according to the template following dimensioning of the countertop representation.
19. A method of forming a countertop, the countertop being configured for application to an existing countertop-receiving structure, said method comprising:
collecting data with a single portable data collection module and according to a coordinate system established with respect to a countertop-receiving structure, the data comprising a plurality of points directly corresponding to and defining the countertop-receiving structure;
processing the data so as to form a closed-boundary representation of a countertop corresponding to the countertop-receiving structure; and
dimensioning the countertop representation, the countertop representation forming a template configured so as to be usable to form the countertop; and
forming the countertop according to the template, the formed countertop thereby being correspondingly engageable with the countertop-receiving structure.
20. A method according to claim 19 further comprising establishing a base horizontal plane with respect to the countertop-receiving structure so as to establish an origin of a Z-axis.
21. A method according to claim 20 further comprising establishing an X-axis having an origin corresponding to the Z-axis origin, the X-axis extending along the base horizontal plane.
22. A method according to claim 21 further comprising establishing a positive Y-direction with respect to the X-axis origin.
23. A method according to claim 19 wherein collecting data further comprises receiving a signal directly from each of the plurality of points with the data collection module, the data collection module being configured so as to be capable of determining a coordinate of each point with respect to the coordinate system.
24. A method according to claim 19 further comprising disposing a sound emitter at each of the plurality of points wherein the sound emitter is configured to emit a sound signal directly from each point, the sound signal being receivable by the data collection module.
25. A method according to claim 19 further comprising disposing a light emitter at each of the plurality of points wherein the light emitter is configured to emit a light signal directly from each point, the light signal being receivable by the data collection module.
26. A method according to claim 19 wherein collecting data further comprises determining a coordinate of each point with respect to the coordinate system with an articulating arm extending from the data collection module directly to the respective point.
27. A method according to claim 19 wherein collecting data further comprises photogrammetrically determining a coordinate of each point with respect to the coordinate system with a plurality of digital images of each point taken from a plurality of image acquisition locations remotely disposed from the countertop-receiving structure, each point being indicated with a marker disposed directly thereon, the marker being configured to have a sharp contrast with respect to the respective point.
28. A method according to claim 19 wherein processing the data further comprises arranging the plurality of points according to a two-dimensional coordinate system on at least one of a horizontal plane and a vertical plane.
29. A method according to claim 19 wherein processing the data further comprises adding an overhang component to the countertop representation, the overhang component being configured to extend outwardly of the countertop-receiving structure.
30. A method according to claim 19 wherein processing the data further comprises defining an accommodation for an accessory feature on the countertop representation, the accommodation being configured to correspond to the accessory feature upon engagement of the countertop with the countertop-receiving structure.
31. A method according to claim 19 wherein processing the data further comprises adding a backsplash component to the countertop representation, the backsplash component being configured to extend generally perpendicularly to the countertop.
32. A method according to claim 19 wherein dimensioning a countertop representation further comprises adding at least one of a numerical dimension and a note to the countertop representation.
33. A method according to claim 19 further comprising configuring the template to be cooperable with computer-aided designcomputer-aided manufacturing (CADCAM) computer software following dimensioning of the countertop representation.
34. A method according to claim 19 further comprising configuring the template to be cooperable with a Computer Numerical Control (CNC) machine following dimensioning of the countertop representation.
35. A method according to claim 19 wherein forming the countertop further comprises forming the countertop at a location disposed remotely with respect to the countertop-receiving structure.
36. A method according to claim 19 wherein forming the countertop further comprises forming the countertop with a Computer Numerical Control (CNC) machine according to the template.
37. A computer software program product executable by a computer device so as to facilitate a process for forming a template, the template being usable to form a countertop corresponding to an existing countertop-receiving structure, said computer software program product comprising:
an executable portion capable of directing the collection of data with a single portable data collection module and according to a coordinate system established with respect to a countertop-receiving structure, the data comprising a plurality of points directly corresponding to and defining the countertop-receiving structure;
an executable portion capable of processing the data so as to form a closed-boundary representation of a countertop corresponding to the countertop-receiving structure; and
an executable portion capable of dimensioning the countertop representation, the countertop representation forming a template configured so as to be usable to form the countertop, the formed countertop thereby being correspondingly engageable with the countertop-receiving structure.
38. A computer software program product according to claim 37 further comprising an executable portion capable of establishing a base horizontal plane with respect to the countertop-receiving structure so as to establish an origin of a Z-axis.
39. A computer software program product according to claim 38 further comprising an executable portion capable of establishing an X-axis having an origin corresponding to the Z-axis origin, the X-axis extending along the base horizontal plane.
40. A computer software program product according to claim 39 further comprising an executable portion capable of establishing a positive Y-direction with respect to the X-axis origin.
41. A computer software program product according to claim 37 wherein the executable portion capable of collecting data is further capable of directing the data collection module to receive a signal directly from each of the plurality of points.
42. A computer software program product according to claim 41 further comprising an executable portion capable of determining a coordinate of each point with respect to the coordinate system from the respective signal received by the data collection module.
43. A computer software program product according to claim 42 further comprising an executable portion capable of re-establishing the coordinate system upon relocation of the data collection module.
44. A computer software program product according to claim 42 wherein the executable portion capable of collecting data is further capable of directing the data collection module to receive a sound signal from each of the plurality of points, each sound signal being emitted by a sound emitter disposed at the respective point.
45. A computer software program product according to claim 42 wherein the executable portion capable of collecting data is further capable of directing the data collection module to receive a light signal from each of the plurality of points, each light signal being emitted by a light emitter disposed at the respective point.
46. A computer software program product according to claim 37 wherein the executable portion capable of collecting data is further capable of determining a coordinate of each point from a positional signal generated by an articulating arm extending from the data collection module directly to the respective point.
47. A computer software program product according to claim 37 wherein the executable portion capable of collecting data is further capable of photogrammetrically determining a coordinate of each point with respect to the coordinate system from a plurality of digital images of each point taken from a plurality of image acquisition locations remotely disposed from the countertop-receiving structure, each of the plurality of points being indicated with a marker configured to have a sharp contrast to the respective point.
48. A computer software program product according to claim 37 wherein the executable portion capable of processing the data is further capable of arranging the plurality of points according to a two-dimensional coordinate system on at least one of a horizontal plane and a vertical plane.
49. A computer software program product according to claim 37 wherein the executable portion capable of processing the data is further capable of defining a best-fit line between points.
50. A computer software program product according to claim 37 wherein the executable portion capable of processing the data is further capable of defining a freeform line between points.
51. A computer software program product according to claim 37 wherein the executable portion capable of processing the data is further capable of defining a line between points.
52. A computer software program product according to claim 37 wherein the executable portion capable of processing the data is further capable of configuring an intersection of lines, each line being defined by a plurality of points, to facilitate formation of the closed-boundary countertop representation.
53. A computer software program product according to claim 37 wherein the executable portion capable of processing the data is further capable of adding an overhang component to the countertop representation, the overhang component being configured to extend outwardly of the countertop-receiving structure.
54. A computer software program product according to claim 37 wherein the executable portion capable of processing the data is further capable of defining an accommodation for an accessory feature on the countertop representation, the accommodation being configured to correspond to the accessory feature upon engagement of the countertop with the countertop-receiving structure.
55. A computer software program product according to claim 37 wherein the executable portion capable of processing the data is further capable of adding a backsplash component to the countertop representation, the backsplash component being configured to extend generally perpendicularly to the countertop.
56. A computer software program product according to claim 37 wherein the executable portion capable of dimensioning a countertop representation is further capable of adding at least one of a numerical dimension and a note to the countertop representation.
57. A computer software program product according to claim 37 further comprising an executable portion capable of configuring the template to be cooperable with computer-aided designcomputer-aided manufacturing (CADCAM) computer software.
58. A computer software program product according to claim 37 further comprising an executable portion capable of configuring the template to be cooperable with a Computer Numerical Control (CNC) machine.
59. A computer software program product according to claim 37 further comprising an executable portion capable of configuring the template to as to be transmittable over an electronic data communication link.
60. A computer device for facilitating a process for forming a template, the template being usable to form a countertop corresponding to an existing countertop-receiving structure, said computer device comprising:
a processing portion for directing the collection of data with a single portable data collection module and according to a coordinate system established with respect to a countertop-receiving structure, the data comprising a plurality of points directly corresponding to and defining the countertop-receiving structure;
a processing portion for processing the data so as to form a closed-boundary representation of a countertop corresponding to the countertop-receiving structure; and
a processing portion for dimensioning the countertop representation, the countertop representation forming a template configured so as to be usable to form the countertop, the formed countertop thereby being correspondingly engageable with the countertop-receiving structure.
61. A computer device according to claim 60 further comprising a processing portion for establishing a base horizontal plane with respect to the countertop-receiving structure so as to establish an origin of a Z-axis.
62. A computer device according to claim 61 further comprising a processing portion for establishing an X-axis having an origin corresponding to the Z-axis origin, the X-axis extending along the base horizontal plane.
63. A computer device according to claim 62 further comprising a processing portion for establishing a positive Y-direction with respect to the X-axis origin.
64. A computer device according to claim 60 wherein the processing portion for collecting data is further configured to direct the data collection module to receive a signal directly from each of the plurality of points.
65. A computer device according to claim 64 further comprising a processing portion for determining a coordinate of each point with respect to the coordinate system from the respective signal received by the data collection module.
66. A computer device according to claim 65 further comprising a processing portion for re-establishing the coordinate system upon relocation of the data collection module.
67. A computer device according to claim 65 wherein the processing portion for collecting data is further configured to direct the data collection module to receive a sound signal from each of the plurality of points, each sound signal being emitted by a sound emitter disposed at the respective point.
68. A computer device according to claim 65 wherein the processing portion for collecting data is further configured to direct the data collection module to receive a light signal from each of the plurality of points, each light signal being emitted by a light emitter disposed at the respective point.
69. A computer device according to claim 60 wherein the processing portion for collecting data is further configured to determine a coordinate of each point from a positional signal generated by an articulating arm extending from the data collection module directly to the respective point.
70. A computer device according to claim 60 wherein the processing portion for collecting data is further configured to photogrammetrically determine a coordinate of each point with respect to the coordinate system from a plurality of digital images of each point taken from a plurality of image acquisition locations remotely disposed from the countertop-receiving structure, each of the plurality of points being indicated with a marker configured to have a sharp contrast to the respective point.
71. A computer device according to claim 60 wherein the processing portion for processing the data is further configured to arrange the plurality of points according to a two-dimensional coordinate system on at least one of a horizontal plane and a vertical plane.
72. A computer device according to claim 60 wherein the processing portion for processing the data is further configured to define a best-fit line between points.
73. A computer device according to claim 60 wherein the processing portion for processing the data is further configured to define a free-form line between points.
74. A computer device according to claim 60 wherein the processing portion for processing the data is further configured to define a line between points.
75. A computer device according to claim 60 wherein the processing portion for processing the data is further configured to configure an intersection of lines, each line being defined by a plurality of points, to facilitate formation of the closed-boundary countertop representation.
76. A computer device according to claim 60 wherein the processing portion for processing the data is further configured to add an overhang component to the countertop representation, the overhang component being configured to extend outwardly of the countertop-receiving structure.
77. A computer device according to claim 60 wherein the processing portion for processing the data is further configured to define an accommodation for an accessory feature on the countertop representation, the accommodation being configured to correspond to the accessory feature upon engagement of the countertop with the countertop-receiving structure.
78. A computer device according to claim 60 wherein the processing portion for processing the data is further configured to add a backsplash component to the countertop representation, the backsplash component being configured to extend generally perpendicularly to the countertop.
79. A computer device according to claim 60 wherein the processing portion for dimensioning a countertop representation is further configured to add at least one of a numerical dimension and a note to the countertop representation.
80. A computer device according to claim 60 further comprising a processing portion for configuring the template to be cooperable with computer-aided designcomputer-aided manufacturing (CADCAM) computer software.
81. A computer device according to claim 60 further comprising a processing portion for configuring the template to be cooperable with a Computer Numerical Control (CNC) machine.
82. A computer device according to claim 60 further comprising a processing portion for configuring the template to as to be transmittable over an electronic data communication link.