Jump to content

    

AVR CPU Core

Здравствуйте!

 

В свое время искал AVR корку, но ничего подходящего не смог найти.

В результате был создан данный проект, которым и хочу поделиться.

 

В проекте создан CPU с SPI (master), GPIO, интерфейсом к DataFlash и линиями внешних прерываний.

Тестовая программа реализует обмен по Ethernet через ENC28J60 (ARP, Ping и частично UDP).

Из особенностей CPU:

Программируемые адреса прерываний.

Уменьшенное время выполнения некоторых команд.

 

Список поддерживаемых команд находится в файле cpu.txt.

 

Файлы:

test_cpu.qar - проект с CPU.

test_avr - тестовая программа

I8I16.exe - конвертер файлов из Intel HEX в HEX для инициализации памяти в Quartus.

 

С уважением, BSACPLD.

test_cpu.rar

Share this post


Link to post
Share on other sites

А что в test_cpu.qar ? У меня ISE, Квартуса нет.

Share this post


Link to post
Share on other sites

rar подошел :beer:, но вижу, что без Квартуса все равно не обойтись. :crying:

Share this post


Link to post
Share on other sites

добавлю в свою коллекцию....авось пригодится :)

Share this post


Link to post
Share on other sites
Если есть хороший инет, можно скачать по ссылке:

ftp://ftp.altera.com/outgoing/release/61_dvd_windows.iso

Web edition позже скачаю, объем меньше.

 

...

I8I16.exe - конвертер файлов из Intel HEX в HEX для инициализации памяти в Quartus.

...

Без Квартуса залить не получится? У меня тоже есть проект с софт-процессором(самопальным), скомпилированная прошивка заливается/обновляется через последовательный порт после конфигурации.

Share this post


Link to post
Share on other sites
Web edition позже скачаю, объем меньше.

Без Квартуса залить не получится? У меня тоже есть проект с софт-процессором(самопальным), скомпилированная прошивка заливается/обновляется через последовательный порт после конфигурации.

Без Квартуса залить не получиться, потому, что память программ организована как ROM.

Если сделать логику заливки, то можно будет заливать и после конфигурации.

Данный вариант не окончательный, он является лишь частью двух больших проектов.

Я заливаю следующим образом:

1) I8I16.exe

2) Update Memory Initialization File

3) Assembler

4) JTAG

Share this post


Link to post
Share on other sites
...

Программируемые адреса прерываний.

...

Тут, конечно, оригинальный АВР курит тихонько в стороне...

Share this post


Link to post
Share on other sites

(Скачать Квартус не получилось.) Кстати, почему Циклон, а не Спартан? У Альтеры нет блочной памяти с асинхронным чтением (у Xilinx есть альтернатива - распределенная память), поэтому у софт-процессоров(альтеровских) с коротким конвейером хуже с компактностью и быстродействием.

Edited by Leka

Share this post


Link to post
Share on other sites

Пара вопросов возникла:

Есть ли возможность создать программу на "C", и скомпилить под этот процессор? У вас пример на ассемблере. Если реализовано лишь подмножество AVR, то потребуется доводка компилятора.

Или разработка программ планируется только на ассемблере?

 

И второй.

Процессор написан на AHDL. Это ограничивает его использование Альтерой. Почему небыл выбран Verilog или VHDL?

Share this post


Link to post
Share on other sites
(Скачать Квартус не получилось.) Кстати, почему Циклон, а не Спартан? У Альтеры нет блочной памяти с асинхронным чтением (у Xilinx есть альтернатива - распределенная память), поэтому у софт-процессоров(альтеровских) с коротким конвейером хуже с компактностью и быстродействием.

Cyclone потому, что этот процессор делался для проекта на Cyclone.

К тому же у Альтеры несколько выше быстродействие, в проекте для которого создавался процессор весь упор был на быстродействие логики (генератор синхроимпульсов), а не процессора.

 

Пара вопросов возникла:

Есть ли возможность создать программу на "C", и скомпилить под этот процессор? У вас пример на ассемблере. Если реализовано лишь подмножество AVR, то потребуется доводка компилятора.

Или разработка программ планируется только на ассемблере?

 

И второй.

Процессор написан на AHDL. Это ограничивает его использование Альтерой. Почему небыл выбран Verilog или VHDL?

Что Вы понимаете под подмножеством AVR? Если Вы имеете ввиду, что он совместим по системе команд, то да.

Данный процессор, скорее даже не AVR, а совместимый по командам с AVR, у него своя собственная периферия и несколько отличная организация памяти.

РОН и РВВ не отображаются на область ОЗУ. Сейчас процессор поддерживает не все команды (см. cpu.txt), если можно будет настроить компилятор соответствующим образом, то можно использовать и "C".

 

AHDL потому, что Verilog я сейчас только изучаю, а AHDL пользуюсь уже давно.

Кстати, а Вы не можете мне посоветовать какую-нибудь толковую книжку по Verilog?

Share this post


Link to post
Share on other sites
...посоветовать какую-нибудь толковую книжку по Verilog?

На русском - очень мало литературы, для первого знакомства можно:

www.compitech.ru --> архив --> 2..5'2001 С.Емец, 6..7'2001 В.Стешенко.

http://www.platan.ru/shem/pdf/verilog.pdf

http://www.platan.ru/shem/pdf/verilog2.pdf

http://www.platan.ru/shem/pdf/verilog3.pdf

Share this post


Link to post
Share on other sites
На русском - очень мало литературы, для первого знакомства можно:

www.compitech.ru --> архив --> 2..5'2001 С.Емец, 6..7'2001 В.Стешенко.

http://www.platan.ru/shem/pdf/verilog.pdf

http://www.platan.ru/shem/pdf/verilog2.pdf

http://www.platan.ru/shem/pdf/verilog3.pdf

Спасибо за ссылки! :a14:

Share this post


Link to post
Share on other sites

Так на opencores.org давно уже выложено AVR ядро, как там написано, на 100 % совместимое по системе команд, и можно использовать любой компилятор, поддерживающий AVR.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this