Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Первый проект EPF10k
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
SMSNG
Здравствуйте, есть EPF10K10LC84, никак не получается подергать ногой (.
Спаял платку, подключил ч\з JTAG , Qwartus 8.1 чип видит, зашиваю проект (progress 100%).. на ноге 0.
Подскажите, что необходимо сделать, чтобы активировать I\Oe . Может есть у кого рабочий проект на чипе из этой серии. Буду очень благодарен.
Самостоятельно разобраться не получается, из-за трудностей с переводом документации и просто завалом новой инфы, т.к. только начинаю работать с ПЛИС. Спасибо!

CODE
module V1(
out,
in
);

input wire in;
output wire out;

assign out = in;

endmodule


Назначил out - PIN_16, in - PIN_17

этот же кусок в EPM7064 работает.


sazh
Цитата(SMSNG @ Dec 27 2011, 06:24) *
Здравствуйте, есть EPF10K10LC84, никак не получается подергать ногой (.


Она на базе статической ячейки памяти.
За успешную конфигурацию кристалла отвечает пин config_done, подтянутый резистором к vcc i/o (лог 1)
Может быть не контакт, если в панельку воткнули.
SMSNG
Цитата(sazh @ Dec 27 2011, 09:53) *
За успешную конфигурацию кристалла отвечает пин config_done, подтянутый резистором к vcc i/o (лог 1)
Может быть не контакт, если в панельку воткнули.


Проверил, контакт есть, но чип просаживает пин config_done в (лог 0), и до и после конфигурации... Получается, конфигурация моя не зашивается? очень странно, квартус пишет, что все удачно..
Maverick
Цитата(SMSNG @ Dec 27 2011, 09:48) *
Проверил, контакт есть, но чип просаживает пин config_done в (лог 0), и до и после конфигурации... Получается, конфигурация моя не зашивается? очень странно, квартус пишет, что все удачно..

а подтяжка имеется?
SMSNG
Попробовал подключить и прошить в режиме Passive Serial, квартус выдает ошибку:

Internal Error: Sub-system: PGMIO, File: /quartus/pgm/pgmio/pgmio_f2p.cpp, Line: 6350
device don't support compression
Stack Trace:
0x42F58 : PGMIO_F2P::compress_bitstream + 0x158 (pgm_pgmio)
End-trace
Quartus II Version 8.1 Build 163 10/28/2008 SJ Web Edition

Это ошибка квартуса, или я что-то не то наподключал?
Нажмите для просмотра прикрепленного файла

Использую ByteBlasterMV

Цитата(Maverick @ Dec 27 2011, 11:00) *
а подтяжка имеется?

Да, конечно. Выковыривал ПЛИС из панелки, дорожка подтягивается к +5.

yeah.gif Заработало, ч.з. JTAG, нога nCONFIG на плате замыкала на землю,
но при попытке прошить в PS mode, по прежнему, qwartus вылетает с ощибкой.

СПАСИБО Sazh за пинок в нужном направлении. )
SMSNG
Цитата
Попробовал подключить и прошить в режиме Passive Serial, квартус выдает ошибку:

Internal Error: Sub-system: PGMIO, File: /quartus/pgm/pgmio/pgmio_f2p.cpp, Line: 6350
device don't support compression
Stack Trace:
0x42F58 : PGMIO_F2P::compress_bitstream + 0x158 (pgm_pgmio)
End-trace
Quartus II Version 8.1 Build 163 10/28/2008 SJ Web Edition


Скачал Quartus II Version 9.0 SP2, ошибка исчезла, прошивается.
SMSNG
Возник еще вопросик. Как правильно использовать память? Создал визардом RAM: 1-PORT 8x256 с регистрами на всех входах и выходе.

В моделсиме проект сделал, тестбенч для памяти написал ... на data_out пусто(z). Подскажите, плиз, где искать?

Код
`timescale 1ns / 1ns
//-----------------------------
module banch(
);
    reg [7:0] address;  
    reg [7:0] data_in;
    wire [7:0] data_out;
    reg inclock, outclock;
    reg we;
//-----------------------------
    ram256 ram256_my(
        .address (address),
        .data (data_in),
        .inclock (inclock),
        .outclock (outclock),
        .we(we),
        .q (data_out)
);
//-----------------------------
    initial
    begin
        inclock = 0;
        outclock = 0;
        address = 8'b00000001;
        data_in = 8'b00000001;

        #52000 we = 1;
        #55000 inclock = 1;
        #60000 inclock = 0;
        #62000 we = 0;    
        #65000 outclock = 1;
        #70000 outclock = 0;
    end


    initial
    begin
        $display("Running testbench");  
        #10000000 $stop;
    end
    
endmodule

sazh
Цитата(SMSNG @ Jan 10 2012, 12:33) *
Возник еще вопросик. Как правильно использовать память?


Сделать непрерывными
.inclock (inclock),
.outclock (outclock)
SMSNG
Цитата(sazh @ Jan 10 2012, 12:44) *
Сделать непрерывными
.inclock (inclock),
.outclock (outclock)

Простите, а это как?
Разве они прерываются?
sazh
Цитата(SMSNG @ Jan 10 2012, 13:15) *
Простите, а это как?
Разве они прерываются?


Я имел ввиду непрерывную сетку, а не один перепад клока.
Посмотрите в 6 посте тестбенч
http://electronix.ru/forum/index.php?showt...p;#entry1012009
SMSNG
Цитата(sazh @ Jan 10 2012, 13:39) *
Я имел ввиду непрерывную сетку, а не один перепад клока.
Посмотрите в 6 посте тестбенч
http://electronix.ru/forum/index.php?showt...p;#entry1012009


Спасибо, посмотрел, сделал по подобию, не помогло.
Вот такие сигналы получаются:
Нажмите для просмотра прикрепленного файла
Может быть в модельсиме не верно делаю что-то?
В проект включены и откомпилированы только ram256.v и ram256_bb.v, но там нет описания работы памяти, я так понял, что работа описывается гдет в библиотечных файлах для кажного семейства плис своя.
Если да, подскажите пожалуйста, как подключить к проекту модельсим эти библиотечные файлы.
Чет так запутано все))
SMSNG
Цитата(SMSNG @ Jan 11 2012, 09:44) *
Может быть в модельсиме не верно делаю что-то?
В проект включены и откомпилированы только ram256.v и ram256_bb.v, но там нет описания работы памяти, я так понял, что работа описывается гдет в библиотечных файлах для кажного семейства плис своя.


Блин, тот же счетчик ведь работает, и в железе и в модельсиме , хотя так же на библиотечной ф-ии, ((((
Код
`timescale 1 ns / 1 ns
//----------------------------------------------------------    
module Counter(
    input wire    reset,
    input wire     clk_40,
    output wire    [3:0] led
);
//----------------------------------------------------------

    reg [3:0] cnt = 4'd0;
    always @(posedge clk_40) cnt <= cnt + 4'd1;

    assign led = cnt;
//----------------------------------------------------------
endmodule
Shivers
ram256_bb.v выкиньте из проекта, и еще раз компильните ram256.v - он и есть файл для моделирования. Правда, он потребует еще библиотеки мегафункций .. их нужно брать в папке квартуса. путь вроде этого: altera\11.0\quartus\eda\sim_lib все библиотеки там, возьмете нужные.
SMSNG
Цитата(Shivers @ Jan 11 2012, 18:01) *
ram256_bb.v выкиньте из проекта, и еще раз компильните ram256.v - он и есть файл для моделирования. Правда, он потребует еще библиотеки мегафункций .. их нужно брать в папке квартуса. путь вроде этого: altera\11.0\quartus\eda\sim_lib все библиотеки там, возьмете нужные.

Спасибо, обязательно попробую..

Если кто застрял на такой же проблеме как у меня (не моделируются мегафункции), почитайте Quartus + ModelSim. , автоматом генерируется скрипт для запуска ModelSim со всеми необходимыми библиотеками. Пробовал на примере со сдвиговым регистром-работает)).
Пока кажется не очень удобным, но поглядев полученный скрипт, можно понять, как запустить проект в ModelSim отдельно от квартуса (наверно)), сейчас буду учиться.
SMSNG
Научился читать и писать память, но не получается инициализировать ее из файла (
Создал файл .mif под размер своего модуля, при компиляции вылазит ошибка :
Error: Node "ram256:ram256_inst|lpm_ram_dq:lpm_ram_dq_component|altram:sram|q[0]" has non-registered write enable-- attempting to initialize a RAM with non-registered write enable
(точнее 4 ошибки для q[0],q[1],q[2],q[3])
К этим выводам подключены индикаторы
Код
******
output wire    [3:0] led
wire [7:0] d;
ram256    ram256_inst (
        .address ( cnt ),
        .data ( cnt ),
        .outclock ( ~clk_out ),
        .we ( load ),
        .q ( d )
    );
assign led[0] =  d[0];
    assign led[1] =  d[1];
    assign led[2] =  d[2];
    assign led[3] =  d[3];
***


В MOdelSim компилируется и работает. Кто-то сталкивался с подобным? Пробовал инициализировать и из файла формата .hex, тот же результат.
SMSNG
Цитата(SMSNG @ Jan 13 2012, 08:35) *
Error: Node "ram256:ram256_inst|lpm_ram_dq:lpm_ram_dq_component|altram:sram|q[0]" has non-registered write enable-- attempting to initialize a RAM with non-registered write enable
Код
assign led[0] =  d[0];
    assign led[1] =  d[1];
    assign led[2] =  d[2];
    assign led[3] =  d[3];
***


Написал так:
assign led = d[3:0];
ошибки как не бывало... КАК ТАК ТО?
slawikg
Цитата(SMSNG @ Jan 13 2012, 08:35) *
Научился читать и писать память, но не получается инициализировать ее из файла (
Создал файл .mif под размер своего модуля, при компиляции вылазит ошибка :
Error: Node "ram256:ram256_inst|lpm_ram_dq:lpm_ram_dq_component|altram:sram|q[0]" has non-registered write enable-- attempting to initialize a RAM with non-registered write enable
(точнее 4 ошибки для q[0],q[1],q[2],q[3])
К этим выводам подключены индикаторы
Код
******
output wire    [3:0] led
wire [7:0] d;
ram256    ram256_inst (
        .address ( cnt ),
        .data ( cnt ),
        .outclock ( ~clk_out ),
        .we ( load ),
        .q ( d )
    );
assign led[0] =  d[0];
    assign led[1] =  d[1];
    assign led[2] =  d[2];
    assign led[3] =  d[3];
***


В MOdelSim компилируется и работает. Кто-то сталкивался с подобным? Пробовал инициализировать и из файла формата .hex, тот же результат.


inclock то где?
SMSNG
Цитата(slawikg @ Jan 14 2012, 21:09) *
inclock то где?

Память сконфигурирована с асинхронными входами.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.