Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: кто подскажет как правильно ресетить плис ipsLIS1032E
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
b32b
странное дело - пока прошиваю все работает, как только снимаю питание и включаю работает только комбинаторная логика - такое впечатление что надо каким-то образом отресетить плис, но ни в даташите, ни в примерах нигде не говорится о таковой необходимости. Даже специально асинхронный счетчик сделал для ресета, не помогает smile.gif. Нагкглил лищь путанное упоминание о GSR и PUR для Lattice,- где ни слова откуда он может взяться - generic и все тут. Такое впечатление, что он просто должен быть, хотя его и нет судя по поведению девайса...

Все идет к тому что придется приделать банальный RC ресет к данному девайсу благо свободных ногов у Плисины много, но ведь некрасиво получится, хоть и старый этот 1032E, но про ресет подумать должны были еще на заре PAL/GAL? Или я не прав?
Tarantul
GRS - глобальный сброс/установка всех регистров от внешнего пина или от внутренней логики. Для использования надо воспользоваться библиотечным компонентом:

CODE
-- VHDL Example of GSR Instantiation
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity gsr_test is
port (
rst, clk: in std_logic;
cntout : out std_logic_vector(1 downto 0));
end gsr_test;

architecture behave of gsr_test is

signal cnt : std_logic_vector(1 downto 0);

begin
u1: GSR port map (gsr=>rst);
process(clk, rst)
begin
if rst = '1' then cnt <= "00";
elsif rising_edge (clk) then cnt <= cnt + 1;
end if;
end process;
cntout <= cnt;
end behave;


PUR - внутренний сброс после конфигурации по включению. Его можно только симулировать в testbenches.

Подробности: http://www.latticesemi.com/documents/howto...ur_tsall_72.pdf
Джеймс
Цитата(b32b @ Feb 16 2010, 13:39) *
хоть и старый этот 1032E, но про ресет подумать должны были еще на заре PAL/GAL? Или я не прав?

Не правы. Всё зависит от технологии. Для SRAM-based FPGA ресет действительно не нужен. Для FLASH-based (например Actel ProAsic) - нужен.

Цитата(b32b @ Feb 16 2010, 13:39) *
Все идет к тому что придется приделать банальный RC ресет к данному девайсу благо свободных ногов у Плисины много, но ведь некрасиво получится

С RC-цепочкой некрасиво, а вот с супервизором - красиво.

В проекте просто заменяйте все места
always @(posedge clk)
begin
.....
end


на
always @(posedge clk or posedge rst)
begin
if (rst)
.......
end


Где rst должен придти с входного пина. Архитектуру Lattice 1032 не знаю, но специальная цепь для сброса наверное есть. Т.е. проверьте этот момент, чтобы не тратить трассировочные ресурсы.

UPDATE Зря всё-таки в datasheet не вникали.
http://www.pci-card.com/1032E.pdf
RESET - Active Low (0) Reset pin which resets all of the GLB /Generic Logic Block/ and I/O registers in the device.
b32b
Цитата(Джеймс @ Feb 16 2010, 21:08) *
Не правы. Всё зависит от технологии. Для SRAM-based FPGA ресет действительно не нужен. Для FLASH-based (например Actel ProAsic) - нужен.


С RC-цепочкой некрасиво, а вот с супервизором - красиво.

В проекте просто заменяйте все места
always @(posedge clk)
begin
.....
end


на
always @(posedge clk or posedge rst)
begin
if (rst)
.......
end


Где rst должен придти с входного пина. Архитектуру Lattice 1032 не знаю, но специальная цепь для сброса наверное есть. Т.е. проверьте этот момент, чтобы не тратить трассировочные ресурсы.


спасибо - у меня такая же мысль была, что все должно быть проще, но вначале надо ошибться smile.gif

Цитата(Джеймс @ Feb 16 2010, 21:08) *
UPDATE Зря всё-таки в datasheet не вникали.
http://www.pci-card.com/1032E.pdf
RESET - Active Low (0) Reset pin which resets all of the GLB /Generic Logic Block/ and I/O registers in the device.


Да, это также видно, но как использовать? со спартаном все намного проще - и так ресетится при старте smile.gif И грузит все, что надо.
За идею с монитором спасибо,- в принципе он практически реализован, чтоит себе почти "незадействованный" AVR - который следит за питанием и ресетом для спартана и другого железа.
Собственно только провод бросить, хотя и на соседнюю плату.


ЗЫ Попробую сейчас реализовать рекомендации. Должно все получиться a14.gif

Получается smile.gif я ранее не пробовал использовать сам вывод ресета, прям какой-то мистический ужас перед ним испытывал,- сейчас synplify страшно выругался, а это поправимо:

Trying to move PT reset signal to global reset pin...
PT reset signal cannot be locked to global reset pin
In order to lock the global reset pin, the following conditions
need to be satisfied:
1. This pin does not drive any data signals
2. This pin can be disjointly decomposed with other pins, if any,
which drive reset signals
33622 ERROR: Wrong locking of the global reset pin
SM
Цитата(b32b @ Feb 17 2010, 00:50) *
33622 ERROR: Wrong locking of the global reset pin


Чтобы использовать GSR как GSR - то надо его включить в опциях, но сам пин в проекте не задействовать. После чего пин-GSR будет резетить все триггеры ПЛИС поголовно. Соответственно этот сигнал, который использован как глобальный аппаратный GSR, не можен быть использован ни для чего более.
b32b
Цитата(SM @ Feb 17 2010, 02:38) *
Чтобы использовать GSR как GSR - то надо его включить в опциях, но сам пин в проекте не задействовать. После чего пин-GSR будет резетить все триггеры ПЛИС поголовно. Соответственно этот сигнал, который использован как глобальный аппаратный GSR, не можен быть использован ни для чего более.


то есть если я делаю так

[Global Constraints]
Isplsi_use_global_reset = On;
Usercode = test;
Usercode_format = Ascii;
Y1_as_reset = Off;

и отовсюду убираю всяческое упоминание о ресете, или заведу все ресеты на один сигнал, то все будет ок?
Вот что вышло с включенным GSR

Trying to move PT reset signal to global reset pin...
PT reset signal cannot be moved to global reset pin
In order to move PT reset signal to global reset pin, the
following conditions need to be satisfied:
1. There exists at least one pin which drives all register's reset
signals
^^^^^
тут пока не выполнено - есть парочка FD21 с логикой на ресете для них. Собственно уже занялся, буду избавляться от логики на ресете и на всякий случай выведу сам ресет наружу.
Кстати,- это тот самый узел, который как раз работает всегда и не вызывал нареканий smile.gif

2. This pin is unlocked
^^^
не лочен

3. This pin does not drive any data signals
никаких данных там нет, собственно откуда им там взяться, хотя ...
возможно имеется ввиду что некая логика может использовать одни и теже данные по разному
и для ресета и для чего нить другого, примерно как у меня. Собственно такой хитрости нигде более не применено,
можно считать что на ресете будет только ресет.

4. This pin can be disjointly decomposed with other pins, if any,
which drive reset signals

А это мне не совсем понятно,- получается так:
"Данный пин может разделяться с другими пинами, если таковые управляют сигналами ресета."

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