Fandom

How To Wiki

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

1,795pages on
this wiki
Add New Page
Talk0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

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);
	}
}

Also on Fandom

Random Wiki