Programming AsAP
Prepare Module 1
$ cd $PPD_PATH/chip/testp/tests
$ mkdir module1
$ cd module1
$ vi module1.assy
$ vi module1.chip
$ vi module1.cfg
$ asap2mod.py -o module1.mod
| Module Name |
Module1 |
| Module Description |
This is module 1 |
| Icon File |
(press enter) |
$ cp module1.mod /net/pizza/2/lib/asapmap/modules/
Prepare Module 2
$ cd $PPD_PATH/chip/testp/tests
$ mkdir module2
$ cd module2
$ vi module2.assy
$ vi module2.chip
$ vi module2.cfg
$ asap2mod.py -o module2.mod
| Module Name |
Module2 |
| Module Description |
This is module 2 |
| Icon File |
(press enter) |
$ cp module2.mod /net/pizza/2/lib/asapmap/modules/
Create & Map Application
$ asapmap
Create this simple application
Map the application using the defaults
(Mapping -> Execute)
Save the output module to file
(Mapping -> Save Module)
| Module Filepath |
~/output.mod |
| Module Name |
Output |
| Module Description |
This is the output |
Simulate Output
$ cd $PPD_PATH/chip/testp/tests
$ mkdir output
$ cd output
$ mod2asap.py ~/output.mod
$ vi output_input.dat
$ cd $PPD_PATH/chip/testp
$ make TEST=output
$ make run
Preparing the Assembly File
The conversion script asap2mod.py and the asapmap code viewer
at this time don't support the AsAP 2.0 assembly syntax. You will need to
remove all the instructions from your assembly files leaving only "#output"
lines. A better alternative may be to turn your instructions into comments
in order to preserve them in the final module file after performing the
mapping. For very large applications you may benefit from writing a script
to automate this process of commenting and uncommenting instructions.
If your assembly files currently use "movi dcmem 18 num" to set
the output direction you will need you change these to
"#output mask". The script asmfmt.pl can help automate this
process but it currently only supports AsAP 1.0 syntax. This means, like
before, you must turn your instruction into comments. If you plan on doing
this yourself an example of the conversion is given below:
mov dcmem 18 3 => #output EW
Packaging your Application
There are a few simple ways to package your application, but you must
create the application in a way that's easy to store.
-
First move all your sub-modules into a new directory. Now add each
sub-module to the module palette by right clicking on the module palette
and selecting "Import Module". After mapping the application save
the project file into this new directory. Pack up this new directory
with all the sub-modules and the project file contained within it. On
the receiving side unpack the directory then do a simple search and
replace on the project file to update the absolute paths to each
sub-module.
-
Move your sub-modules into the global module directory
(/net/pizza/2/lib/asapmap/modules) changing each sub-module's
filename to have a unique prefix or suffix. Now create and map your
application as usual. Next move the project file and the sub-modules
into a new directory (this will be easier now that you have given each
sub-module a unique name). Pack up this directory. On the receiving
side simply unpack this directory and move the uniquely named sub-modules
into the global module directory.