Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Is such goal achiveable - AVR Soft-Core

Status
Not open for further replies.

FlyingDutch

Advanced Member level 1
Joined
Dec 16, 2017
Messages
457
Helped
45
Reputation
92
Reaction score
55
Trophy points
28
Location
Bydgoszcz - Poland
Activity points
4,941
Hello,

it comes into my mind such idea: extend AVR Soft-Core described in this post:

https://www.edaboard.com/showthread.php?388251-AVR-Soft-Core-(ATMega103)-issues-during-synthesis-and-implementation

by new instruction. I mean adding to the original design VGA framebuffer and extending "Instruction Set" (ISA) of this soft-CPU by one instruction "vgaprint". I would like to extend "instruction decoder" and "executive system" of AVR soft-core by such instruction. The VGA framebuffer will have 24 rows and 40 columns, so the fo9rmat of new instruction would be:

vgaprint(row, column, ASCI_character)


It would be an assembler instruction recognizable by AVR CPU - CPU would be able to perform such instruction and print asci_character on VGA screen.

There are two questions related to such idea:

1) Extending AVR soft-core by VGA screenbuffer (being able to print ASCII character) and extending this CPU instruction set by such vgaprint instruction. I think that after spending respectively long time for such task I should be able to do such alteration.

2) Extending AVR compiler (for example AVR-GCC) by one assembler instruction "vgaprint", and this seems to me be much difficult.The C compiler (and linker) should know how to translate such instruction to binary code (in the form undersdtandable by soft-core AVR CPU).

Could someone give me hints for described task 1) and 2) ? I also be grateful for pointing literature related to such tasks.

Thanks in advance and regards
 

It is possible, and maybe useful as a training/learning experience.
Otherwise, I think it is a bad idea. A "simpler" solution is to create a separate "vga terminal/screenbuffer" block and connect it with a byte-wide write port (memory mapped?).
This requires no change to the CPU core or the compiler.

Make such a block compatible with an existing serial terminal such as VT100 or similar.
 
Don't change the compiler. Write an assembler function that can be called from C-code.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top