{'fraction_non_alphanumeric': 0.016628873771730914, 'fraction_numerical': 0.0, 'mean_word_length': 5.245283018867925, '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}}
The Attributed-Behavior Abstraction and Synthesis Tools

Though high-level synthesis tools seem to fit nicely into the traditional top-down VLSI design methodology in which an abstract algorithmic model is transformed into a detailed register transfer level implementation, there is an important difference between filling in the details by hand and relying on a high-level synthesis tool to do so. Unlike the hand-designer, an engineer who uses a synthesis tool is not likely to be familiar with the specific register transfer level implementation. Thus, the use of high-level synthesis tools can effectively inhibit the engineer's ability to attack design problems or make informed trade-offs at either the specification or implementation level. A solution to this problem that we have developed in this research is to expose register transfer level implementation detail to the engineer, for both analysis and modification, in terms of the original algorithmic specification of the system. We introduce a new design abstraction that can uniformly represent both the input and output of high level synthesis tools. When coupled with a new type of synthesis tool, the attributed-behavior abstraction can increase the potential for high-level design space exploration by making synthesis results accessible to the engineer.