| |
Микропроцессор для встроенного применения.
Данный процессор разрабатывался для ПЛИС семейств 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
|
|