реклама на сайте
подробности

 
 
> Знатоки FPGA, подскажите, проблеммы сонхронизации
Kazap
сообщение Jan 30 2007, 20:08
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 93
Регистрация: 8-05-06
Пользователь №: 16 880



Доброго всем времени суток
До настоящего момента работал только с CPLD, особых проблем не было. Но для текущего проекта ресурсов CPLD не хватает
Проект -офисная миниАТС,- в FPGA (подошла acex1k), коммутационная матрица, синхронный порт,
тональные генераторы и много чего другого. Наблюдаю следующую картину-отлаживаю один узел, другой, берусь за третий отлаживаю,- начинает сбоить первый, вношу какие -то изменения в один узел- почему влияет на второй, и так замкнутый круг. Это что, нормальная ситуация с FPGA? Или я что-то не так делаю?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sazh
сообщение Feb 2 2007, 10:58
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



XOR использовался в XPLA3 (там он аппаратный XOR с своими специфическими свойствами).
/////////////////////////////////////////////////////////////////////////////
Причем тут аппаратный xor. Его здесь рядом не лежало. Писать наглядно надо. Чтобы потом не вспоминать, что это на самом деле ложиться на триггер со входом enable.
Да и спорить не о чем. ДА. Это схема полностью рабочая. Только вот действительно мертвая зона в три такта clk2 за счет петли обратной связи. А корректировать можно до бесконечности. Например зачем clk1.
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity sync_clk is port (
START: in std_logic;
CLK_2: in std_logic;
Q: out std_logic );
end entity;

architecture sync_clk_body of sync_clk is

signal F1_FD0: std_logic := '0';
signal F2_FD1: std_logic := '0';
signal F2_FD2: std_logic := '0';

begin
process (START, F2_FD2)
begin
if F2_FD2 = '1' then
F1_FD0 <= '0';
elsif rising_edge(START) then
F1_FD0 <= '1';
end if;
end process;

process (CLK_2)
begin
if rising_edge(CLK_2) then
F2_FD1 <= F1_FD0;
if (F2_FD1 = '1') then
F2_FD2 <= not F2_FD2;
end if;
end if;
end process;

Q <= F2_FD2;
end architecture;

Что интересно, что бы Вы не делали, лучше Тицце и Шенка все равно не сделаете. Вот его реализация без петли обратной связи.

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity sync_clka is port (
START: in std_logic;
CLK_2: in std_logic;
Q: out std_logic );
end entity;

architecture sync_clk_body of sync_clka is

signal F1_FD0: std_logic := '0';
signal F2_FD1: std_logic := '0';
signal F2_FD2: std_logic := '0';

begin
process (START, CLK_2)
begin
if START = '1' then
F1_FD0 <= '1';
elsif rising_edge(CLK_2) then
F1_FD0 <= '0';
end if;
end process;

process (CLK_2)
begin
if rising_edge(CLK_2) then
F2_FD1 <= F1_FD0;
F2_FD2 <= F2_FD1;
end if;
end process;

Q <= not F2_FD2 and F2_FD1;
end architecture;
Go to the top of the page
 
+Quote Post
Oldring
сообщение Feb 2 2007, 11:13
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(sazh @ Feb 2 2007, 10:58) *
Что интересно, что бы Вы не делали, лучше Тицце и Шенка все равно не сделаете. Вот его реализация без петли обратной связи.


Уважаемый sazh!

Ничего если я замечу, что чтение литературы не заменяет самостоятельных размышлений?
Приведенная Вами схема опасна и ни в коей мере не эквивалентна исходной. Потому что метастабильное состояние триггера D1 может неконтролируемо распространяться через выход Q на неопределенную часть схемы. Исходная схема этим свойством не обладает - в ней возможная метастабильность D1 ограничена коротким путем через XOR лишь входом второго триггера.

Цитата(Boris_TS @ Feb 2 2007, 10:45) *
XOR использовался в XPLA3 (там он аппаратный XOR с своими специфическими свойствами).


Обладает - но не факт, что путь через него быстрее пути через LUT.
Я когда-то исследовал один тестовый пример - меня удивляло, почему синтезатор использует LUT вместо такого хорошего встроенного XORF. Написал использование элемента явно. Получил слегка большее время. biggrin.gif


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Kazap   Знатоки FPGA, подскажите   Jan 30 2007, 20:08
- - papasha   Временные ограничения установлены?   Jan 30 2007, 22:28
- - Самурай   Цитата(Kazap @ Jan 30 2007, 20:08) Доброг...   Jan 30 2007, 22:40
- - chan   Посмотрите в сторону Cyclone, по цене дешевле и ес...   Jan 30 2007, 22:41
- - ybd   Бывало такое при использовании более 70% ресурсов ...   Jan 30 2007, 22:57
|- - dmivs   Уточните, какой тип FPGA вы используете - вам отве...   Jan 30 2007, 23:16
- - maior   Общие рекомендации: 1. Синхронный дизайн. Если ест...   Jan 31 2007, 01:30
|- - Kazap   Большое спасибо за подсказки. Дествительно, в диз...   Jan 31 2007, 08:30
- - Alex_vod   В своё время многие проблеммы с синхронизацией реш...   Jan 31 2007, 17:03
|- - EugeneS   Цитата(Alex_vod @ Jan 31 2007, 18:03) В с...   Feb 1 2007, 00:04
|- - LeonY   Цитата(EugeneS @ Jan 31 2007, 23:04) Цита...   Feb 1 2007, 12:32
|- - Oldring   Цитата(LeonY @ Feb 1 2007, 12:32) Чем же ...   Feb 1 2007, 12:53
|- - LeonY   Цитата(Oldring @ Feb 1 2007, 11:53) Цитат...   Feb 1 2007, 13:52
|- - Oldring   Цитата(LeonY @ Feb 1 2007, 13:52) Спасибо...   Feb 1 2007, 13:59
- - Alex_vod   "то не синхронизация, а rise detection. При п...   Feb 1 2007, 11:18
- - sazh   Тем что выход первого триггера используется в даль...   Feb 1 2007, 13:11
|- - Oldring   Цитата(sazh @ Feb 1 2007, 13:11) Тем что ...   Feb 1 2007, 13:29
- - Alex_vod   Я согласен с Вашими замечаниями... В этом вопросе ...   Feb 1 2007, 13:25
|- - Oldring   Цитата(Alex_vod @ Feb 1 2007, 13:25) Я со...   Feb 1 2007, 13:39
|- - Boris_TS   Цитата(Alex_vod @ Feb 1 2007, 13:25) Тогд...   Feb 1 2007, 15:36
|- - leevv   Цитата(Boris_TS @ Feb 1 2007, 07:36) Цита...   Feb 2 2007, 03:39
|- - Boris_TS   А XOR потому, что: ЦитатаЕсть CLK_1 и есть некое с...   Feb 2 2007, 09:33
|- - Oldring   Цитата(Boris_TS @ Feb 2 2007, 09:33) Наск...   Feb 2 2007, 10:17
|- - Boris_TS   Цитата(Oldring @ Feb 2 2007, 10:17) При н...   Feb 2 2007, 10:45
- - Alex_vod   Раз уж тема о проблеммах синхронизации, хотелось б...   Feb 1 2007, 13:55
|- - Oldring   Цитата(Alex_vod @ Feb 1 2007, 13:55) Раз ...   Feb 1 2007, 14:02
|- - Boris_TS   Цитата(Alex_vod @ Feb 1 2007, 13:55) Напр...   Feb 1 2007, 14:55
- - sazh   Если набрать слово метастабильность в конференции,...   Feb 1 2007, 13:59
- - Alex_vod   Да действительно , не конкретный вопрос я задал .....   Feb 1 2007, 15:16
|- - Oldring   Цитата(Alex_vod @ Feb 1 2007, 15:16) мы и...   Feb 1 2007, 15:27
||- - Alex_vod   Цитата(Oldring @ Feb 1 2007, 15:27) Цитат...   Feb 1 2007, 16:06
|- - Boris_TS   Цитата(Alex_vod @ Feb 1 2007, 15:16) мы и...   Feb 1 2007, 16:06
- - sazh   To Oldring. //////////////////////////////////////...   Feb 2 2007, 11:25
|- - Oldring   Цитата(sazh @ Feb 2 2007, 11:25) To Oldri...   Feb 2 2007, 11:27
- - sazh   Я на триггерах не экономлю. (В реальности уже давн...   Feb 2 2007, 11:34
|- - Oldring   Цитата(sazh @ Feb 2 2007, 11:34) Я на три...   Feb 2 2007, 11:40
- - sazh   Ничего если я замечу, что чтение njgbrf не заменяе...   Feb 2 2007, 11:45
|- - Oldring   Цитата(sazh @ Feb 2 2007, 11:45) Ничего е...   Feb 2 2007, 11:51
- - Alex_vod   Я пока пишу в AHDL и только собираюсь переходить н...   Feb 2 2007, 11:50
|- - Boris_TS   Цитата(Alex_vod @ Feb 2 2007, 11:50) Вы б...   Feb 2 2007, 14:40
- - sazh   Функционально можно заменить. Что касается текста,...   Feb 2 2007, 12:07
|- - Oldring   Цитата(sazh @ Feb 2 2007, 12:07) Функцион...   Feb 2 2007, 12:12
- - sazh   Недавно фильм Павлв Лунгина посмотрел. Остров назы...   Feb 2 2007, 12:56
|- - Oldring   Цитата(sazh @ Feb 2 2007, 12:56) Недавно ...   Feb 2 2007, 13:01
- - sazh   Приношу свои извинения.   Feb 2 2007, 13:17
- - Alex_vod   А нарисовать можно, то о чём вы спорите. У меня ка...   Feb 2 2007, 13:31
|- - Oldring   Цитата(Alex_vod @ Feb 2 2007, 13:31) А на...   Feb 2 2007, 14:13
- - Alex_vod   Спасибо Boris_TS за схемку Конечно же Вы правы, ка...   Feb 2 2007, 15:00
- - sazh   To Boris_TS //////////////////////////////////////...   Feb 2 2007, 15:15
|- - Boris_TS   Цитата(sazh @ Feb 2 2007, 15:15) А как Ва...   Feb 3 2007, 09:55
|- - Oldring   Цитата(Boris_TS @ Feb 3 2007, 09:55) Озна...   Feb 3 2007, 13:51
- - sazh   Что касется xor, я был неправ. Про CPLD слишком по...   Feb 3 2007, 14:33
- - cyclop   Схемы Титце-Шенка (Т-Ц) и Boris_TS (В) различны. С...   Feb 4 2007, 17:53


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 17:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.02304 секунд с 7
ELECTRONIX ©2004-2016