skilful 0 9 марта, 2010 Опубликовано 9 марта, 2010 · Жалоба не сильно врубился в метод SM, вот Sergey'F хорошую штуку подсказал - попробую ее вечером. Думаю вытянет нужную частоту схема :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 9 марта, 2010 Опубликовано 9 марта, 2010 · Жалоба не сильно врубился в метод SM А что там врубаться? Гляньте на свою картинку в первом посте - там стоит один регитср. А вы поставьте два, или три, один за другим последовательно. И включите register retiming и pipelinig в настройках фиттера в квартусе. Он автоматически конвейеризирует схему, синтезированную по Вашему описанию, "протащив" эти регистры внутрь сумматора. У синплифая, кстати, тоже эти галки аж чуть ли не жирным шрифтом в главном окне проета торчат. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 9 марта, 2010 Опубликовано 9 марта, 2010 · Жалоба Складывать входные данные попарно, а потом с аккумулятором - тактовую можно поднять вдвое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyF 0 9 марта, 2010 Опубликовано 9 марта, 2010 · Жалоба конвейеризации переноса я не увидел. resloq[16] - это регистр, конвейеризующий перенос. Все остальное обвеска для выравнивания фронтов по сути. Вообще, так можно все подробить на куски и по 8 бит и меньше, но... ПЛИС Cyclone EP1C3. Ориентировочно, нужно 200 МГц. А 32-битный сумматор, работающий за такт, все портит - Precision Syntesys и Квартус тоже это сказали :) Вы шутите? В первом Циклоне просто чумовые сумматоры с выбором переноса. Как там 200МГц на 32 битах не получилось? Покажите, как Вы описали эту схему. Попробуйте вместо Precision встроенный синтезатор. Я сейчас посмотрел - даже для самой медленной, 8 градации дает 32 бита 275 МГц. И это ограничение устройства по частоте, а не критического пути сумматора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 3 9 марта, 2010 Опубликовано 9 марта, 2010 · Жалоба resloq[16] - это регистр, конвейеризующий перенос. Все остальное обвеска для выравнивания фронтов по сути. Вообще, так можно все подробить на куски и по 8 бит и меньше, но... Я этот модуль не рассматривал. Имел ввиду Ваш рисунок от руки. Но не важно. Все возможные варианты здесь уже рассмотрены. P.S. Приношу извинения. Ваша реализация cnt и есть как у xilinx. А retiming наверно не получиться, так как обнуление регистров необходимо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyF 0 9 марта, 2010 Опубликовано 9 марта, 2010 · Жалоба И включите register retiming и pipelinig в настройках фиттера в квартусе. Он автоматически конвейеризирует схему, синтезированную по Вашему описанию, "протащив" эти регистры внутрь сумматора. Точно получится? У меня вот что-то QII 9.1 не протащил... :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 9 марта, 2010 Опубликовано 9 марта, 2010 · Жалоба Точно получится? У меня вот что-то QII 9.1 не протащил... :laughing: Так значит констрейны такие, что без протаскивания все укладывается, или таймквест не включен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyF 0 9 марта, 2010 Опубликовано 9 марта, 2010 · Жалоба Так значит констрейны такие, что без протаскивания все укладывается, или таймквест не включен. Констрейны не выполнились, пробовал и с Таймквестом, и с классиком. test.sdc: create_clock -period 2.857 -name {clk} [get_ports {clk}] cnt.v: module cnt ( input clk, input rst, input [31:0] dataa, output reg [31:0] result ); reg [31:0] pres; always @ (negedge rst or posedge clk) begin if (!rst) begin result <= 0; pres <= 0; end else begin pres <= dataa + pres; result <= pres; end end endmodule Иногда проще написать, когда знаешь, чего хочешь, чем бороться с констрейнами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 9 марта, 2010 Опубликовано 9 марта, 2010 · Жалоба тут такое дело - чтобы было чего пропихивать, надо не pres <= dataa + pres, а pres <= dataa + result. Ну и соотв. входные данные подавать с учетом этого Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyF 0 9 марта, 2010 Опубликовано 9 марта, 2010 · Жалоба тут такое дело - чтобы было чего пропихивать, надо не pres <= dataa + pres, а pres <= dataa + result. Ну и соотв. входные данные подавать с учетом этого Не понял. Это же совсем другая логика. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 9 марта, 2010 Опубликовано 9 марта, 2010 · Жалоба Не понял. Это же совсем другая логика. ну и что? Вопрос был скорости сумматора-накопителя, а не логики. Логика это вопрос внешней обвязки. Человек же сказал, что ему все равно, хоть 10 тактов пусть все считается. ЗЫ. А может ему просто мультицикл сделать через этот сумматор? И более ничего... Т.е. забирать результат через два такта после подачи, и в констрейнах это объявить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 9 марта, 2010 Опубликовано 9 марта, 2010 · Жалоба Я бы не стал так "бесстрашно" вводить конвейер в схему с обратными связями. Автор темы желает в каждом такте 200 MHz сложить входной сигнал с уже накопленным. Если разбить это на несколько тактов, на выходе будет нечто совсем другое. Еще вопросик - как насчет переполнения счетчика - игнорируем (отбрасываем)? И кому нужен такой результат? Скорее всего, нужно пересмотреть само задание - уменьшить частоту, обнулять периодически, и т.д. И еще - я не нашел в Quartus 9.0 установок register retiming и pipelinig вообще. Подскажите конкретно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skilful 0 9 марта, 2010 Опубликовано 9 марта, 2010 · Жалоба Ребят, офтоп. Я хочу использовать макетку (http://www.ldm-systems.ru/doc/plis/ds-ep1c3t100-1.1_r.pdf ) с припаянной EP1C3. У нее отсутсвует тактовый генератор. Если я заведу clk от мезонинной платы и частота порядка 200 МГц, будет работать нормально? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 10 марта, 2010 Опубликовано 10 марта, 2010 · Жалоба Если я заведу clk от мезонинной платы и частота порядка 200 МГц, будет работать нормально? Если сигнал доберется, то будет. Было бы там чему работать внутри. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skilful 0 10 марта, 2010 Опубликовано 10 марта, 2010 · Жалоба Если сигнал доберется, то будет. Было бы там чему работать внутри. какой-то несерьезный ответ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться