На главную страницу
Программатор КР1878ВЕ1 (USB)
Загрузчик ATmega8/16 (USB)
Последовательный программатор AVR, EEPROM (USB)
Программирование ПЛИС Altera
download
Справочник
Ссылки на другие сайты
Напишите автору
Микропроцессор для встроенного применения.

Данный процессор разрабатывался для ПЛИС семейств Cyclone II, III, Stratix II, III.

Характеристики процессора:
- Язык описания SystemVerilog 2005.
- Совместимоть по системе команд с микроконтроллерами семейства AVR.
- Максимальная тактовая частота 50 МГц (кристалл EP2C8T144C6).
- Максимальный объем ПЗУ команд 4K слов.
- Максимальный объем ОЗУ 64K.
- Стек вынесен в отдельную память (512 байт).
- Регистры РОН и РВВ не отображаются на область ОЗУ.
- Программируемые адреса прерываний.
- Уменьшенное время выполнения многотактовых команд (см. файл "система команд.html").
- Малая занимаемая площадь на кристалле (ядро ~2000 LE).
- GPIO интерфейс.
- Master SPI с двойной буферизацией на прием и передачу.
- Порт для подключения FT245BM.
- Возможность добавления пользовательской периферии (см. файл AVR_CPU.v).

Пример подключения к проекту:

`timescale 1 ns / 1 ps

module test_cpu
(
	// clock
	input clk,
	// reset
	input reset_n,
	// INT
	input [2:0] INT,
	// GPIO
	inout [7:0] PORTA,
	inout [7:0] PORTB,
	// GPO
	output [7:0] PORTC,
	output [7:0] PORTD,
	// GPI
	input [7:0] PINE,
	// SPI0
	input SPISS0n,
	inout MOSI0,
	inout MISO0,
	inout SCK0,
	// SPI1
	output SCK1,
	output MOSI1,
	input MISO1,
	// FT245IO
	input NRXF,
	input NTXE,
	inout [7:0] IO,
	output WR,
	output NRD,
	// UART0
	input RXD0,
	output TXD0
) ;

wire [7:0] data_out ;
reg [7:0] data_out_clk = 0 ;
wire [7:0] data_out_q ;
wire [7:0] data_in ;
wire [15:0] address ;
reg [15:0] address_clk = 0 ;
wire MEMR ;
wire MEMW ;
reg MEMW_CLK = 1'b0 ;


assign data_in = (MEMW_CLK & (address_clk == address))? data_out_clk:data_out_q ;

always_ff @(posedge clk) begin
	data_out_clk <= data_out ;
	address_clk <= address ;
	MEMW_CLK <= MEMW ;
end

RAM0	CPU_RAM (
	.data (data_out),
	.rdaddress (address[8:0]),
	.rdclock (~clk),
	.wraddress (address[8:0]),
	.wrclock (clk),
	.wren (MEMW),
	.q (data_out_q)
	) ;


AVR_CPU	#(
	.INIT_PROGRAM ("load_cpu/load_cpu.hex"),
	.PROGRAM_MEMORY (4096),
	.DEVICE_FAMILY ("Cyclone II")
	)
	
	soft_AVR (
	// clock
	.clock (clk),
	// reset
	.reset_n (reset_n),
	// INT
	.INT (INT),
	// GPIO
	.PORTA (PORTA),
	.PORTB (PORTB),
	// GPO
	.PORTC (PORTC),
	.PORTD (PORTD),
	// GPI
	.PINE (PINE),
	// RAM
	.data_in (data_in),
	.address (address),
	.data_out (data_out),
	.MEMR (MEMR),
	.MEMW (MEMW),
	// SPI0
	.SPISS0n (SPISS0n),
	.SCK0 (SCK0),
	.MOSI0 (MOSI0),
	.MISO0 (MISO0),
	// SPI1
	.SCK1 (SCK1),
	.MOSI1 (MOSI1),
	.MISO1 (MISO1),
	// FT245IO
	.NRXF (NRXF),
	.NTXE (NTXE),
	.IO (IO),
	.WR (WR),
	.NRD (NRD),
	// UART0
	.RXD0 (RXD0),
	.TXD0 (TXD0)
	) ;

endmodule


В качестве среды разработки ПО для микропроцессора используется AvrAssembler2 и IAR.

Исходные коды процессора можно скачать в разделе download или щёлкнув по этой ссылке:
soft-AVR_v11_beta.exe - архив проекта в формате Quartus II 9.1 SP2.

Данные исходные коды предназначены только для НЕКОММЕРЧЕСКОГО использования!!!


www.atmel.com
www.altera.com

Hosted by uCoz