{"publisher":"Springer","publication_status":"published","conference":{"start_date":"2014-11-18","location":"Haifa, Israel","end_date":"2014-11-20","name":"HVC: Haifa Verification Conference"},"doi":"10.1007/978-3-319-13338-6_6","_id":"1869","month":"01","title":"Suraq - a controller synthesis tool using uninterpreted functions","oa_version":"None","type":"conference","citation":{"apa":"Hofferek, G., & Gupta, A. (2014). Suraq - a controller synthesis tool using uninterpreted functions. In E. Yahav (Ed.), HVC 2014 (Vol. 8855, pp. 68–74). Haifa, Israel: Springer. https://doi.org/10.1007/978-3-319-13338-6_6","short":"G. Hofferek, A. Gupta, in:, E. Yahav (Ed.), HVC 2014, Springer, 2014, pp. 68–74.","chicago":"Hofferek, Georg, and Ashutosh Gupta. “Suraq - a Controller Synthesis Tool Using Uninterpreted Functions.” In HVC 2014, edited by Eran Yahav, 8855:68–74. Springer, 2014. https://doi.org/10.1007/978-3-319-13338-6_6.","ieee":"G. Hofferek and A. Gupta, “Suraq - a controller synthesis tool using uninterpreted functions,” in HVC 2014, Haifa, Israel, 2014, vol. 8855, pp. 68–74.","mla":"Hofferek, Georg, and Ashutosh Gupta. “Suraq - a Controller Synthesis Tool Using Uninterpreted Functions.” HVC 2014, edited by Eran Yahav, vol. 8855, Springer, 2014, pp. 68–74, doi:10.1007/978-3-319-13338-6_6.","ama":"Hofferek G, Gupta A. Suraq - a controller synthesis tool using uninterpreted functions. In: Yahav E, ed. HVC 2014. Vol 8855. Springer; 2014:68-74. doi:10.1007/978-3-319-13338-6_6","ista":"Hofferek G, Gupta A. 2014. Suraq - a controller synthesis tool using uninterpreted functions. HVC 2014. HVC: Haifa Verification Conference, LNCS, vol. 8855, 68–74."},"editor":[{"last_name":"Yahav","first_name":"Eran","full_name":"Yahav, Eran"}],"alternative_title":["LNCS"],"publication":"HVC 2014","date_created":"2018-12-11T11:54:27Z","year":"2014","date_published":"2014-01-01T00:00:00Z","language":[{"iso":"eng"}],"publist_id":"5228","author":[{"last_name":"Hofferek","first_name":"Georg","full_name":"Hofferek, Georg"},{"last_name":"Gupta","id":"335E5684-F248-11E8-B48F-1D18A9856A87","full_name":"Gupta, Ashutosh","first_name":"Ashutosh"}],"user_id":"4435EBFC-F248-11E8-B48F-1D18A9856A87","page":"68 - 74","department":[{"_id":"ToHe"}],"project":[{"call_identifier":"FP7","grant_number":"267989","_id":"25EE3708-B435-11E9-9278-68D0E5697425","name":"Quantitative Reactive Modeling"},{"call_identifier":"FWF","grant_number":"S11407","name":"Game Theory","_id":"25863FF4-B435-11E9-9278-68D0E5697425"}],"volume":8855,"date_updated":"2021-01-12T06:53:44Z","intvolume":" 8855","abstract":[{"text":"Boolean controllers for systems with complex datapaths are often very difficult to implement correctly, in particular when concurrency is involved. Yet, in many instances it is easy to formally specify correctness. For example, the specification for the controller of a pipelined processor only has to state that the pipelined processor gives the same results as a non-pipelined reference design. This makes such controllers a good target for automated synthesis. However, an efficient abstraction for the complex datapath elements is needed, as a bit-precise description is often infeasible. We present Suraq, the first controller synthesis tool which uses uninterpreted functions for the abstraction. Quantified firstorder formulas (with specific quantifier structure) serve as the specification language from which Suraq synthesizes Boolean controllers. Suraq transforms the specification into an unsatisfiable SMT formula, and uses Craig interpolation to compute its results. Using Suraq, we were able to synthesize a controller (consisting of two Boolean signals) for a five-stage pipelined DLX processor in roughly one hour and 15 minutes.","lang":"eng"}],"status":"public","day":"01","quality_controlled":"1","acknowledgement":"The work presented in this paper was supported in part by the European Research Council (ERC) under grant agreement QUAINT (I774-N23)","ec_funded":1}