To get started quickly Analogue provides a core template with the appropriate JSON files and a sample core. You can download the core template here.
To begin, open the core template in your text editor of choice.
Configure your core by editing your JSON files as needed. For details view the Documentation for JSON files.
Develop and compile your core with Quartus.
To debug your core on Pocket it is necessary to package the core for development and involves a few simple steps:
Place the files on an SD Card using USB-Link mode or a computer. For additional details please view Packaging A Core.
After populating your SD Card you will need to connect your computer to Pocket via JTAG located along the bottom edge. Depending on your model, this may require removing the rear cover with a T6 screwdriver.
Left: The four screw locations for removing the rear cover
Right: JTAG pin 01 location
Do not remove the battery or disassemble Pocket.
Only use Intel approved JTAG devices or cables to avoid damage. Observe ESD precautions handling static-sensitive devices when accessing the JTAG.
After a core is running the developer can at any time reload the FPGA bitstream over JTAG. Pocket will automatically re-initialize the core with the exact same starting conditions. Any previously selected assets will be remembered and reloaded. All other stateful data is not transferred between reloads. JSON files will be reinitialized reflecting any changes made between reloads.
Developers can optionally mount the SD card via the USB-C connection on Pocket. This is a convenient feature for iteration workflows such as quickly adjusting JSON files or replacing binary files. Transfer speeds are limited to < 1MBps and large file transfers are not recommended. This feature can be accessed in the Tools > Developer section of Analogue OS.
For additional details please view Packaging A Core.
/Cores/AuthorName.CoreName
foldercore.json
file under metadata
..zip
fileEach core should be packaged with a version number. We encourage versioning to follow SemVer. When a core is packaged check that core.metadata.version
in core.json
value is updated along with the date_released
timestamp.
.zip
the same as CoreAuthor.CoreName_Version_Date.zip