{'fraction_non_alphanumeric': 0.011255411255411256, 'fraction_numerical': 0.0, 'mean_word_length': 4.838383838383838, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
OPC recipe optimization using simulated annealing

One of the major problems in the RET flow is OPC recipe creation. The existence of numerous parameters to tune and the interdependence between them complicates the process of recipe optimization and makes it very tedious. There is usually no standard methodology to choose the initial values for the recipe settings or to determine stable regions of operation. In fact, parameters are usually optimized independently or chosen to resolve a certain issue for a specific design without quantifying its effect on the quality of the recipe or how it might affect other designs. Another problem arises when a quick fix is needed for an old recipe to build new design masks, and this causes the stacking of many customization statements in the OPC recipe, which in turns increases its complexity. Consequently, the experience of the developer is highly required to build a good as well as a stable recipe. In this context, simulated annealing is proposed to optimize OPC recipes. It will be shown how many parameters can be optimized simultaneously and how we can get insight about the stability of the recipe.