<html>	<head>		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">		<meta name="generator" content="GoLive CyberStudio 3">		<title>Walkup and Borriello Tech Report 94</title>		<csscriptdict>			<script><!--function CSURLPopupShow(formName, popupName, target) {	var popup = document[formName].elements[popupName];	window.open(popup.options[popup.selectedIndex].value, target);	popup.selectedIndex = 0;}// --></script>		</csscriptdict>	</head>	<body bgcolor="white">		<!-- the following includes a table header with a blank cell -->		<!-- this is included for all headings.     it will have the table header,   --------------------------------------------------------------------   | a sidebar menu,     |   one row with the last modified date.     |   |                     |--------------------------------------------|   | spanning two rows,  | ** This is where you are after the include.|   |---------------------|--------------------------------------------|   | include blankcell   | Your main content goes here     after the include, the user should declare another     TD that has an H1 ALIGN=CENTER title, followed by an HR.  -->		<table border="0" cellspacing="0" cellpadding="10">			<tr>				<td bgcolor="#ff8888" valign="top"><a href="index.html"><csobj w="101" h="96" t="Component" csref="testbar.html">					<csscriptdict>						<script><!--function CSURLPopupShow(formName, popupName, target) {	var popup = document[formName].elements[popupName];	window.open(popup.options[popup.selectedIndex].value, target);	popup.selectedIndex = 0;}// --></script>					</csscriptdict>					<a href="index.html" title="Chinook project home page">Home</a> <br>					<a href="people.html" title="Chinook team members">People</a> <br>					<a href="publications.html" title="Publications for the Chinook project">Publications</a> <br>					<a href="links.html" title="Links to other codesign pages">Links</a> <br>					<a href="aboutLogo.html" title="The Chinook logo">Logo</a> 					<p><csobj w="95" h="18" t="URLPopup" data='{ 0 = { label = &quot;Choose...&quot;; selected = &quot;YES&quot;; }; 1 = { label = &quot;Home&quot;; url = &quot;index.html&quot;; }; 2 = { label = &quot;People&quot;; url = &quot;people.html&quot;; }; 3 = { label = &quot;Publications&quot;; url = &quot;publications.html&quot;; }; 4 = { label = &quot;Links&quot;; url = &quot;links.html&quot;; }; 5 = { label = &quot;Logo&quot;; url = &quot;aboutLogo.html&quot;; }; }' target="_top">					<form method="POST" name="cs_form_name_0">					<select name="cs_popup_name_0" onchange="CSURLPopupShow('cs_form_name_0', 'cs_popup_name_0', '_top');">						<option selected>Choose... 						<option value="index.html">Home 						<option value="people.html">People 						<option value="publications.html">Publications 						<option value="links.html">Links 						<option value="aboutLogo.html">Logo 					</select> 					</form>					</csobj></csobj></a></td>				<td valign="top">					<dl>						<dt>[WB94b] E. A. Walkup and G. Borriello, 						<dd>&quot;Automatic Synthesis of Device Drivers for Hardware/Software Co-design&quot; 						<dd><em>University of Washington Department of Computer Science Technical Report 94-06-04</em> 					</dl>				</td>			</tr>			<tr>				<td bgcolor="#ff8888" valign="top"><!--1st col-->					&nbsp; 					<center>						<p><a href="http://www.cs.washington.edu/research/lis/papers/pdf/walkup-driverTR.pdf"><font size="-1"><img src="pdf-icon.gif" border="0"><br>						PDF 3.0<br>						(192K)</font></a><font size="-1"><br>						<a href="http://www.cs.washington.edu/research/lis/papers/postscript/walkup-driverTR.ps"><img src="ps-icon.gif" border="0"><br>						postscript(187K)</a></font> </center>				</td>				<td valign="top"><!-- 2nd col-->					Automatically synthesizing device drivers, the hardware and software needed to interface a device to a processor, is an important element of hardware/software co-design. Driver software consists of the sequences of instructions needed for the processor to control its interactions with the device. Driver hardware consists of the digital logic necessary to physically connect the devices and generate signal events while meeting timing constraints. We describe an approach that begins with device specifications in the form of timing and state diagrams and determines which signals can be controlled directly from software and which require indirect control through intervening hardware. Minimizing this hardware requires solving a simultaneous scheduling and partitioning problem whose goal is to limit the number of wires whose events are not directly generated by the processor software. We show that even the simplest version of this problem is NP-hard and discuss a heuristic solution that should work well in practical situations. </td>			</tr>		</table><!--   this is a template for the footer.  It just echoes the   last modification date and has a link back to Chinook.-->		<hr>		<address>Last modified on Monday, 07-Sep-1998 19:21:41 PDT		</address>	</body></html>ÿ