Bugs Fixes and Work Arounds

Througout our project, we have faced many problems and would like to share how to fix/work around these problems.
  1. Size of the project

    Don't be too ambitious. The project you are designing can be as big as you want. But keep in mind that you need to implement it into Actel/Xilinx chip. The suggestion is to use one chip only. So, with the Actel/Xilinx chip available now, you only allow to use as many as 547 modules. This may sound a lot but in reality, 6 to 7 entities will used up that amount. So, several features of the project may need to add or remove. But the most important thing is to have something(basic stuff) to demostrate.

  2. Time Scheduling

    Start to do your project as soon as possible. Also, work ahead if possible as the simulation part will take up a lot of time. The VHDL coding that works perfectly when simulate may not be able to run extracted Actel FPGA timing simulation as Actel doesn't support some part of the VHDL coding. (details below) plan ahead so that you have enough time to finish the project

  3. VHDL Coding

    For VHDL, it doesn't support any global variables among processes. As well, a signal cannot be used as output in two processes. For example,

    --This does not work as enable is used as output in two processes
    process(up)
    begin
    if up = '1' then
    enable <= '1';
    end if;
    end process;

    process(down)
    begin
    if down = '1' then
    enable <= '0';
    end if;
    end process;

    -- Try this
    process(up, down)
    begin
    if up = '1' then
    enable <= '1';
    elsif down = '1' then
    enable <= '0';
    end if;
    end process;

  4. VHDL Coding -> Actmap

    There are several VHDL codes that are incompatible when converting into Actel for back annotation. Watch out!


Author:

  • Cheong Wong
  • Norman Chan