The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

App::Scheme79asm - assemble sexp to Verilog ROM for SIMPLE processor

SYNOPSIS

  use App::Scheme79asm;
  my $asm = App::Scheme79asm->new(type_bits => 3, addr_bits => 5);
  $asm->parse_and_print('(number . 70)');

DESCRIPTION

NOTE: this module does not do much at the moment.

SIMPLE is a LISP processor defined in the 1979 Design of LISP-Based Processors paper by Steele and Sussman.

The SIMPLE processor expects input in a particular tagged-pointer format. This module takes a string containing a sequence of S-expressions of the form (tag . value) representing a tagged pointer. Here the tag is either a number or one of several predefined values (see the source for a full list), and the value is either a number or another tagged pointer. These values are laid out in memory and a block of verilog code assigning the memory contents to an array named mem is printed.

More documentation and features to follow.

SEE ALSO

http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-514.pdf

AUTHOR

Marius Gavrilescu, <marius@ieval.ro>

COPYRIGHT AND LICENSE

Copyright (C) 2018 by Marius Gavrilescu

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.24.3 or, at your option, any later version of Perl 5 you may have available.