Data Dictionary
>
FPSBASE Views
> FPSBASE.WIP_WAFER_HIST_LOOP
View FPSAPP.DASH_P_LOT_ASSIGNMENTS
This view is designed to show all of the assignments for a single lot at the current step and future steps. It should only be queried with a filter on lot. It is fast even for all steps for the lot and even faster with a filter on num_steps_away = 0 for the current step. If we need assignments for a tool or process_group then we use the appropriate NMV or SCH view.
|
Column |
Comment |
|---|---|
|
FACILITY |
Facility is included in almost every join in the DWH so this represents a definitive split. A route must have all steps on tools in the same facility. A tool must process all lots in the same facility. If your site has multiple buildings where lots run on routes using tools in multiple buildings then everything should be one facility. For example, multiple Fab buildings. But if your site has independent facilities like Fab and Test and Assembly where lot may progress from one to the next but on different routes then these should be different facilities. Since this column is in virtually every table it is critical that the value here is exactly matches what is in the MES if the MES has facility. Use facility_display for the display friendly name displayed in applications. See site_name comment for client/site/facility example. (* inherited from FPSINPUT.GEN_FACILITIES) |
|
LOT |
A lot is a group of units that process together. Usually lot_id or lot_number in MES. All units in a lot are in the same carrier but there may be multiple lots in a carrier. (* inherited from FPSINPUT.WIP_LOTS_STATIC) |
|
CARRIER |
RFID of the cassette or FOUP the lot is currently in. (* inherited from FPSINPUT.MHS_CARRIERS) |
|
NUM_STEPS_AWAY |
Number of steps away not including steps which we know will be skipped nor those which we estimate will be skipped at least x pct of the time. This x value is configurable in GEN_FACILITIES using the smp_pct_for_num_steps_away column. (* inherited from FPSBASE.WIP_STEP_FUTURE) |
|
TOOL |
Tool is generally just the main tool. The exception is when different entities on the tool run completely independently and it is physically impossible to run wafers of the same lot across multiple entities. In this exception case, we may want to assign the entities to different eqp_types and therefore we should define each entity as a tool. Please note that when we do this there is no indication whatsoever that these different entities are on the same tool. (* inherited from FPSINPUT.EQP_TOOLS) |
|
SCHED_GROUP |
This is the grouping of tools and processes which the FPS Scheduler schedules together. Since this is a parent of tool via tool->process_group and a parent of process via process->process_group, by definition each tool and each process can only be in one sched group. We need all related tools and processes to be in the same sched group for efficient scheduling. One example is sinks and furnaces because of queue times and batching. Another example is for smaller facilities like Assembly or Test where we might schedule the entire facility together. (* inherited from FPSINPUT.RTG_PROCESS_GROUPS) |
|
PROCESS_GROUP |
Process group is the critical field where tools and processes come together for the purposes of Scheduler. Process group is in both EQP_TOOLS for the tools and in RTG_PROCESSES for processes. Ideally all tools that run the same set of processes with no crossover including back-up and emergency tools would be in the same process group but it is important to note that this is not technically required for Scheduler as long as all process groups are in the same sched group. (* inherited from FPSINPUT.RTG_PROCESS_GROUPS) |
|
IS_IN_NMV_PICK_LIST |
Set to Y if lot-step is within range to be displayed in NextMove Pick List according to hours/steps_to_schedule fields in GEN_FACILITIES (* inherited from FPSBASE.WIP_STEP_FUTURE) |
|
STEP |
A single processing step within a route representing a single tool visit. Step is often a very complex string and should rarely be displayed. Instead we should use process_display. (* inherited from FPSINPUT.RTG_ROUTE_STEPS) |
|
ROUTE |
Route that has threading requirements (* inherited from FPSINPUT.RTG_STEP_THREADING) |
|
PROCESS |
Process defines what occurs at a step. Different steps can share the same process if they are identical. Process should normally determine allowed tools and recipe although it can be overridden by step, route, prd, lot, and experiment for exceptions. Each process is dynamically assigned to one or more eqp_type-process_family combinations with use_pct. One process_family is determined to be primary. If grouping is done correctly, a process should only be one eqp_group with no crossover. (* inherited from FPSINPUT.RTG_PROCESSES) |
|
EST_MACHINE_RECIPE |
Estimated machine recipe what we estimate will be the machine recipe based on information from the Recipe Management System. It is used in combination with process for throughput calculations and setup change penalty calculations. It is not necessary to estimate for all processes since this is always used in combination however it needs to be NA rather than blank since it is part of the primary key of most THP tables. Hopefully when this is not NA it should match the actual machine recipe logged for each lot during processing. (* inherited from FPSINPUT.RTG_TOOL_ASSIGNMENTS) |
|
BATCH_CRITERIA |
Lots that can run on the same batch TOOL and have the same value of BATCH_CRITERIA can run together in a batch. Therefore this is a critical column for scheduling on batch tools. If BATCH_CRITERIA is not populated, Scheduler defaults to the assumption that any WIP with the same EST_MACHINE_RECIPE can be batched together. Keep in mind that many MESs have additional constraints on batching (for example, that all WIP in a batch has the same SCRIPT_ID) and these must be incorporated into BATCH_CRITERIA to ensure that the batches are allowed by the MES. (* inherited from FPSINPUT.RTG_TOOL_ASSIGNMENTS) |
|
RCP_MAX_BATCH_SIZE_CARRIERS |
|
|
RQD_SETUP |
Rqd_setup is determined by ovr_rqd_setup in RTG_TOOL_ASSIGNMENTS and use_process_as_rqd_setup and use_est_mach_rcp_as_rqd_setup from EQP_TYPES. The latter two columns allow us to easily specify for an eqp_type that setup times should be calculated by process or est_machine_recipe. For traditional setups that are a group of recipes we use ovr_rqd_setup. (* inherited from FPSBASE.WIP_LOT_HIST) |
|
RQD_QUAL_EVENT_ID |
Used when a recipe requires a certain qual in order to be allowed to run. Often multiple recipes will require the same qual. One example is in Litho where several recipes all require a certain track monitor to pass in order to be allowed to run. When the qual has not passed (either failed or expired) then the curr_rank will automatically be set to Q which indicates the recipe is permanently allowed but not currently qualified. (* inherited from FPSINPUT.RTG_TOOL_ASSIGNMENTS) |
|
CH_ALLOWED |
List of chambers allowed using the single character CH from EQP_CHAMBERS. While the concepts of cap_entity (capacity entity) and ch_type are important to our logic we agreed that there is no RMS or EI or MES on the planet that understands these concepts. All of these systems go by tool and chambers allowed and therefore our input tables must do the same. We list all chambers that can run and then calculate subsets of these chambers based on CH_TYPE. If all chambers are the same type then we assume you can run on any one or more of the chambers allowed. If the chambers are different types then we assume that at least one chamber of each type is required to run. If you populate either RTG_TOOL_ASGN_LOT_xxx_PATH table then you can leave ch_allowed blank since it will not be used. However there is nothing wrong with populating ch_allowed as a backup plan. (* inherited from FPSINPUT.RTG_TOOL_ASSIGNMENTS) |
|
IS_BY_LOT |
|
|
CURR_BEG_PROC_INST |
|
|
TOOL_FOR_TTS |
TTS for tool is greatest(last start plus EET of last start, data_date). TTS for first lot not started is the same as the TTS for tool but we need to store TTS for tool because tool might not have any reserved lots. TTS for subsequent lots cums the EET of each lot after the first lot. (* inherited from FPSBASE.WIP_STEP_FUTURE_SCHED) |
|
EST_BEG_INST_TOOL_FOR_TTS |
|
|
CURR_RANK_DISPLAY |
|
|
ALLOWED_TOOL_LIST |
|
|
BLOCK_REASON |
|
|
GBL_SORT |
Sorting used for dispatching or allocation systems to sort future start lots based on priority, critical ratio, etc. (* inherited from FPSINPUT.WIP_STARTS) |
|
CURR_PRIORITY_DISPLAY |
|
|
EXPECTED_STEP_ENT_INST |
|
|
CURR_PROCESS_STATE |
|
|
PRIORITY_SORT |
Unique sort of priority. Sort ascending gives the order from highest to lowest priority. Therefore the smallest number in priority_sort is the highest priority. (* inherited from FPSINPUT.WIP_PRIORITIES) |
|
IS_HOLD_CURR |
|
|
SEQ_NUM |
Sequence number of step in route (* inherited from FPSINPUT.RTG_ROUTE_STEPS) |
|
COMMON_STEP |
A display-friendly field that groups similar steps together for purposes of viewing the entire line. Typically the only duplicates within a single route will be optional ordered steps in the same segment. But we will often have steps across routes that share the same common step even though exact step definition is not identical. (* inherited from FPSINPUT.RTG_COMMON_STEPS) |
|
CURR_RANK |
Current rank is dynamically calculated based on the permanent rank, temporary rank, external rank, and current conditions like tool status and current setup. Cases when it is greater than permanent rank include when the required setup does not match or when APC thread is not qualified. The only way it could be less are when either the temporary rank or external rank are set. Curr_rank is populated in WIP_EVENT_HIST for each event logged to a tool by trigger with the value from WIP_STEP_FUT_ASSIGNMENTS at the time of the event. (* inherited from FPSBASE.WIP_LOT_HIST) |