BarsMonster 0 13 сентября, 2011 Опубликовано 13 сентября, 2011 · Жалоба Сабж. Как сумматор с ускоренным переносом работает - в принципе понятно. Но как умножение за 1 такт делают (32*32->32/64) - вот это не понятно. Кто подскажет? Или покажите книжку по этой теме. Также, для ASIC как генерируются такие схемы? Есть какие-то генераторы? Или руками, на Verilog/VHDL? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 16 13 сентября, 2011 Опубликовано 13 сентября, 2011 · Жалоба Сабж. Как сумматор с ускоренным переносом работает - в принципе понятно. Но как умножение за 1 такт делают (32*32->32/64) - вот это не понятно. Ровно точно так же. Умножитель - это каскадный сумматор. То есть комбинационное устройство. Ему такты не нужны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BarsMonster 0 13 сентября, 2011 Опубликовано 13 сентября, 2011 · Жалоба Ровно точно так же. Умножитель - это каскадный сумматор. То есть комбинационное устройство. Ему такты не нужны. То что такты не нужны это понятно. Не понятно как куча последовательных сложений успевает пролететь так быстро. Понятно что можно тут соптимизировать и складывать не "в столбик, последовательно", а парралельно по парам - но все равно, log2(32) = 5 сложений должно пролететь последовательно в любом случае... Ничего другого тут нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vitus_strom 0 14 сентября, 2011 Опубликовано 14 сентября, 2011 · Жалоба ключевые слова Booth algorithm + Wallace tree (или более регулярное дерево) + final addition Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nikolascha 0 14 сентября, 2011 Опубликовано 14 сентября, 2011 · Жалоба Также, для ASIC как генерируются такие схемы? Есть какие-то генераторы? Или руками, на Verilog/VHDL?Если вы имели в виду генерацию топологии, то у ментора для этого вроде Datapath служит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BarsMonster 0 14 сентября, 2011 Опубликовано 14 сентября, 2011 · Жалоба Если вы имели в виду генерацию топологии, то у ментора для этого вроде Datapath служит. Я в том смысле, что если например разрабатываем DSP: Мы просто пишем A=B*C+D и за нас все синтезируют (непонятно только как с выбором скорость<>размер), или нужно руками писать правильную реализацию умножения? Т.е. синтезируемая ли это конструкция и если да, то насколько она по дефолту эффективно реализуется? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
YuryL 0 15 сентября, 2011 Опубликовано 15 сентября, 2011 · Жалоба Обычно выбираем стратегию синтеза, метод оптимизации - по площади, по времени ... Задаем временные ограничения. В соответствии с этими исходными данными синтезатор выбирает подходящую архитектура модуля. Например, у синопсиса доступно 5 видов архитектуры умножителей. Multiplier Synthesis Implementationsa: csa Carry-save array synthesis model nbw Either a non-Booth (A_width+B_width ≤ 41) or a Booth Wallace-tree (A_width+B_width > 41) synthesis modelb wall Booth-recoded Wallace-tree synthesis model mcarch MC-inside-DW Wallace-tree DesignWare csmult MC-inside-DW flexible Booth Wallace DesignWare During synthesis, Design Compiler will select the appropriate architecture for your constraints. However, you may force Design Compiler to use one of the architectures described in this table. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BarsMonster 0 15 сентября, 2011 Опубликовано 15 сентября, 2011 · Жалоба Обычно выбираем стратегию синтеза, метод оптимизации - по площади, по времени ... Задаем временные ограничения. В соответствии с этими исходными данными синтезатор выбирает подходящую архитектура модуля. Например, у синопсиса доступно 5 видов архитектуры умножителей. Multiplier Synthesis Implementationsa: csa Carry-save array synthesis model nbw Either a non-Booth (A_width+B_width ≤ 41) or a Booth Wallace-tree (A_width+B_width > 41) synthesis modelb wall Booth-recoded Wallace-tree synthesis model mcarch MC-inside-DW Wallace-tree DesignWare csmult MC-inside-DW flexible Booth Wallace DesignWare During synthesis, Design Compiler will select the appropriate architecture for your constraints. However, you may force Design Compiler to use one of the architectures described in this table. Вот это няшка, не зря свой хлеб едят :-) Буду изучать. А кто может подсказать как выглядят современные синтезаторы по сравнению друг с другом по их возможностям синтеза арифметики? Т.е. у всех такие возможности, или синопсис просто круче всех? ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 20 сентября, 2011 Опубликовано 20 сентября, 2011 · Жалоба Я в том смысле, что если например разрабатываем DSP: Мы просто пишем A=B*C+D и за нас все синтезируют (непонятно только как с выбором скорость<>размер), или нужно руками писать правильную реализацию умножения? Т.е. синтезируемая ли это конструкция и если да, то насколько она по дефолту эффективно реализуется? ну собс-но говоря A=B*C+... в конце концов сводится к цепочке суматоров разрядности A иначе, насколько я понимаю нельзя а по поводу понимания как утрамбовать внутреннюю логику через CSA, Booth, Wallace и прочее - есть такая старая книжка ASIC the book, и большая часть ее в виде ASIC the website там все это в картинках для CS стюдентов разрисовано (по моему глава так и называется datapath logic) так как структуры там регулярные - то автоматизировать это не так уж и сложно - какие-нибудь симплифаи с пресижинами, да и даже квартусы с айсами вполне справляются --------------------- интереснее, имхо, делитель реализовывать - чтоб он не 1 бит за такт давал, а битов 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться