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

 
 
> Нестабильно работает проект
tttt
сообщение Nov 15 2013, 12:20
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 9-07-13
Пользователь №: 77 446



Добрый день!

Расскажите, пожалуйста, как реализуют на ПЛИС большие проекты?

Есть проект, в котором будет использоваться 80% пользовательских пинов, пины уже назначил. В этом проекте пишу 2 своих несложных модуля - передающий, и принимающий, которые по отдельности отлажены и работают нормально, но при сборке их в один модуль они начинают работать некорректно, причем их работа меняется буквально от всего - изменяю что-то в принимающем и уже неправильно работает передающий, либо убираю вообще приемный модуль из проекта и передающая часть всё-равно работает некорректно, но результат симуляции другой, очищаю список назначенных пинов - результат симуляции так же меняется. Это при том, что проект занимает 1-2% логических элементов.

Как избавиться от этой нестабильности? Можно как-то зафиксировать разводку модуля? ПЛИС - FLEX9K. Буду благодарен любой информации на эту тему.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
tttt
сообщение Nov 15 2013, 12:44
Сообщение #2





Группа: Новичок
Сообщений: 9
Регистрация: 9-07-13
Пользователь №: 77 446



iosifk, давай по делу, пожалуйста, Шерлок.

Swup, спасибо, тактовая частота 50Мгц. Передающая часть принимает извне 32битные слова, сохраняет их в асинхронную RAM, затем как только накопится какое-то количество слов, считывает их из памяти и передает на максимальной скорости в другой модуль - приемный. В приемном модуле принятые данные так же сохраняются в RAM, затем по внешнему сигналу чтения данные из памяти выставляются на выход.

Сообщение отредактировал tttt - Nov 15 2013, 12:44
Go to the top of the page
 
+Quote Post
Corner
сообщение Nov 18 2013, 15:38
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



Цитата(tttt @ Nov 15 2013, 16:44) *
iosifk, давай по делу, пожалуйста, Шерлок.

Swup, спасибо, тактовая частота 50Мгц. Передающая часть принимает извне 32битные слова, сохраняет их в асинхронную RAM, затем как только накопится какое-то количество слов, считывает их из памяти и передает на максимальной скорости в другой модуль - приемный. В приемном модуле принятые данные так же сохраняются в RAM, затем по внешнему сигналу чтения данные из памяти выставляются на выход.


ФЛЕКС на 24 МГц работает с трудом. Греется и ходит под себя. Теоретические 125 МГц в живую не попадалось...

Цитата(gosu-art @ Nov 15 2013, 21:08) *
ACEX и FLEX закончились на Q9.0sp2. хоть TQ в последнем есть, но именно для этих семейств поддержки нет. И нужно избавляться от варнинга

Он часто вылазит когда проект большой. обычно помогает сменой фронта с положительного на отрицательный в некоторых участках кода


НИКОГДА не используйте негедж в ПЛИС, где его нет аппаратно. Глюки обеспечены.
Go to the top of the page
 
+Quote Post
dxp
сообщение Nov 19 2013, 05:33
Сообщение #4


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (Corner @ Nov 18 2013, 22:38) *
ФЛЕКС на 24 МГц работает с трудом. Греется и ходит под себя. Теоретические 125 МГц в живую не попадалось...

Древний FLEX8000 вполне успешно работал на 40 МГц (лазерный дальномер). От проекта зависит. 40 МГц были не пределом для него.

QUOTE (Corner @ Nov 18 2013, 22:38) *
НИКОГДА не используйте негедж в ПЛИС, где его нет аппаратно. Глюки обеспечены.

Категоричное утверждение. И неверное. Всё прекрасно работает. В современных FPGA без проблем вставляется инверсия перед подачей клока на триггер. Другое дело, когда хотят что-то вроде always_ff @(posedge clk, negedge clk), а аппаратура этого не умеет. Но в этом случае, как правило, синтезатор выдаёт ошибку.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Corner
сообщение Nov 19 2013, 16:40
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



Цитата(dxp @ Nov 19 2013, 09:33) *
Древний FLEX8000 вполне успешно работал на 40 МГц (лазерный дальномер). От проекта зависит. 40 МГц были не пределом для него.

Категоричное утверждение. И неверное. Всё прекрасно работает. В современных FPGA без проблем вставляется инверсия перед подачей клока на триггер. Другое дело, когда хотят что-то вроде always_ff @(posedge clk, negedge clk), а аппаратура этого не умеет. Но в этом случае, как правило, синтезатор выдаёт ошибку.


1. У меня даже на 80 работал, но код вылизывался 1,5 года.
2. В современных ПЛИС. Флекс лучше так не использовать - инверсия клока это 3 ячейки.
Go to the top of the page
 
+Quote Post



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

 


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


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