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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Вопрос по XC95288, Не до конца понимаю в чем проблема.
h0t
сообщение Feb 19 2012, 13:11
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 23-09-11
Пользователь №: 67 345



ВСЕМ ОГРОМНОЕ СПАСИБО ЗА НАСТАВЛЕНИЯ.
Проблема оказалась в строчке:

Цитата
if ( conv_integer(to_stdLogicVector(ChannelOn(31 downto 0))) = 0 and conv_integer(to_stdLogicVector(ChannelOn(63 downto 32))) = 0 ) then


она не отрабатывала как надо, после переписывания этого куска все заработало.
Go to the top of the page
 
+Quote Post
sazh
сообщение Feb 19 2012, 13:24
Сообщение #17


Гуру
******

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



Цитата(h0t @ Feb 19 2012, 16:11) *
все заработало.


Сомнения гложат. Эта Ваша экономия ресурсов CPLD (без клоков и слоев регистров)
до добра не доведет.
Прогоните для приличия Ваш проект на FPGA.
Go to the top of the page
 
+Quote Post
h0t
сообщение Feb 19 2012, 13:26
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 23-09-11
Пользователь №: 67 345



Цитата(sazh @ Feb 19 2012, 17:24) *
Сомнения гложат. Эта Ваша экономия ресурсов CPLD (без клоков и слоев регистров)
до добра не доведет.
Прогоните для приличия Ваш проект на FPGA.


Про клоки понятно, а вот на счет слоев регистров не совсем понял. Спасибо соберу проверю.
Go to the top of the page
 
+Quote Post
h0t
сообщение Feb 19 2012, 15:46
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 23-09-11
Пользователь №: 67 345



Радовался рано, чуть поменял тест и перестало работать. (между посылками сделал паузу не кратную клокам). Проект прилагаю. Почему-то вылазит опять Х в post-fit'e...
Прикрепленные файлы
Прикрепленный файл  UART_cpld_prel.rar ( 235.97 килобайт ) Кол-во скачиваний: 19
 
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Feb 19 2012, 17:15
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 h0t
Собственно проблема даже не в том как написано (хотя и в этом тоже), там главный трабл заключается в этом:
Код
entity RS422_receiver is
    Port ( SCK : in  STD_LOGIC;
           RXD : in  STD_LOGIC;
...
if (RXD='0' and prevRXD='1') then          -- Start bit,
...

Собственно вас должно было на это натолкнуть вот это в модельсиме:
Цитата
# Time: 2118500 ps Iteration: 18 Instance: /main_schematic_main_schematic_sch_tb/UUT/XLXI_35_RxReady_REG
# ** Warning: /X_FF HOLD High VIOLATION ON I WITH RESPECT TO CLK;
# Expected := 4.5 ns; Observed := 1.5 ns; At : 2118.5 ns

И если глянуть на это самый тригер то можно увидеть что реально по холду не выдерживается времянка потому что так устанавливаются данные на самом DATA-входе дизайна. Асинхронные сигналы обычно нужно нарезать регистрами, чтобы не иметь потом в синхронных дизайнах проблем с неопреденными состояниями тригеров. Об этом, я так понял, вам намекал sazh, когда говорил про слой регистров.

Go to the top of the page
 
+Quote Post
h0t
сообщение Feb 19 2012, 17:48
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 23-09-11
Пользователь №: 67 345



Цитата(Kuzmi4 @ Feb 19 2012, 21:15) *
2 h0t
Собственно проблема даже не в том как написано (хотя и в этом тоже), там главный трабл заключается в этом:
Код
entity RS422_receiver is
    Port ( SCK : in  STD_LOGIC;
           RXD : in  STD_LOGIC;
...
if (RXD='0' and prevRXD='1') then          -- Start bit,
...

Собственно вас должно было на это натолкнуть вот это в модельсиме:

И если глянуть на это самый тригер то можно увидеть что реально по холду не выдерживается времянка потому что так устанавливаются данные на самом DATA-входе дизайна. Асинхронные сигналы обычно нужно нарезать регистрами, чтобы не иметь потом в синхронных дизайнах проблем с неопреденными состояниями тригеров. Об этом, я так понял, вам намекал sazh, когда говорил про слой регистров.

Я правильно понимаю, что после приемника нужно поставить защелку для данных и сигнала готовности данных по CLK?

После долгих чтений статией понял что проблема с метастабильностью системы. Теперь нужно думать как с этим жить.... Не совсем сейчас понимаю как это побороть.

Засунул D-триггеры на D по CLK, перед приемником не помогло. Да и теперь понятно почему. Помогут ли асинхронные регистры?

Сообщение отредактировал h0t - Feb 20 2012, 10:16
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Feb 20 2012, 18:52
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



Цитата(h0t @ Feb 19 2012, 19:48) *
...
Засунул D-триггеры на D по CLK, перед приемником не помогло.

В каком смысле - не помогло ?

Цитата(h0t @ Feb 19 2012, 19:48) *
...
Помогут ли асинхронные регистры?

Это какие собсно?
Go to the top of the page
 
+Quote Post
h0t
сообщение Feb 29 2012, 08:33
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 23-09-11
Пользователь №: 67 345



Цитата(Kuzmi4 @ Feb 20 2012, 22:52) *
В каком смысле - не помогло ?


Это какие собсно?

Это некие ASYNC_REG, правда я сильно не разбирался что это пока http://www.xilinx.com/itp/xilinx10/isehelp...c_registers.htm.

Вот решил проект новый попробовать сделать (содрал идею с коры) и защелки поставил но iSim все равно ведет себя неадекватно...

P.S. В прошивке не реализован поиск стопового бита 1го последнего. обвал происходит на первой посылке...

Сообщение отредактировал h0t - Feb 29 2012, 10:13
Прикрепленные файлы
Прикрепленный файл  UART_Receiver.rar ( 352.97 килобайт ) Кол-во скачиваний: 12
 
Go to the top of the page
 
+Quote Post
Boris_TS
сообщение Mar 1 2012, 06:13
Сообщение #24


Злополезный
****

Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188



Цитата(h0t @ Feb 29 2012, 12:33) *
Это некие ASYNC_REG, правда я сильно не разбирался что это пока http://www.xilinx.com/itp/xilinx10/isehelp...c_registers.htm.

Constraint ASYNC_REG - указывает симуляторам, что мы (Разработчик) знаем, что на выходе этого триггера будет метастабильное состояние сваливающееся в устойчивое состояние за 1 период тактовой частоты. Поэтому, при симуляции не надо отображать на выходе триггера с этим constraint'ом неопределённое значение (так называемый X). На работу самой ПЛИС этот constraint никак не влияет.
Go to the top of the page
 
+Quote Post
h0t
сообщение Mar 3 2012, 17:14
Сообщение #25


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 23-09-11
Пользователь №: 67 345



Огромное всем спасибо, проблема исчерпана.
Go to the top of the page
 
+Quote Post

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

 


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


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