This section is an overview of how our service works. To take a more in-depth look you can work through our tutorials, starting here: Tutorial 1 – Learning the workflow.
This section is an overview of how our service works. To take a more in-depth look you can work through our tutorials, starting here: Tutorial 1 – Learning the workflow.
reco
. Use reco
to upload and test your code, manage builds and deploy to a remote FPGA.reco
is a simple tool with several intuitive commands, we’ll look at some of these in the relevant sections below – commands are described in bullet points. For a full list see, Tool Usage Reference.Within reco
you can enter reco help
at any time to see a list of commands. Further information about each command can be viewed using reco help <command>
.reco
to simulate, build and deploy your programs you will work within a project. You can view builds and deployments per project, which is really useful when working on several work-streams at the same time with several builds and deployments for each.NoteYou must create at least one project but beyond this you can structure your work however you wish. When running test
, build
or run
, if you do not specify a project, the results will be associated with the currently active project.create-project
is used to create a new projectprojects
displays a list of all active projects for your accountset-project
allows you to set a project to associate with future buildsError: error(s) found while checking <filename.go>
. If everything is fine you will see no output.reco check
locally type checks your kernel code.SimulateIt’s a good idea to test your code using our hardware simulator. Any errors will be highlighted and it’s considerably quicker than creating a build so will save you time during the development process.reco test run <my_cmd>
tests your code on our hardware simulator.GraphOur compiler takes your Go code through several stages to get it into a format suitable for flashing an FPGA. First, it’s translated into a language called Teak , then, using the Teak output we can generate dataflow graphs. Using the graph
command you can generate a dataflow graph for your program at any time, allowing you to analyze and optimize its performance.NoteThe ability to generate graphs is a temporary feature during our alpha development stage. Due to the complexity of the output we suggest you share your graphs with us in the ‘early access’ section of our forum, where our engineers can assist you to optimize your code. We’re looking forward to see how you get on!reco graph gen
generates a dataflow graph from the program in your current directory.reco graph list
lists all your graphs along with their unique IDs.reco graph open <graph_ID>
lets you view any graph in your default default PDF viewer.BuildWhen your program is complete and tested it needs to be built. Our compiler will check compatibility and convert it into a bit-stream format suitable for deploying to an FPGA.Build TimesBuild times are currently in the region of 4 hours. This is longer than we would like and is partly due to underlying silicon vender tools, which we are currently working to address. Although the build time is relatively long, it is not something you will have to do very often during your program development – you will mostly use our hardware simulator, which takes minutes rather than hours.reco build run
uploads the code from your current directory to the Reconfigure.io service. Building will automatically start once the upload has completed. Your Go code will be compiled and optimized to run on an FPGA.reco build list
lists all builds for the current project along with their statuses. Each build is date-stamped and given a unique ID so you can always make sure you’re using the correct build when working on large and complex projects.DeployOnce your build is complete you can deploy it to an FPGA and run your command on the host CPU.reco deployment run <build_ID> <cmd>
will deploy your build to the FPGA and run your chosen command on the host CPU. Each Reconfigure.io program consists of two main.go
files, one for the FPGA and the other to run on the host CPU. The host code, located in the program’s cmd
directory, works together with the FPGA to carry out the required tasks.