Страница 1 из 1

Примеры программ.

СообщениеДобавлено: 16 июл 2008, 09:06
samba
Есть в наличии 2 стенда SDK 6.1 Rev.1 доставшиеся от другой кафедры. Проблема в том, что никакой документации на них нет, кроме той, которую можно скачать с сайта. Самым неизвестным остается програмирование внешних воздействий (переключателей SW) и вывод на дисплей. Был бы очень благодарен за небольшие примеры программ демонстрирующие как производить вывод сообщений на дисплей и как использовать движковые переключатели.

Re: Примеры программ.

СообщениеДобавлено: 16 июл 2008, 14:45
Соратник слонопотама
Работа с переключателями:

Код: Выделить всё
module switchtest (
input [7:0] sw,
output [7:0] led
);

assign led[7:0] = sw[7:0];

endmodule



Не забудьте указать в проекте pin assignment (соответсвтие номеров выводов ПЛИС и логических сигналов, используемых в проекте - sw[7:0] и led[7:0]) - номера выводов надо посмотреть по электрической принципиальной схеме.

А чтобы выводить данные на дисплей, нужно сделать контроллер дисплея ;)

Re: Примеры программ.

СообщениеДобавлено: 16 июл 2008, 14:52
Интегральный вычислитель
Я выложил на сайт демо-прошивку, где есть примеры работы с основной периферией. Правда она под старую версию Квартуса, прийдется немного поправить код

http://embedded.ifmo.ru/index.php/docum ... 29--sdk-61

Re: Примеры программ.

СообщениеДобавлено: 17 июл 2008, 09:26
samba
Спасибо за примеры.

В комплект поставки стенда входит CDROM с комплектом тестов, примеров программирования, инструментальных программ и документацией, включающей техническое описание стенда, руководство пользователя, описание всех важнейших компонентов и принципиальную электрическую схему.
А есть ли возможность скачать этот CD в электронном виде?

Re: Примеры программ.

СообщениеДобавлено: 17 июл 2008, 11:08
Интегральный вычислитель

Re: Примеры программ.

СообщениеДобавлено: 17 июл 2008, 12:00
samba
Благодарю. Теперь буду разбираться :-)

Re: Примеры программ.

СообщениеДобавлено: 24 янв 2009, 10:26
MIX@
По-моему, выложенный диск - для базовой комплектации стенда, поскольку, отсутсвуют примеры специфичные для расширенной версии стенда. Например, хотелось бы увидеть примеры работы со SRAM.

Re: Примеры программ.

СообщениеДобавлено: 24 янв 2009, 13:50
Соратник слонопотама
а что сложного в работе со SRAM? это же не флэш, выставил данные на шины, дёрнул сигнальчики - и вуаля =)

Re: Примеры программ.

СообщениеДобавлено: 25 янв 2009, 00:31
MIX@
Проблема в том, что сигналы нужно выставлять на нескольких линиях с некоторой задержкой относительно друг друга. Я не очень представляю, как делать такой FSM, так что хотелось бы увидеть работающий пример.

Re: Примеры программ.

СообщениеДобавлено: 26 янв 2009, 12:58
Соратник слонопотама
MIX@ писал(а):Проблема в том, что сигналы нужно выставлять на нескольких линиях с некоторой задержкой относительно друг друга. Я не очень представляю, как делать такой FSM, так что хотелось бы увидеть работающий пример.

Ну в том, чтобы выставлять одновременно на нескольких линиях, надеюсь, никаких проблем нету. А что касается задержег, то всё очень просто: у тя есть 40-МГцовый тактовый сигнал, соотв. период 25 нс. Если задержка между изменением 2-х каких-либо сигналов равна нулю, то их можно менять в одном и том же состоянии автомата, если задержка должна быть больше 0, но меньше 25 нс (скажем, в документации на микросхемку указана минимальная задержка в 10 нс), то их нужно менять в следующих друг за другом состояниях, а если задержка д.б. больше 25 нс, то перед тем, как перейти в следующее состояние, нужно еще подождать несколько тактов (либо добавить счетчик, либо пустые состояния).

Пример: нужно выставить значения на шины адреса и данных, через 20 нс дёрнуть чип-энэйбл в 0, а после этого через 60 нс - райт энэйбл в 0.
Код: Выделить всё
always @(posedge clk) begin // состояния автомата будут меняться не чаще, чем 1 раз за 25 нс
  ............
   case (FSM_state)
        0: begin
            D <= 20'hFEDCB; // выставляем значение первого сигнальчика
            A <= 16'h0123;  // одновременно выставляем значение второго сигнальчика
            FSM_state <= FSM_state + 1'b1; // через 25 нс очнёмся в состоянии 1
        end
        1: begin
            СE <= 1'b0; // выставляем значение третьего сигнальчика
            FSM_state <= FSM_state + 1'b1; // через 25 нс очнёмся в состоянии 2
        end
        2: begin
            if (i >= 2) begin // выполнится через 25*3=75 нс
                WE <= 1'b0; // выставляем значение четвертого сигнальчика
                i <= 0;  // обнуляем счетчик
                FSM_state <= FSM_state + 1'b1; // через 25 нс очнёмся в состоянии 3
            end
            else
                i <= i + 1;
        end
    ............
    endcase

end

Re: Примеры программ.

СообщениеДобавлено: 30 янв 2009, 02:02
MIX@
Благодарю за пояснения.
Ещё вопрос: нужно ли при чтении подключать синхронизатор к шине данных SRAM ? Имею в виду защиту от метастабильных состояний выводов.

Re: Примеры программ.

СообщениеДобавлено: 30 янв 2009, 10:49
Соратник слонопотама
MIX@ писал(а):Благодарю за пояснения.
Ещё вопрос: нужно ли при чтении подключать синхронизатор к шине данных SRAM ? Имею в виду защиту от метастабильных состояний выводов.

Если всё делать, как положено, а не как получилось, то не нужно. В документации на микросхему памяти явно указано, в какой временной промежуток производитель гарантирует неизменность (и, соотв., отсутствие метастабильности) сигналов на шине данных при её чтении. Нужно всего лишь попасть в него :D

Re: Примеры программ.

СообщениеДобавлено: 06 дек 2011, 08:38
IZH7IZH
Интегральный вычислитель писал(а):http://embedded.ifmo.ru/images/sdk61/CD_v122_sdk61r1_191205.zip


Ссылка не работает.

Re: Примеры программ.

СообщениеДобавлено: 07 дек 2011, 13:08
admin
IZH7IZH писал(а):
Интегральный вычислитель писал(а):http://embedded.ifmo.ru/images/sdk61/CD_v122_sdk61r1_191205.zip


Ссылка не работает.

Можете посмотреть здесь в поддержке - там есть то, что Вас интересует.