Wikia

How To Wiki

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

1,794pages on
this wiki
Talk0

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


SoftwareEdit

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)


ExamplesEdit

Simple FPGA exampleEdit

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 exampleEdit

Simple C program the is a counter outputting on port D

#define		F_CPU	20000000UL

#include <avr/io.h>
#include <util/delay.h>

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

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

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

Around Wikia's network

Random Wiki