This paper presents new techniques in two different areas. Firstly, it proposes a solution to the problem of testing embedded processors. Towards this end, it discusses the automatic generation of executable test programs from a specification of test patterns for processor components. Secondly, the paper shows how constraint logic programming (CLP) improves the software production process for design automation tools. The advantages of CLP languages include: built-in symbolic variables and the built-in support for constraints over finite domains such as integers and Booleans.
This paper describes the application of CLP (constraint logic programming) to several digital circuit design problems. It is shown that logic programming together with efficient constraint propagation techniques is an adequate programming environment for complex real world problems like high level synthesis, simulation, code generation, and memory synthesis. Different types of constraints -Boolean, integer, symbolic, structural, and type binding ones -are used to express relations between the components of a digital circuit and efficient propagation is achieved by the coroutining mechanism. To deal with the increasing complexity of digital circuits we use HDL's (hardware description languages) to represent structure and behaviour of circuits.
I IssuesThis paper describes the successful use of logic programming extended by constraints to solve complex real world problems in the area of digital circuit design: high level synthesis, simulation, code generation, and memory synthesis. Instead of other systems in this area ours are able to work on a high level of abstraction and to deal with hardware description languages (HDLs).
II ResultsIt has been shown that logic programming extended by constraints is an adequate mechanism to solve problems in the area of digital circuit design. Working systems for synthesis, simulation, test, code generation, and memory synthesis have been implemented in ECLIPSE [5]. Boolean, linear, structural, and type binding constraints are used to restrict the design space. So unneccessary backtracking as performed in PROLOG could be avoided. Using the combination of logic computation and constraints leads to new concepts to solve these kinds of problems. Some examples of effective constraints are given. Results are considered in the context of runtime, length of code, and design space restriction.
III Significance and Relevance to the ConferenceAn important aspect for developing a new programming paradigm is to demonstrate its advantages and disadvantages. The only possibility to do this is by studying applications of the paradigm. Preferred application areas for the new style have to be found and tested to close the gap between the theoretical framework and potential applications.So this paper describes practical applications of combining computational logics and constraints. Several types of constraints -Boolean, linear, structural and type binding constraints -are used to develop working systems for complex real world problems in the area of digital circuit design. It is shown that the combination of logic programming and constraints gets practical relevance even for large software products.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.