|
Ошибки при работе схемы на ПЛИС, Прошу помощи. Временный задержки |
|
|
|
Jan 22 2014, 10:36
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475

|
Приветсвую всех!
Возникла такая проблема и требуется помощь в ее решении. Пишу проект на virtex 6. В проекте реализован 16 канальный DDC. Работоспособность проверена на железке. Мне необходимо разместить на каждом канале алгоритм подавления несинхронной помехи. Сам алгоритм подавления я написал и проверил также его работоспособность. Но при размещении 16 подавителей, по 1 на каждый канал столкнулся с проблемой нехватки ресурсов slice. Решение проблемы нашел в последовательной обработке на более высокой частоте. Но при этом столнулся с другой проблемой. При отладке в ChipScope видно, что схема ведет себя не корректно. Например, счетчик считает 1 2 3 !2! 4 5 6. Возникают значения, которых не должно быть. Если в ChipScope раскрыть шину, то видно что некоторые сигналы в шине задерживаются на один такт и это приводит к ошибке. Собственно, это мой первый проект и раньше с временными задержками в схеме не сталкивался. Алгоритм синхронный и почему возникают такие задержки мне не понятно. Вопрос в том, в какую сторону копать в чем проблема и как бороться с временными задержками в ПЛИС? Так как вопрос достаточно общий, не знаю, какую информацию еще надо предоставить и в процессе обсуждения выложу ее.
Заранее благодарю за помощь.
Сообщение отредактировал bognev - Jan 22 2014, 10:40
|
|
|
|
|
 |
Ответов
|
Jan 31 2014, 04:50
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475

|
Стал дальше реализовывать проект и столкнулся с новыми временными ошибками. CODE process(clk_0) variable rdy_in : std_logic; begin if(rising_edge(clk_0)) then if(reset_clk_0 = '1') then rdy <= '0'; rdy_in := '0'; user_rd_data_0_0_i <= (others => '0'); user_rd_data_1_0_i <= (others => '0'); user_rd_data_2_0_i <= (others => '0'); user_rd_data_3_0_i <= (others => '0'); user_rd_data_4_0_i <= (others => '0'); user_rd_data_5_0_i <= (others => '0'); user_rd_data_6_0_i <= (others => '0'); user_rd_data_7_0_i <= (others => '0'); user_rd_data_8_0_i <= (others => '0'); user_rd_data_9_0_i <= (others => '0'); user_rd_data_10_0_i <= (others => '0'); user_rd_data_11_0_i <= (others => '0'); user_rd_data_12_0_i <= (others => '0'); user_rd_data_13_0_i <= (others => '0'); user_rd_data_14_0_i <= (others => '0'); user_rd_data_15_0_i <= (others => '0'); user_rd_data_0_1_i <= (others => '0'); user_rd_data_1_1_i <= (others => '0'); user_rd_data_2_1_i <= (others => '0'); user_rd_data_3_1_i <= (others => '0'); user_rd_data_4_1_i <= (others => '0'); user_rd_data_5_1_i <= (others => '0'); user_rd_data_6_1_i <= (others => '0'); user_rd_data_7_1_i <= (others => '0'); user_rd_data_8_1_i <= (others => '0'); user_rd_data_9_1_i <= (others => '0'); user_rd_data_10_1_i <= (others => '0'); user_rd_data_11_1_i <= (others => '0'); user_rd_data_12_1_i <= (others => '0'); user_rd_data_13_1_i <= (others => '0'); user_rd_data_14_1_i <= (others => '0'); user_rd_data_15_1_i <= (others => '0'); user_rd_data_0_2_i <= (others => '0'); user_rd_data_1_2_i <= (others => '0'); user_rd_data_2_2_i <= (others => '0'); user_rd_data_3_2_i <= (others => '0'); user_rd_data_4_2_i <= (others => '0'); user_rd_data_5_2_i <= (others => '0'); user_rd_data_6_2_i <= (others => '0'); user_rd_data_7_2_i <= (others => '0'); user_rd_data_8_2_i <= (others => '0'); user_rd_data_9_2_i <= (others => '0'); user_rd_data_10_2_i <= (others => '0'); user_rd_data_11_2_i <= (others => '0'); user_rd_data_12_2_i <= (others => '0'); user_rd_data_13_2_i <= (others => '0'); user_rd_data_14_2_i <= (others => '0'); user_rd_data_15_2_i <= (others => '0'); ----------------------------------------------------- user_rd_data_0_3_i <= (others => '0'); user_rd_data_1_3_i <= (others => '0'); user_rd_data_2_3_i <= (others => '0'); user_rd_data_3_3_i <= (others => '0'); user_rd_data_4_3_i <= (others => '0'); user_rd_data_5_3_i <= (others => '0'); user_rd_data_6_3_i <= (others => '0'); user_rd_data_7_3_i <= (others => '0'); user_rd_data_8_3_i <= (others => '0'); user_rd_data_9_3_i <= (others => '0'); user_rd_data_10_3_i <= (others => '0'); user_rd_data_11_3_i <= (others => '0'); user_rd_data_12_3_i <= (others => '0'); user_rd_data_13_3_i <= (others => '0'); user_rd_data_14_3_i <= (others => '0'); user_rd_data_15_3_i <= (others => '0'); ------------------------------------------------------ user_rd_data_0_4_i <= (others => '0'); user_rd_data_1_4_i <= (others => '0'); user_rd_data_2_4_i <= (others => '0'); user_rd_data_3_4_i <= (others => '0'); user_rd_data_4_4_i <= (others => '0'); user_rd_data_5_4_i <= (others => '0'); user_rd_data_6_4_i <= (others => '0'); user_rd_data_7_4_i <= (others => '0'); user_rd_data_8_4_i <= (others => '0'); user_rd_data_9_4_i <= (others => '0'); user_rd_data_10_4_i <= (others => '0'); user_rd_data_11_4_i <= (others => '0'); user_rd_data_12_4_i <= (others => '0'); user_rd_data_13_4_i <= (others => '0'); user_rd_data_14_4_i <= (others => '0'); user_rd_data_15_4_i <= (others => '0'); ------------------------------------------------------ user_rd_data_0_5_i <= (others => '0'); user_rd_data_1_5_i <= (others => '0'); user_rd_data_2_5_i <= (others => '0'); user_rd_data_3_5_i <= (others => '0'); user_rd_data_4_5_i <= (others => '0'); user_rd_data_5_5_i <= (others => '0'); user_rd_data_6_5_i <= (others => '0'); user_rd_data_7_5_i <= (others => '0'); user_rd_data_8_5_i <= (others => '0'); user_rd_data_9_5_i <= (others => '0'); user_rd_data_10_5_i <= (others => '0'); user_rd_data_11_5_i <= (others => '0'); user_rd_data_12_5_i <= (others => '0'); user_rd_data_13_5_i <= (others => '0'); user_rd_data_14_5_i <= (others => '0'); user_rd_data_15_5_i <= (others => '0'); ------------------------------------------------------ user_rd_data_0_6_i <= (others => '0'); user_rd_data_1_6_i <= (others => '0'); user_rd_data_2_6_i <= (others => '0'); user_rd_data_3_6_i <= (others => '0'); user_rd_data_4_6_i <= (others => '0'); user_rd_data_5_6_i <= (others => '0'); user_rd_data_6_6_i <= (others => '0'); user_rd_data_7_6_i <= (others => '0'); user_rd_data_8_6_i <= (others => '0'); user_rd_data_9_6_i <= (others => '0'); user_rd_data_10_6_i <= (others => '0'); user_rd_data_11_6_i <= (others => '0'); user_rd_data_12_6_i <= (others => '0'); user_rd_data_13_6_i <= (others => '0'); user_rd_data_14_6_i <= (others => '0'); user_rd_data_15_6_i <= (others => '0'); ------------------------------------------------------ user_rd_data_0_7_i <= (others => '0'); user_rd_data_1_7_i <= (others => '0'); user_rd_data_2_7_i <= (others => '0'); user_rd_data_3_7_i <= (others => '0'); user_rd_data_4_7_i <= (others => '0'); user_rd_data_5_7_i <= (others => '0'); user_rd_data_6_7_i <= (others => '0'); user_rd_data_7_7_i <= (others => '0'); user_rd_data_8_7_i <= (others => '0'); user_rd_data_9_7_i <= (others => '0'); user_rd_data_10_7_i <= (others => '0'); user_rd_data_11_7_i <= (others => '0'); user_rd_data_12_7_i <= (others => '0'); user_rd_data_13_7_i <= (others => '0'); user_rd_data_14_7_i <= (others => '0'); user_rd_data_15_7_i <= (others => '0'); ------------------------------------------------------ user_rd_data_0_8_i <= (others => '0'); user_rd_data_1_8_i <= (others => '0'); user_rd_data_2_8_i <= (others => '0'); user_rd_data_3_8_i <= (others => '0'); user_rd_data_4_8_i <= (others => '0'); user_rd_data_5_8_i <= (others => '0'); user_rd_data_6_8_i <= (others => '0'); user_rd_data_7_8_i <= (others => '0'); user_rd_data_8_8_i <= (others => '0'); user_rd_data_9_8_i <= (others => '0'); user_rd_data_10_8_i <= (others => '0'); user_rd_data_11_8_i <= (others => '0'); user_rd_data_12_8_i <= (others => '0'); user_rd_data_13_8_i <= (others => '0'); user_rd_data_14_8_i <= (others => '0'); user_rd_data_15_8_i <= (others => '0'); ------------------------------------------------------ rdy <= '0'; rdy_in := '0'; ------------------------------------------------------ user_rd_data_0_0 <= (others => '0'); user_rd_data_1_0 <= (others => '0'); user_rd_data_2_0 <= (others => '0'); user_rd_data_3_0 <= (others => '0'); user_rd_data_4_0 <= (others => '0'); user_rd_data_5_0 <= (others => '0'); user_rd_data_6_0 <= (others => '0'); user_rd_data_7_0 <= (others => '0'); user_rd_data_8_0 <= (others => '0'); user_rd_data_9_0 <= (others => '0'); user_rd_data_10_0 <= (others => '0'); user_rd_data_11_0 <= (others => '0'); user_rd_data_12_0 <= (others => '0'); user_rd_data_13_0 <= (others => '0'); user_rd_data_14_0 <= (others => '0'); user_rd_data_15_0 <= (others => '0'); ------------------------------------------------------ user_rd_data_0_1 <= (others => '0'); user_rd_data_1_1 <= (others => '0'); user_rd_data_2_1 <= (others => '0'); user_rd_data_3_1 <= (others => '0'); user_rd_data_4_1 <= (others => '0'); user_rd_data_5_1 <= (others => '0'); user_rd_data_6_1 <= (others => '0'); user_rd_data_7_1 <= (others => '0'); user_rd_data_8_1 <= (others => '0'); user_rd_data_9_1 <= (others => '0'); user_rd_data_10_1 <= (others => '0'); user_rd_data_11_1 <= (others => '0'); user_rd_data_12_1 <= (others => '0'); user_rd_data_13_1 <= (others => '0'); user_rd_data_14_1 <= (others => '0'); user_rd_data_15_1 <= (others => '0'); ------------------------------------------------------ user_rd_data_0_2 <= (others => '0'); user_rd_data_1_2 <= (others => '0'); user_rd_data_2_2 <= (others => '0'); user_rd_data_3_2 <= (others => '0'); user_rd_data_4_2 <= (others => '0'); user_rd_data_5_2 <= (others => '0'); user_rd_data_6_2 <= (others => '0'); user_rd_data_7_2 <= (others => '0'); user_rd_data_8_2 <= (others => '0'); user_rd_data_9_2 <= (others => '0'); user_rd_data_10_2 <= (others => '0'); user_rd_data_11_2 <= (others => '0'); user_rd_data_12_2 <= (others => '0'); user_rd_data_13_2 <= (others => '0'); user_rd_data_14_2 <= (others => '0'); user_rd_data_15_2 <= (others => '0'); ------------------------------------------------------ user_rd_data_0_3 <= (others => '0'); user_rd_data_1_3 <= (others => '0'); user_rd_data_2_3 <= (others => '0'); user_rd_data_3_3 <= (others => '0'); user_rd_data_4_3 <= (others => '0'); user_rd_data_5_3 <= (others => '0'); user_rd_data_6_3 <= (others => '0'); user_rd_data_7_3 <= (others => '0'); user_rd_data_8_3 <= (others => '0'); user_rd_data_9_3 <= (others => '0'); user_rd_data_10_3 <= (others => '0'); user_rd_data_11_3 <= (others => '0'); user_rd_data_12_3 <= (others => '0'); user_rd_data_13_3 <= (others => '0'); user_rd_data_14_3 <= (others => '0'); user_rd_data_15_3 <= (others => '0'); ------------------------------------------------------ user_rd_data_0_4 <= (others => '0'); user_rd_data_1_4 <= (others => '0'); user_rd_data_2_4 <= (others => '0'); user_rd_data_3_4 <= (others => '0'); user_rd_data_4_4 <= (others => '0'); user_rd_data_5_4 <= (others => '0'); user_rd_data_6_4 <= (others => '0'); user_rd_data_7_4 <= (others => '0'); user_rd_data_8_4 <= (others => '0'); user_rd_data_9_4 <= (others => '0'); user_rd_data_10_4 <= (others => '0'); user_rd_data_11_4 <= (others => '0'); user_rd_data_12_4 <= (others => '0'); user_rd_data_13_4 <= (others => '0'); user_rd_data_14_4 <= (others => '0'); user_rd_data_15_4 <= (others => '0'); user_rd_data_0_5 <= (others => '0'); user_rd_data_1_5 <= (others => '0'); user_rd_data_2_5 <= (others => '0'); user_rd_data_3_5 <= (others => '0'); user_rd_data_4_5 <= (others => '0'); user_rd_data_5_5 <= (others => '0'); user_rd_data_6_5 <= (others => '0'); user_rd_data_7_5 <= (others => '0'); user_rd_data_8_5 <= (others => '0'); user_rd_data_9_5 <= (others => '0'); user_rd_data_10_5 <= (others => '0'); user_rd_data_11_5 <= (others => '0'); user_rd_data_12_5 <= (others => '0'); user_rd_data_13_5 <= (others => '0'); user_rd_data_14_5 <= (others => '0'); user_rd_data_15_5 <= (others => '0'); ------------------------------------------------------ user_rd_data_0_6 <= (others => '0'); user_rd_data_1_6 <= (others => '0'); user_rd_data_2_6 <= (others => '0'); user_rd_data_3_6 <= (others => '0'); user_rd_data_4_6 <= (others => '0'); user_rd_data_5_6 <= (others => '0'); user_rd_data_6_6 <= (others => '0'); user_rd_data_7_6 <= (others => '0'); user_rd_data_8_6 <= (others => '0'); user_rd_data_9_6 <= (others => '0'); user_rd_data_10_6 <= (others => '0'); user_rd_data_11_6 <= (others => '0'); user_rd_data_12_6 <= (others => '0'); user_rd_data_13_6 <= (others => '0'); user_rd_data_14_6 <= (others => '0'); user_rd_data_15_6 <= (others => '0'); user_rd_data_0_7 <= (others => '0'); user_rd_data_1_7 <= (others => '0'); user_rd_data_2_7 <= (others => '0'); user_rd_data_3_7 <= (others => '0'); user_rd_data_4_7 <= (others => '0'); user_rd_data_5_7 <= (others => '0'); user_rd_data_6_7 <= (others => '0'); user_rd_data_7_7 <= (others => '0'); user_rd_data_8_7 <= (others => '0'); user_rd_data_9_7 <= (others => '0'); user_rd_data_10_7 <= (others => '0'); user_rd_data_11_7 <= (others => '0'); user_rd_data_12_7 <= (others => '0'); user_rd_data_13_7 <= (others => '0'); user_rd_data_14_7 <= (others => '0'); user_rd_data_15_7 <= (others => '0'); ------------------------------------------------------ user_rd_data_0_8 <= (others => '0'); user_rd_data_1_8 <= (others => '0'); user_rd_data_2_8 <= (others => '0'); user_rd_data_3_8 <= (others => '0'); user_rd_data_4_8 <= (others => '0'); user_rd_data_5_8 <= (others => '0'); user_rd_data_6_8 <= (others => '0'); user_rd_data_7_8 <= (others => '0'); user_rd_data_8_8 <= (others => '0'); user_rd_data_9_8 <= (others => '0'); user_rd_data_10_8 <= (others => '0'); user_rd_data_11_8 <= (others => '0'); user_rd_data_12_8 <= (others => '0'); user_rd_data_13_8 <= (others => '0'); user_rd_data_14_8 <= (others => '0'); user_rd_data_15_8 <= (others => '0'); data_valid_i <= '0'; mpx_cmp <= "0000000"; elsif(rd_data_valid = '1') then data_valid_i <= '1'; --if(first = '0') then --------------------------------- case mpx_cmp is when("0000000") => user_rd_data_0_0_i <= user_rd_data_rise; user_rd_data_1_0_i <= user_rd_data_fall; mpx_cmp <= "0000001"; when ("0000001") => user_rd_data_2_0_i <= user_rd_data_rise; user_rd_data_3_0_i <= user_rd_data_fall; mpx_cmp <= "0000010"; when("0000010") => user_rd_data_4_0_i <= user_rd_data_rise; user_rd_data_5_0_i <= user_rd_data_fall; mpx_cmp <= "0000011"; when("0000011") => user_rd_data_6_0_i <= user_rd_data_rise; user_rd_data_7_0_i <= user_rd_data_fall; mpx_cmp <= "0000100"; when("0000100") => user_rd_data_8_0_i <= user_rd_data_rise; user_rd_data_9_0_i <= user_rd_data_fall; mpx_cmp <= "0000101"; when("0000101") => user_rd_data_10_0_i <= user_rd_data_rise; user_rd_data_11_0_i <= user_rd_data_fall; mpx_cmp <= "0000110"; when("0000110") => user_rd_data_12_0_i <= user_rd_data_rise; user_rd_data_13_0_i <= user_rd_data_fall; mpx_cmp <= "0000111"; when("0000111") => user_rd_data_14_0_i <= user_rd_data_rise; user_rd_data_15_0_i <= user_rd_data_fall; mpx_cmp <= "0001000"; ---------------------------------1 when("0001000") => user_rd_data_0_1_i <= user_rd_data_rise; user_rd_data_1_1_i <= user_rd_data_fall; mpx_cmp <= "0001001"; when("0001001") => user_rd_data_2_1_i <= user_rd_data_rise; user_rd_data_3_1_i <= user_rd_data_fall; mpx_cmp <= "0001010"; when("0001010") => user_rd_data_4_1_i <= user_rd_data_rise; user_rd_data_5_1_i <= user_rd_data_fall; mpx_cmp <= "0001011"; when("0001011") => user_rd_data_6_1_i <= user_rd_data_rise; user_rd_data_7_1_i <= user_rd_data_fall; mpx_cmp <= "0001100"; when("0001100") => user_rd_data_8_1_i <= user_rd_data_rise; user_rd_data_9_1_i <= user_rd_data_fall; mpx_cmp <= "0001101"; when("0001101") => user_rd_data_10_1_i <= user_rd_data_rise; user_rd_data_11_1_i <= user_rd_data_fall; mpx_cmp <= "0001110"; when("0001110") => user_rd_data_12_1_i <= user_rd_data_rise; user_rd_data_13_1_i <= user_rd_data_fall; mpx_cmp <= "0001111"; when("0001111") => user_rd_data_14_1_i <= user_rd_data_rise; user_rd_data_15_1_i <= user_rd_data_fall; mpx_cmp <= "0010000"; ---------------------------------2 when("0010000") => user_rd_data_0_2_i <= user_rd_data_rise; user_rd_data_1_2_i <= user_rd_data_fall; mpx_cmp <= "0010001"; when("0010001") => user_rd_data_2_2_i <= user_rd_data_rise; user_rd_data_3_2_i <= user_rd_data_fall; mpx_cmp <= "0010010"; when("0010010") => user_rd_data_4_2_i <= user_rd_data_rise; user_rd_data_5_2_i <= user_rd_data_fall; mpx_cmp <= "0010011"; when("0010011") => user_rd_data_6_2_i <= user_rd_data_rise; user_rd_data_7_2_i <= user_rd_data_fall; mpx_cmp <= "0010100"; when("0010100") => user_rd_data_8_2_i <= user_rd_data_rise; user_rd_data_9_2_i <= user_rd_data_fall; mpx_cmp <= "0010101"; when("0010101") => user_rd_data_10_2_i <= user_rd_data_rise; user_rd_data_11_2_i <= user_rd_data_fall; mpx_cmp <= "0010110"; when("0010110") => user_rd_data_12_2_i <= user_rd_data_rise; user_rd_data_13_2_i <= user_rd_data_fall; mpx_cmp <= "0010111"; when("0010111") => user_rd_data_14_2_i <= user_rd_data_rise; user_rd_data_15_2_i <= user_rd_data_fall; mpx_cmp <= "0011111"; ---------------------------------3 when("0011111") => user_rd_data_0_3_i <= user_rd_data_rise; user_rd_data_1_3_i <= user_rd_data_fall; mpx_cmp <= "0100000"; when("0100000") => user_rd_data_2_3_i <= user_rd_data_rise; user_rd_data_3_3_i <= user_rd_data_fall; mpx_cmp <= "0100001"; when("0100001") => user_rd_data_4_3_i <= user_rd_data_rise; user_rd_data_5_3_i <= user_rd_data_fall; mpx_cmp <= "0100010"; when("0100010") => user_rd_data_6_3_i <= user_rd_data_rise; user_rd_data_7_3_i <= user_rd_data_fall; mpx_cmp <= "0100011"; when("0100011") => user_rd_data_8_3_i <= user_rd_data_rise; user_rd_data_9_3_i <= user_rd_data_fall; mpx_cmp <= "0100100"; when("0100100") => user_rd_data_10_3_i <= user_rd_data_rise; user_rd_data_11_3_i <= user_rd_data_fall; mpx_cmp <= "0100101"; when("0100101") => user_rd_data_12_3_i <= user_rd_data_rise; user_rd_data_13_3_i <= user_rd_data_fall; mpx_cmp <= "0100110"; when("0100110") => user_rd_data_14_3_i <= user_rd_data_rise; user_rd_data_15_3_i <= user_rd_data_fall; mpx_cmp <= "0100111"; ---------------------------------4 when("0100111") => user_rd_data_0_4_i <= user_rd_data_rise; user_rd_data_1_4_i <= user_rd_data_fall; mpx_cmp <= "0101000"; when("0101000") => user_rd_data_2_4_i <= user_rd_data_rise; user_rd_data_3_4_i <= user_rd_data_fall; mpx_cmp <= "0101001"; when("0101001") => user_rd_data_4_4_i <= user_rd_data_rise; user_rd_data_5_4_i <= user_rd_data_fall; mpx_cmp <= "0101010"; when("0101010") => user_rd_data_6_4_i <= user_rd_data_rise; user_rd_data_7_4_i <= user_rd_data_fall; mpx_cmp <= "0101011"; when("0101011") => user_rd_data_8_4_i <= user_rd_data_rise; user_rd_data_9_4_i <= user_rd_data_fall; mpx_cmp <= "0101100"; when("0101100") => user_rd_data_10_4_i <= user_rd_data_rise; user_rd_data_11_4_i <= user_rd_data_fall; mpx_cmp <= "0101101"; when("0101101") => user_rd_data_12_4_i <= user_rd_data_rise; user_rd_data_13_4_i <= user_rd_data_fall; mpx_cmp <= "0101110"; when("0101110") => user_rd_data_14_4_i <= user_rd_data_rise; user_rd_data_15_4_i <= user_rd_data_fall; mpx_cmp <= "0101111"; ------------------------------------------------------- when("0101111") => user_rd_data_0_5_i <= user_rd_data_rise; user_rd_data_1_5_i <= user_rd_data_fall; mpx_cmp <= "0110000"; when("0110000") => user_rd_data_2_5_i <= user_rd_data_rise; user_rd_data_3_5_i <= user_rd_data_fall; mpx_cmp <= "0110001"; when("0110001") => user_rd_data_4_5_i <= user_rd_data_rise; user_rd_data_5_5_i <= user_rd_data_fall; mpx_cmp <= "0110010"; when("0110010") => user_rd_data_6_5_i <= user_rd_data_rise; user_rd_data_7_5_i <= user_rd_data_fall; mpx_cmp <= "0110011"; when("0110011") => user_rd_data_8_5_i <= user_rd_data_rise; user_rd_data_9_5_i <= user_rd_data_fall; mpx_cmp <= "0110100"; when("0110100") => user_rd_data_10_5_i <= user_rd_data_rise; user_rd_data_11_5_i <= user_rd_data_fall; mpx_cmp <= "0110101"; when("0110101") => user_rd_data_12_5_i <= user_rd_data_rise; user_rd_data_13_5_i <= user_rd_data_fall; mpx_cmp <= "0110110"; when("0110110") => user_rd_data_14_5_i <= user_rd_data_rise; user_rd_data_15_5_i <= user_rd_data_fall; mpx_cmp <= "0110111"; -------------------------------------------------- when("0110111") => user_rd_data_0_6_i <= user_rd_data_rise; user_rd_data_1_6_i <= user_rd_data_fall; mpx_cmp <= "0111000"; when("0111000") => user_rd_data_2_6_i <= user_rd_data_rise; user_rd_data_3_6_i <= user_rd_data_fall; mpx_cmp <= "0111001"; when("0111001") => user_rd_data_4_6_i <= user_rd_data_rise; user_rd_data_5_6_i <= user_rd_data_fall; mpx_cmp <= "0111010"; when("0111010") => user_rd_data_6_6_i <= user_rd_data_rise; user_rd_data_7_6_i <= user_rd_data_fall; mpx_cmp <= "0111011"; when("0111011") => user_rd_data_8_6_i <= user_rd_data_rise; user_rd_data_9_6_i <= user_rd_data_fall; mpx_cmp <= "0111100"; when("0111100") => user_rd_data_10_6_i <= user_rd_data_rise; user_rd_data_11_6_i <= user_rd_data_fall; mpx_cmp <= "0111101"; when("0111101") => user_rd_data_12_6_i <= user_rd_data_rise; user_rd_data_13_6_i <= user_rd_data_fall; mpx_cmp <= "0111110"; when("0111110") => user_rd_data_14_6_i <= user_rd_data_rise; user_rd_data_15_6_i <= user_rd_data_fall; mpx_cmp <= "0111111"; when("0111111") => user_rd_data_0_7_i <= user_rd_data_rise; user_rd_data_1_7_i <= user_rd_data_fall; mpx_cmp <= "1000000"; when("1000000") => user_rd_data_2_7_i <= user_rd_data_rise; user_rd_data_3_7_i <= user_rd_data_fall; mpx_cmp <= "1000001"; when("1000001") => user_rd_data_4_7_i <= user_rd_data_rise; user_rd_data_5_7_i <= user_rd_data_fall; mpx_cmp <= "1000010"; when("1000010") => user_rd_data_6_7_i <= user_rd_data_rise; user_rd_data_7_7_i <= user_rd_data_fall; mpx_cmp <= "1000011"; when("1000011") => user_rd_data_8_7_i <= user_rd_data_rise; user_rd_data_9_7_i <= user_rd_data_fall; mpx_cmp <= "1000100"; when("1000100") => user_rd_data_10_7_i <= user_rd_data_rise; user_rd_data_11_7_i <= user_rd_data_fall; mpx_cmp <= "1000101"; when("1000101") => user_rd_data_12_7_i <= user_rd_data_rise; user_rd_data_13_7_i <= user_rd_data_fall; mpx_cmp <= "1000110"; when("1000110") => user_rd_data_14_7_i <= user_rd_data_rise; user_rd_data_15_7_i <= user_rd_data_fall; mpx_cmp <= "1000111"; when("1000111") => user_rd_data_0_8_i <= user_rd_data_rise; user_rd_data_1_8_i <= user_rd_data_fall; mpx_cmp <= "1001000"; when("1001000") => user_rd_data_2_8_i <= user_rd_data_rise; user_rd_data_3_8_i <= user_rd_data_fall; mpx_cmp <= "1001001"; when("1001001") => user_rd_data_4_8_i <= user_rd_data_rise; user_rd_data_5_8_i <= user_rd_data_fall; mpx_cmp <= "1001010"; when("1001010") => user_rd_data_6_8_i <= user_rd_data_rise; user_rd_data_7_8_i <= user_rd_data_fall; mpx_cmp <= "1001011"; when("1001011") => user_rd_data_8_8_i <= user_rd_data_rise; user_rd_data_9_8_i <= user_rd_data_fall; mpx_cmp <= "1001100"; when("1001100") => user_rd_data_10_8_i <= user_rd_data_rise; user_rd_data_11_8_i <= user_rd_data_fall; mpx_cmp <= "1001101"; when("1001101") => user_rd_data_12_8_i <= user_rd_data_rise; user_rd_data_13_8_i <= user_rd_data_fall; mpx_cmp <= "1010010"; when("1010010") => --user_rd_data_14_2_i <= user_rd_data_rise; --user_rd_data_15_2_i <= user_rd_data_fall; rdy_in := not rdy_in; rdy <= rdy_in; user_rd_data_0_0 <= user_rd_data_0_0_i; user_rd_data_1_0 <= user_rd_data_1_0_i; user_rd_data_2_0 <= user_rd_data_2_0_i; user_rd_data_3_0 <= user_rd_data_3_0_i; user_rd_data_4_0 <= user_rd_data_4_0_i; user_rd_data_5_0 <= user_rd_data_5_0_i; user_rd_data_6_0 <= user_rd_data_6_0_i; user_rd_data_7_0 <= user_rd_data_7_0_i; user_rd_data_8_0 <= user_rd_data_8_0_i; user_rd_data_9_0 <= user_rd_data_9_0_i; user_rd_data_10_0 <= user_rd_data_10_0_i; user_rd_data_11_0 <= user_rd_data_11_0_i; user_rd_data_12_0 <= user_rd_data_12_0_i; user_rd_data_13_0 <= user_rd_data_13_0_i; user_rd_data_14_0 <= user_rd_data_14_0_i; user_rd_data_15_0 <= user_rd_data_15_0_i; user_rd_data_0_1 <= user_rd_data_0_1_i; user_rd_data_1_1 <= user_rd_data_1_1_i; user_rd_data_2_1 <= user_rd_data_2_1_i; user_rd_data_3_1 <= user_rd_data_3_1_i; user_rd_data_4_1 <= user_rd_data_4_1_i; user_rd_data_5_1 <= user_rd_data_5_1_i; user_rd_data_6_1 <= user_rd_data_6_1_i; user_rd_data_7_1 <= user_rd_data_7_1_i; user_rd_data_8_1 <= user_rd_data_8_1_i; user_rd_data_9_1 <= user_rd_data_9_1_i; user_rd_data_10_1 <= user_rd_data_10_1_i; user_rd_data_11_1 <= user_rd_data_11_1_i; user_rd_data_12_1 <= user_rd_data_12_1_i; user_rd_data_13_1 <= user_rd_data_13_1_i; user_rd_data_14_1 <= user_rd_data_14_1_i; user_rd_data_15_1 <= user_rd_data_15_1_i; user_rd_data_0_2 <= user_rd_data_0_2_i; user_rd_data_1_2 <= user_rd_data_1_2_i; user_rd_data_2_2 <= user_rd_data_2_2_i; user_rd_data_3_2 <= user_rd_data_3_2_i; user_rd_data_4_2 <= user_rd_data_4_2_i; user_rd_data_5_2 <= user_rd_data_5_2_i; user_rd_data_6_2 <= user_rd_data_6_2_i; user_rd_data_7_2 <= user_rd_data_7_2_i; user_rd_data_8_2 <= user_rd_data_8_2_i; user_rd_data_9_2 <= user_rd_data_9_2_i; user_rd_data_10_2 <= user_rd_data_10_2_i; user_rd_data_11_2 <= user_rd_data_11_2_i; user_rd_data_12_2 <= user_rd_data_12_2_i; user_rd_data_13_2 <= user_rd_data_13_2_i; user_rd_data_14_2 <= user_rd_data_14_2_i; user_rd_data_15_2 <= user_rd_data_15_2_i; user_rd_data_0_3 <= user_rd_data_0_3_i; user_rd_data_1_3 <= user_rd_data_1_3_i; user_rd_data_2_3 <= user_rd_data_2_3_i; user_rd_data_3_3 <= user_rd_data_3_3_i; user_rd_data_4_3 <= user_rd_data_4_3_i; user_rd_data_5_3 <= user_rd_data_5_3_i; user_rd_data_6_3 <= user_rd_data_6_3_i; user_rd_data_7_3 <= user_rd_data_7_3_i; user_rd_data_8_3 <= user_rd_data_8_3_i; user_rd_data_9_3 <= user_rd_data_9_3_i; user_rd_data_10_3 <= user_rd_data_10_3_i; user_rd_data_11_3 <= user_rd_data_11_3_i; user_rd_data_12_3 <= user_rd_data_12_3_i; user_rd_data_13_3 <= user_rd_data_13_3_i; user_rd_data_14_3 <= user_rd_data_14_3_i; user_rd_data_15_3 <= user_rd_data_15_3_i; user_rd_data_0_4 <= user_rd_data_0_4_i; user_rd_data_1_4 <= user_rd_data_1_4_i; user_rd_data_2_4 <= user_rd_data_2_4_i; user_rd_data_3_4 <= user_rd_data_3_4_i; user_rd_data_4_4 <= user_rd_data_4_4_i; user_rd_data_5_4 <= user_rd_data_5_4_i; user_rd_data_6_4 <= user_rd_data_6_4_i; user_rd_data_7_4 <= user_rd_data_7_4_i; user_rd_data_8_4 <= user_rd_data_8_4_i; user_rd_data_9_4 <= user_rd_data_9_4_i; user_rd_data_10_4 <= user_rd_data_10_4_i; user_rd_data_11_4 <= user_rd_data_11_4_i; user_rd_data_12_4 <= user_rd_data_12_4_i; user_rd_data_13_4 <= user_rd_data_13_4_i; user_rd_data_14_4 <= user_rd_data_14_4_i; user_rd_data_15_4 <= user_rd_data_15_4_i; user_rd_data_0_5 <= user_rd_data_0_5_i; user_rd_data_1_5 <= user_rd_data_1_5_i; user_rd_data_2_5 <= user_rd_data_2_5_i; user_rd_data_3_5 <= user_rd_data_3_5_i; user_rd_data_4_5 <= user_rd_data_4_5_i; user_rd_data_5_5 <= user_rd_data_5_5_i; user_rd_data_6_5 <= user_rd_data_6_5_i; user_rd_data_7_5 <= user_rd_data_7_5_i; user_rd_data_8_5 <= user_rd_data_8_5_i; user_rd_data_9_5 <= user_rd_data_9_5_i; user_rd_data_10_5 <= user_rd_data_10_5_i; user_rd_data_11_5 <= user_rd_data_11_5_i; user_rd_data_12_5 <= user_rd_data_12_5_i; user_rd_data_13_5 <= user_rd_data_13_5_i; user_rd_data_14_5 <= user_rd_data_14_5_i; user_rd_data_15_5 <= user_rd_data_15_5_i; user_rd_data_0_6 <= user_rd_data_0_6_i; user_rd_data_1_6 <= user_rd_data_1_6_i; user_rd_data_2_6 <= user_rd_data_2_6_i; user_rd_data_3_6 <= user_rd_data_3_6_i; user_rd_data_4_6 <= user_rd_data_4_6_i; user_rd_data_5_6 <= user_rd_data_5_6_i; user_rd_data_6_6 <= user_rd_data_6_6_i; user_rd_data_7_6 <= user_rd_data_7_6_i; user_rd_data_8_6 <= user_rd_data_8_6_i; user_rd_data_9_6 <= user_rd_data_9_6_i; user_rd_data_10_6 <= user_rd_data_10_6_i; user_rd_data_11_6 <= user_rd_data_11_6_i; user_rd_data_12_6 <= user_rd_data_12_6_i; user_rd_data_13_6 <= user_rd_data_13_6_i; user_rd_data_14_6 <= user_rd_data_14_6_i; user_rd_data_15_6 <= user_rd_data_15_6_i; user_rd_data_0_7 <= user_rd_data_0_7_i; user_rd_data_1_7 <= user_rd_data_1_7_i; user_rd_data_2_7 <= user_rd_data_2_7_i; user_rd_data_3_7 <= user_rd_data_3_7_i; user_rd_data_4_7 <= user_rd_data_4_7_i; user_rd_data_5_7 <= user_rd_data_5_7_i; user_rd_data_6_7 <= user_rd_data_6_7_i; user_rd_data_7_7 <= user_rd_data_7_7_i; user_rd_data_8_7 <= user_rd_data_8_7_i; user_rd_data_9_7 <= user_rd_data_9_7_i; user_rd_data_10_7 <= user_rd_data_10_7_i; user_rd_data_11_7 <= user_rd_data_11_7_i; user_rd_data_12_7 <= user_rd_data_12_7_i; user_rd_data_13_7 <= user_rd_data_13_7_i; user_rd_data_14_7 <= user_rd_data_14_7_i; user_rd_data_15_7 <= user_rd_data_15_7_i; user_rd_data_0_8_l <= user_rd_data_0_8_i; user_rd_data_1_8_l <= user_rd_data_1_8_i; user_rd_data_2_8_l <= user_rd_data_2_8_i; user_rd_data_3_8_l <= user_rd_data_3_8_i; user_rd_data_4_8_l <= user_rd_data_4_8_i; user_rd_data_5_8_l <= user_rd_data_5_8_i; user_rd_data_6_8_l <= user_rd_data_6_8_i; user_rd_data_7_8_l <= user_rd_data_7_8_i; user_rd_data_8_8_l <= user_rd_data_8_8_i; user_rd_data_9_8_l <= user_rd_data_9_8_i; user_rd_data_10_8_l <= user_rd_data_10_8_i; user_rd_data_11_8_l <= user_rd_data_11_8_i; user_rd_data_12_8_l <= user_rd_data_12_8_i; user_rd_data_13_8_l <= user_rd_data_13_8_i; user_rd_data_14_8_l <= user_rd_data_rise; user_rd_data_15_8_l <= user_rd_data_fall; user_rd_data_0_8 <= user_rd_data_0_8_l; user_rd_data_1_8 <= user_rd_data_1_8_l; user_rd_data_2_8 <= user_rd_data_2_8_l; user_rd_data_3_8 <= user_rd_data_3_8_l; user_rd_data_4_8 <= user_rd_data_4_8_l; user_rd_data_5_8 <= user_rd_data_5_8_l; user_rd_data_6_8 <= user_rd_data_6_8_l; user_rd_data_7_8 <= user_rd_data_7_8_l; user_rd_data_8_8 <= user_rd_data_8_8_l; user_rd_data_9_8 <= user_rd_data_9_8_l; user_rd_data_10_8 <= user_rd_data_10_8_l; user_rd_data_11_8 <= user_rd_data_11_8_l; user_rd_data_12_8 <= user_rd_data_12_8_l; user_rd_data_13_8 <= user_rd_data_13_8_l; user_rd_data_14_8 <= user_rd_data_14_8_l; user_rd_data_15_8 <= user_rd_data_15_8_l; mpx_cmp <= "0000000"; when others => NULL; end case; end if; end if; end process; ;
Вот в этой части кода я данные по сигналу rd_data_valid с памяти последовательно записываю в регистры и параллельно выдаю по окончании. Не могли бы вы подсказать насколько данный код не оптимален? И в чем? И как правильно организовать преобразование последоветельного потока данных в параллельный? CODE Timing constraint: PERIOD analysis for net "clk200x" derived from NET "clk100" PERIOD = 10 ns HIGH 50%; divided by 2.00 to 5 nS For more information, see Period Analysis in the Timing Closure User Guide (UG612). 191470397 paths analyzed, 17155 endpoints analyzed, 1066 failing endpoints 1066 timing errors detected. (1061 setup errors, 5 hold errors, 0 component switching limit errors) Minimum period is 5.956ns. -------------------------------------------------------------------------------- Paths for end point ddc/ddc/IMPCI/U2/U2/blk00000337 (SLICE_X64Y150.CIN), 1810530 paths -------------------------------------------------------------------------------- Slack (setup path): -0.956ns (requirement - (data path - clock path skew + uncertainty)) Source: ddc/ddc/SW_IN_I/Label1/U15/outp_20 (FF) Destination: ddc/ddc/IMPCI/U2/U2/blk00000337 (FF) Requirement: 5.000ns Data Path Delay: 5.833ns (Levels of Logic = 9) Clock Path Skew: -0.051ns (0.893 - 0.944) Source Clock: clk200 rising at 0.000ns Destination Clock: clk200 rising at 5.000ns Clock Uncertainty: 0.072ns Clock Uncertainty: 0.072ns ((TSJ^2 + DJ^2)^1/2) / 2 + PE Total System Jitter (TSJ): 0.070ns Discrete Jitter (DJ): 0.124ns Phase Error (PE): 0.000ns Maximum Data Path at Slow Process Corner: ddc/ddc/SW_IN_I/Label1/U15/outp_20 to ddc/ddc/IMPCI/U2/U2/blk00000337 Location Delay type Delay(ns) Physical Resource Logical Resource(s) ------------------------------------------------- ------------------- SLICE_X67Y143.DQ Tcko 0.337 ddc/ddc/SW_IN_I/Label1/U15/outp<20> ddc/ddc/SW_IN_I/Label1/U15/outp_20 SLICE_X60Y143.B2 net (fanout=34) 0.952 ddc/ddc/SW_IN_I/Label1/U15/outp<20> SLICE_X60Y143.COUT Topcyb 0.406 ddc/ddc/IMPCI/U2/U2/sig0000030e ddc/ddc/IMPCI/U2/U2/blk000003a5 ddc/ddc/IMPCI/U2/U2/blk000000fa SLICE_X60Y144.CIN net (fanout=1) 0.000 ddc/ddc/IMPCI/U2/U2/sig0000030e SLICE_X60Y144.DMUX Tcind 0.316 ddc/ddc/IMPCI/U2/U2/sig000002ee ddc/ddc/IMPCI/U2/U2/blk000000da SLICE_X59Y145.B3 net (fanout=2) 0.470 ddc/ddc/IMPCI/U2/U2/sig00000247 SLICE_X59Y145.COUT Topcyb 0.404 ddc/ddc/u_ddrii_tb_top_0/Label1/user_rd_data_11_1_i<20> ddc/ddc/IMPCI/U2/U2/blk000002f2 ddc/ddc/IMPCI/U2/U2/blk000002eb SLICE_X59Y146.CIN net (fanout=1) 0.000 ddc/ddc/IMPCI/U2/U2/sig000000db SLICE_X59Y146.CMUX Tcinc 0.243 ddc/ddc/u_ddrii_tb_top_0/Label1/user_rd_data_2_1_i<25> ddc/ddc/IMPCI/U2/U2/blk000002df SLICE_X65Y147.A4 net (fanout=1) 0.914 ddc/ddc/IMPCI/U2/U2/sig0000018d SLICE_X65Y147.COUT Topcya 0.409 ddc/ddc/u_ddrii_tb_top_0/Label1/user_rd_data_10_1<8> ddc/ddc/IMPCI/U2/U2/blk0000023e ddc/ddc/IMPCI/U2/U2/blk00000234 SLICE_X65Y148.CIN net (fanout=1) 0.000 ddc/ddc/IMPCI/U2/U2/sig00000062 SLICE_X65Y148.DMUX Tcind 0.315 ddc/ddc/u_ddrii_tb_top_0/Label1/user_rd_data_0_1_i<2> ddc/ddc/IMPCI/U2/U2/blk00000228 SLICE_X64Y148.D4 net (fanout=2) 0.530 ddc/ddc/IMPCI/U2/U2/sig0000015f SLICE_X64Y148.COUT Topcyd 0.319 ddc/ddc/IMPCI/U2/BUS47<23> ddc/ddc/IMPCI/U2/U2/blk000001bc ddc/ddc/IMPCI/U2/U2/blk000001bb SLICE_X64Y149.CIN net (fanout=1) 0.000 ddc/ddc/IMPCI/U2/U2/sig00000012 SLICE_X64Y149.COUT Tbyp 0.078 ddc/ddc/IMPCI/U2/BUS47<27> ddc/ddc/IMPCI/U2/U2/blk000001af SLICE_X64Y150.CIN net (fanout=1) 0.000 ddc/ddc/IMPCI/U2/U2/sig0000000a SLICE_X64Y150.CLK Tcinck 0.140 ddc/ddc/IMPCI/U2/BUS47<31> ddc/ddc/IMPCI/U2/U2/blk000001a3 ddc/ddc/IMPCI/U2/U2/blk00000337 ------------------------------------------------- --------------------------- Total 5.833ns (2.967ns logic, 2.866ns route) (50.9% logic, 49.1% route) CODE Paths for end point ddc/ddc/IMPCI/U9/blk00000003 (DSP48_X4Y39.PCIN0), 17 paths -------------------------------------------------------------------------------- Slack (setup path): -0.938ns (requirement - (data path - clock path skew + uncertainty)) Source: ddc/ddc/IMPCI/U8/median_5 (FF) Destination: ddc/ddc/IMPCI/U9/blk00000003 (DSP) Requirement: 5.000ns Data Path Delay: 5.874ns (Levels of Logic = 1)(Component delays alone exceeds constraint) Clock Path Skew: 0.008ns (0.904 - 0.896) Source Clock: clk200 rising at 0.000ns Destination Clock: clk200 rising at 5.000ns Clock Uncertainty: 0.072ns Clock Uncertainty: 0.072ns ((TSJ^2 + DJ^2)^1/2) / 2 + PE Total System Jitter (TSJ): 0.070ns Discrete Jitter (DJ): 0.124ns Phase Error (PE): 0.000ns Maximum Data Path at Slow Process Corner: ddc/ddc/IMPCI/U8/median_5 to ddc/ddc/IMPCI/U9/blk00000003 Location Delay type Delay(ns) Physical Resource Logical Resource(s) ------------------------------------------------- ------------------- SLICE_X81Y96.BMUX Tshcko 0.420 ddc/ddc/IMPCI/U8/median<11> ddc/ddc/IMPCI/U8/median_5 DSP48_X4Y38.B5 net (fanout=1) 0.423 ddc/ddc/IMPCI/U8/median<5> DSP48_X4Y38.PCOUT0 Tdspdo_B_PCOUT_MULT 3.691 ddc/ddc/IMPCI/U9/blk00000004 ddc/ddc/IMPCI/U9/blk00000004 DSP48_X4Y39.PCIN0 net (fanout=1) 0.002 ddc/ddc/IMPCI/U9/sig00000003 DSP48_X4Y39.CLK Tdspdck_PCIN_PREG 1.338 ddc/ddc/IMPCI/U9/blk00000003 ddc/ddc/IMPCI/U9/blk00000003 ------------------------------------------------- --------------------------- Total 5.874ns (5.449ns logic, 0.425ns route) (92.8% logic, 7.2% route) У меня в схеме есть две разных корки умножителя на DSP48 с оптимальным pipeline. У меня получается такая закономерность, что при синтезе пути к этим умножителям страдают от временных ошибок. Из за чего такое может быть?
Сообщение отредактировал bognev - Jan 31 2014, 04:52
|
|
|
|
|
Jan 31 2014, 06:47
|
Местный
  
Группа: Свой
Сообщений: 462
Регистрация: 20-01-06
Пользователь №: 13 399

|
Цитата(bognev @ Jan 31 2014, 07:50)  Стал дальше реализовывать проект и столкнулся с новыми временными ошибками.
Не могли бы вы подсказать насколько данный код не оптимален? И в чем? И как правильно организовать преобразование последоветельного потока данных в параллельный? Замените мультиплексор на регистр сдвига. Так вы по крайней мере избавитесь от огромного разветвления user_rd_data_rise, user_rd_data_fall. Имею в виду вот это: Код when("1001010") => user_rd_data_6_8_i <= user_rd_data_rise; user_rd_data_7_8_i <= user_rd_data_fall; mpx_cmp <= "1001011"; when("1001011") => user_rd_data_8_8_i <= user_rd_data_rise; user_rd_data_9_8_i <= user_rd_data_fall; P.S. Старайтесь везде указывать разрядность.. Полезная привычка.
|
|
|
|
|
Feb 2 2014, 15:15
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475

|
Цитата(Джеймс @ Jan 31 2014, 10:47)  Замените мультиплексор на регистр сдвига. Так вы по крайней мере избавитесь от огромного разветвления user_rd_data_rise, user_rd_data_fall. Имею в виду вот это: Код when("1001010") => user_rd_data_6_8_i <= user_rd_data_rise; user_rd_data_7_8_i <= user_rd_data_fall; mpx_cmp <= "1001011"; when("1001011") => user_rd_data_8_8_i <= user_rd_data_rise; user_rd_data_9_8_i <= user_rd_data_fall; P.S. Старайтесь везде указывать разрядность.. Полезная привычка. Разрядность шин 36 бит. Я заменил мультиплексор на сдвиговые регистры, но проблема с временными ошибками не решена. У меня такой глобальный вопрос. Есь 16 канальный DDC, его данные я записываю с помощью контроллера в память с частотой 200 Мгц. Частота дискретизации данных на выходе DDC 2МГц. Я записываю данные в SDRAm и считываю их. В этой части проблем с временными ошибками нет. После принятия порции отсчетов, считанных с памяти, я хочу их обработать в алгоритме подавления несинхронных помех на той же частоте 200 МГц. Но эта частота излишняя, хватает 32 МГц для обработки 1 подавителем отсчетов со всех 16 каналов. И на этой частоте в дизайне появляются временные ошибки. Как правильно принять эти даннные и обработать? То есть дело не в алгоритме, а в том как правильно обработать данные, принятые на частоте 200 МГц, например, на частоте 100 Мгц, как правильно сделать переход?
|
|
|
|
Сообщений в этой теме
bognev Ошибки при работе схемы на ПЛИС Jan 22 2014, 10:36 bogaev_roman Цитата(bognev @ Jan 22 2014, 14:36) Приве... Jan 22 2014, 10:57 bognev Цитата(bogaev_roman @ Jan 22 2014, 14:57)... Jan 22 2014, 12:05 bogaev_roman Я давно в ISE не работал, но все равно тут можно с... Jan 22 2014, 12:40 bognev RE: Ошибки при работе схемы на ПЛИС Jan 23 2014, 06:53 bognev А каким способом можно уменьшить эти нарушения? Ка... Jan 22 2014, 14:52 bogaev_roman Цитата(bognev @ Jan 22 2014, 18:52) А как... Jan 22 2014, 15:30  bognev Цитата(bogaev_roman @ Jan 22 2014, 19:30)... Jan 22 2014, 18:54   gibson1980 ЦитатаРешение проблемы нашел в последовательной об... Jan 23 2014, 07:40    bognev Цитата(gibson1980 @ Jan 23 2014, 11:40) М... Jan 23 2014, 07:49     gibson1980 Цитата(bognev)Можно по подробнее? Коре элементы ес... Jan 23 2014, 07:56      bognev Цитата(gibson1980 @ Jan 23 2014, 11:56) М... Jan 23 2014, 08:02       gibson1980 Наоборот поставить. Я так понимаю что должно умень... Jan 23 2014, 08:13        bognev Цитата(gibson1980 @ Jan 23 2014, 12:13) Н... Jan 23 2014, 08:24         gibson1980 В корках умножителей речь идет вроде о LUTах, посм... Jan 23 2014, 08:30          bognev Цитата(gibson1980 @ Jan 23 2014, 12:30) В... Jan 23 2014, 08:38 iosifk Цитата(bognev @ Jan 22 2014, 14:36) Возни... Jan 22 2014, 18:25 iosifk Цитата(bognev @ Jan 22 2014, 14:36) . Реш... Jan 23 2014, 08:41 bognev Цитата(iosifk @ Jan 23 2014, 12:41) На са... Jan 23 2014, 09:10 bogaev_roman По поводу поста 9 - большое кол-во логических уров... Jan 23 2014, 09:54 bognev Цитата(bogaev_roman @ Jan 23 2014, 13:54)... Jan 23 2014, 10:14  bogaev_roman Цитата(bognev @ Jan 23 2014, 14:14) В 9 п... Jan 23 2014, 10:50   bognev Цитата(bogaev_roman @ Jan 23 2014, 14:50)... Jan 23 2014, 11:16    Maverick проект синхронный? асинхронщины нет?
переходы из р... Jan 23 2014, 20:15     bognev Цитата(Maverick @ Jan 24 2014, 00:15) про... Jan 24 2014, 06:34      Maverick Цитата(bognev @ Jan 24 2014, 08:34) перех... Jan 24 2014, 07:08       bognev Цитата(Maverick @ Jan 24 2014, 11:08) рек... Jan 24 2014, 20:18        Bad0512 Цитата(bognev @ Jan 25 2014, 03:18) Спаси... Jan 25 2014, 06:45         bognev Цитата(Bad0512 @ Jan 25 2014, 10:45) Пров... Jan 25 2014, 07:22          Bad0512 Цитата(bognev @ Jan 25 2014, 14:22) RКаки... Jan 25 2014, 08:34           bognev Временные ошибки в памяти свелись к сигналу сброса... Jan 27 2014, 08:22    o_khavin Цитата(bognev @ Jan 23 2014, 15:16) 16 би... Jan 23 2014, 22:26 Timmy Я бы посоветовал для начала разместить user_rd_dat... Jan 31 2014, 05:54
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|