How to use Atmel's FPSLIC AVR MCU + FPGA chip

FPSLIC is fairly obsolete but I have a bunch so I thought I'd write down what i learned

=Software=

To get the FPSLIC to work you need various pieces of software


 * Required software
 * VHDL/Verilog synthesis tool
 * C/ASM software compiler
 * FPGA Place and Route
 * AVR-FPGA interface
 * Device Programmer
 * MCU hex file + FPGA binary combiner
 * Actual Device Programer


 * Optional
 * Simulator
 * Post-layout Co-verification

Atmel's System Designer includes all of these, but for components you can use alternative software. Most of System Designer are free to use, but a few components require licenses


 * Atmel System Designer
 * Software compiler: Atmel AVR Studio 4.11 (free)
 * Synthesis: Mentor Graphics Precision Synthesis (Requires licenses)
 * Simulator: Mentor Graphics Modelsim (Requires license)
 * FPGA Place and route: Figaro Integrated Development System (IDS)
 * AVR-FPGA interface: Integrated in System Designer
 * MCU hex file + FPGA binary combiner: Integrated in System Designer
 * Programer: Atmel Configurator Programming System (CPS)

=Examples=

Simple FPGA example
Simple led counter in verilog

module leds (clk, led0,led1,led2,led3);

input clk;

output led0; // pin 200 output led1; // 196 output led2; // 190 output led3; // 186

reg [32:0] count;

assign led0=count[16]; assign led1=count[18]; assign led2=count[20]; assign led3=count[22];

initial count = 0;

always @(posedge clk) begin count <= count + 1; end

endmodule

can be used without AVR hex file

==Simple AVR C example= Simple C program the is a counter outputting on port D
 * 1) define		F_CPU	20000000UL


 * 1) include 
 * 2) include 

/* initAT94K */ void initAT94K(void){ PORTD = 0x00; /* data out */ DDRD = 0xFF; /* io direction */ }

/* Main Program */ void main(void){ initAT94K;

for{ PORTD++; _delay_ms(10); } }