Написание программы на NIOS II
Листинг 1. Программа для процессора NIOS II #include "sys/alt_stdio.h" unsigned long i; unsigned long j; long a = 0x0000; // start value int main () {
// load a address to r3 asm (" movhi r3, % hiadj (a)"); asm (" addi r3, r3, % lo (a)");
// load to r2 the value which contains in a variable asm (" ldw r2, 0(r3)"); // load to r1 the address of the custom component asm (" movi r1, 0x3024"); /* Event loop never exits. */ while (1) { // randomly send some values to our component asm (" addi r2, r2, 0x10"); asm (" stwio r2, 0(r1)");
asm (" addi r2, r2, 0xAB"); asm (" stwio r2, 0(r1)");
asm (" addi r2, r2, 0xCA"); asm (" stwio r2, 0(r1)");
asm (" addi r2, r2, 0xCC"); asm (" stwio r2, 0(r1)");
asm (" addi r2, r2, 0xBB"); asm (" stwio r2, 0(r1)");
asm (" addi r2, r2, 0xDD"); asm (" stwio r2, 0(r1)"); } return 0; }
Заключение В результате освоения курса "Компонентно-ориентированное проектирование" был разработан и интегрирован пользовательский компонент управления дисплеем. Инициализация и тестирование проходят успешно. С самим взаимодействием возникли трудности: модуль не всегда реагирует на воздействия со стороны системы. Прорисовка получается прерывистая и не покрывает всю область во время закрашивания. При моделировании в ModelSim все работает корректно. В этом и заключается одна из проблем построения "систем на кристалле". Работа в на аппаратуре отличается от результатов, полученных при моделировании. Чтобы решить данную проблему, нужно внимательно проанализировать все предупреждения синтезатора Quartus II и переписать небезопасные строки кода VHDL.
|