A Combined Language for Hardware and Software Design
MetadataShow full item record
Due to the nature of hardware and software, their respective design languages have evolved in isolation. Sophisticated languages and design environments exist for both hardware and software; however they remain distinct and independent, both syntactically and semantically. Hardware inherently operates in parallel and therefore hardware languages have always contained pragmas to handle parallelism, albeit explicitly. Software originally was envisioned with a serial execution paradigm. For several decades, there have been attempts to develop software tool-chains that allow parallel software execution. Significant research has been done on parallel software programming by extracting parallelism implicitly (automatically). This has generally yielded poor results, and programming paradigms that are very difficult to reason about and use in practice. In this thesis we will attempt to create a single language that can design either hardware or software. Our goal is to strive for a high level of efficiency as well as adoptability. This language provides a common syntax as well as a common semantic for designing both hardware and software. In this language, parallelism is explicitly expressed for both hardware and software. To achieve our goals we have designed a hardware translator and software translator that take the new language and translate it into Verilog  for hardware, and C++  for software. We have tested the language against current hardware and software platforms with an array of algorithms and data sets. The result of this work could have a dramatic impact in the digital design industry, and ultimately change the way digital design is done, allowing a merging of software and hardware design representations. This could be significant, because each of these design representations currently have billions of dollars invested in them, and are not mergeable.
Hardware Software Co-design
Hardware Software Language
Hardware Software Design
Bass, Michael (2015). A Combined Language for Hardware and Software Design. Undergraduate Research Scholars Program. Available electronically from
Showing items related by title, author, creator and subject.
Cherry, C. L. (Energy Systems Laboratory (http://esl.tamu.edu), 1986-06)A computerized Energy Management System (EMS) is a tool that allows the user to monitor and control building heating, ventilation, and air conditioning equipment (HVAC). All computerized tools require three main ...
Kappagantula, Vijay Rama Pramod (Texas A&M University, 2003)Existing approaches in hardware-software partitioning do not consider the maximum available system power while making the partitioning decision. Such a decision is sensitive to design efficiency when the target system is ...
Expansion of the internet protocol address space with "minor" disruption of current hardware or software Wheatley, Philip Stephen (Texas A&M University, 1996)Currently, the Internet suite of protocols uses a 32 bit network layer address and requires that each machine have a unique address. The problem: 32 bits only distinguishes 2 32 or 4,294,967,296 machines. Even with four ...