elliott forbes

DuctTape

Project

DuctTape (dt) is a high-level assembly programming language and assembler for the RISC-V instruction set. It is intended to be used during the early development stages of hardware and software tools, to aid developers in writing micro-kernel test cases for exposing bugs, exercising specific code sequences, and/or for performance validation.

Team

Justin Severeid, bachelor graduate of computer science with embedded systems emphasis

Elliott Forbes, professor of computer science & computer engineering

Publications

Severeid, J. and Forbes, E., "dt: A High-level Assembler for RISC-V," Proceedings of the 53rd Midwest Instruction and Computing Symposium, April 2020. [pdf]

Severeid, J. and Forbes, E., "Technical Reference for the dt Programming Language and Assembler," Department of Computer Science, University of Wisconsin-La Crosse, Technical Report TR04032020, April 2020. [pdf]

Presentations

Midwest Instruction and Computing Symposium, 2020. [YouTube]

Status

dt development will continue as time permits. At this point, it works for rv64i base instructions for the constructs outlined in the technical reference. It emits ELF64, flat text memory images, and binary memory images. Most testing was done on ELF64 output, and run on the SiFive HiFive Unleashed development board. Future efforts will focus on running on the SiFive HiFive Unmatched, any UWL students interested in helping with this effort should email me or stop by my office.

Source code can be downloaded here - released under the GPLv3 open source license. If you use dt in your own research, please consider citing our MICS paper above. And if you find dt helpful, please let me know - I'd like to have a rough idea of how many people have tried it. And finally, if you have any critical bug reports, just email me and let me know.