sazh 11 June 13, 2007 Posted June 13, 2007 · Report post Могу предложить нарисовать нужную Вам схему в графическом редакторе. Опираясь на нужные макросы. Соединить их между собой линиями. Сразу все станет понятно. Quote Share this post Link to post Share on other sites More sharing options...
zenia 0 June 13, 2007 Posted June 13, 2007 · Report post если вам не сложно, то нарисуйте Quote Share this post Link to post Share on other sites More sharing options...
Renom 0 June 14, 2007 Posted June 14, 2007 · Report post в процессах по data_in в сенсорике стоит вся шина, хотя реально для этих процессов требуется только часть шины, поэтому у вас получится логическая избыточность и как следствие большие затраты ресурсов кристала и более высокое потребление. Quote Share this post Link to post Share on other sites More sharing options...
EShamaev 0 June 14, 2007 Posted June 14, 2007 · Report post в процессах по data_in в сенсорике стоит вся шина, хотя реально для этих процессов требуется только часть шины, поэтому у вас получится логическая избыточность и как следствие большие затраты ресурсов кристала и более высокое потребление. Какие ресурсы кристалла? Какое потребление? Этот код даже если и будет нормально синтезироваться, в чем я очень сомневаюсь, работать не будет никогда. Плевал синтезатор на ваше описание сенсорики в процессах. При синтезе это просто игнорируется! Там надо добавлять клоки, пернаправление между процессами, управление памятью, трудно даже все перечислить. Quote Share this post Link to post Share on other sites More sharing options...
Renom 0 June 14, 2007 Posted June 14, 2007 · Report post Про синтезабельность и работоспособность кода я не говорю, т.к. если чесно было лень весь изучать. А некоторые моменты на которых в свое время сам обжигался сразу бросились в глаза. К слову, в мультиплексорах при разрядности управляющего слова 9-10 лишний сигнал в сенсорике приводит к дополнительным 20-30 термам(по крайней мере в ISE синтезаторе, в Leonardo и т.д. не могу сказать, т.к. не приходилось сталкиваться), что при жестко заданном кристале бывает смертельно. Quote Share this post Link to post Share on other sites More sharing options...
EShamaev 0 June 14, 2007 Posted June 14, 2007 · Report post Про синтезабельность и работоспособность кода я не говорю, т.к. если чесно было лень весь изучать. А некоторые моменты на которых в свое время сам обжигался сразу бросились в глаза. К слову, в мультиплексорах при разрядности управляющего слова 9-10 лишний сигнал в сенсорике приводит к дополнительным 20-30 термам(по крайней мере в ISE синтезаторе, в Leonardo и т.д. не могу сказать, т.к. не приходилось сталкиваться), что при жестко заданном кристале бывает смертельно. Подобного рода мультиплексоры стоит делать либо в комбинаторной логике, либо тактируемые в процессе. Quote Share this post Link to post Share on other sites More sharing options...
zenia 0 June 15, 2007 Posted June 15, 2007 · Report post по словам сенсорики вы понимаете сигнал стоящий после слова process(сигнал ) тогда все процессы надо именить и в списке чувствительности написать clk process(clk ) -- а раньше была data_in begin if i = 2**ADDR_WIDTH-1 then i <= 0; else i <= i + 1; end if; ram1(i) <= run; end process; Quote Share this post Link to post Share on other sites More sharing options...
EShamaev 0 June 15, 2007 Posted June 15, 2007 · Report post по словам сенсорики вы понимаете сигнал стоящий после слова process(сигнал ) тогда все процессы надо именить и в списке чувствительности написать clk process(clk ) -- а раньше была data_in begin if i = 2**ADDR_WIDTH-1 then i <= 0; else i <= i + 1; end if; ram1(i) <= run; end process; :) Вообщет этим дело не ограничивается... Надо еще все что у вас в процессе вставить в if по фронту или спаду вашего clk. Quote Share this post Link to post Share on other sites More sharing options...
zenia 0 June 15, 2007 Posted June 15, 2007 · Report post :) Вообщет этим дело не ограничивается... Надо еще все что у вас в процессе вставить в if по фронту или спаду вашего clk. вы имеете в виду, что в каждый if надо дополнительно вставить clk'event and clk = '0' если по спаду, тк у меня все сигнал устанавливаються по спаду clk Quote Share this post Link to post Share on other sites More sharing options...
EShamaev 0 June 15, 2007 Posted June 15, 2007 · Report post вы имеете в виду, что в каждый if надо дополнительно вставить clk'event and clk = '0' если по спаду, тк у меня все сигнал устанавливаються по спаду clk Не в каждый if надо вставить, а все что в процессе надо вставить в еще один if, такой как описан. Quote Share this post Link to post Share on other sites More sharing options...
zenia 0 June 15, 2007 Posted June 15, 2007 · Report post Не в каждый if надо вставить, а все что в процессе надо вставить в еще один if, такой как описан. имеете в виду дополнительно поставить if вот так : process(clk ) begin if clk'event and clk = '0' then if i = 2**ADDR_WIDTH-1 then i <= 0; else i <= i + 1; end if; end if; ram1(i) <= run; end process; Quote Share this post Link to post Share on other sites More sharing options...
EShamaev 0 June 15, 2007 Posted June 15, 2007 · Report post Другое дело. Дошли до истины... :crying: Quote Share this post Link to post Share on other sites More sharing options...