Atom/apio tutorial


#1

Hi all,

do you know where I can find a good atom/apio reference?
I need to do simple things like:

  • adding new files to the design (I was expecting to have a file where to add the files to be elaborated)
    -For some reason when I build the console windows disappear after the execution, how can I retrieve it? how can i check what went wrong?
    In particular what I want to do is add subfolders with other verolog files. If I do it for some reason the tool doesn’t elaborate the files inside the sbufloders. And I would like to abod a flat desing.

Sorry I am New to this platform, please advice if atom/apio is not the right toolchain.

Thanks,

Andrea


#2

There is a lot information on using Atom, e.g.

https://flight-manual.atom.io/

But not much on the apio plugin:

Surely that is just a matter of right-clicking on the project and selecting New File. Verilog files are automatically included in builds.

Ctrl + Alt + V opens it again. You can also go into Settings, Packages, Build package, Settings, Panel visibility and change it to what you want.


Apio - keep builder output persistent
#3

Thanks a lot!
Regarding:

adding new files to the design

Surely that is just a matter of right-clicking on the project and selecting New File. Verilog files are automatically included in builds.

-> This does work, but I would like to add folders to the project in order to give my files a bit of hierarchy. For some reason the atom apio plugin is not finding modules inside the subfolders. I wonder of there is a workaround.

Thanks again!


#4

I wanted to use subdirectories in one of my projects, so I looked into how to do it.

If you run apio init your project directory with a -s flag it creates an SConstruct file in you current directory.

Or you can copy it from https://github.com/FPGAwars/apio/blob/master/apio/resources/SConstruct.

You can then edit that file to change the build. To includes subdirectories you can change the lines that read:

# -- Get a list of all the verilog files in the src folfer, in ASCII, with
# -- the full path. All these files are used for the simulation
v_nodes = Glob('*.v')

by:

def getSubdirs(abs_path_dir) :
    lst = [ name for name in os.listdir(abs_path_dir) if os.path.isdir(os.path.join(abs_path_dir, name)) and name[0] != '.' ]
    lst.sort()
    return lst

# -- Get a list of all the verilog files in the src folder, in ASCII, with
# -- the full path. All these files are used for the simulation
modules = getSubdirs(".")
v_nodes = Glob('*.v')
for module in modules :
  v_nodes += Glob(os.path.join(module, '*.v'))

That appears to make it use subdirectories.


Build with ATOM/APIO - configuration for revision control