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

 
 
> DDS, dds с 40-разрядным сумматором
kkosik
сообщение Sep 28 2012, 07:03
Сообщение #1


Участник
*

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



Вообщем, в продолжение темы многоразрядного накопительного сумматора...

Удалось-таки его написать, но при моделировании с учетом задержек в кристалле (после place&route) оказалось, что при суммировании числа (1111... + A) происходит огроменная задержка (т.е. старшие разряды числа долго-долго перекидываются в 0000...).
Суммируем по фронту испульса, а значение из таблицы синусов в соответствии с 10 старшими разрядами суммы выдается по срезу. Т.о. задержка суммирования "залазит" на срез. Из-за этого на выход по таблице синусов отчего-то выдается значение, которого в этой таблице в принципе нет!!
Тактовая частота 40 МГц, плис Actel apa300.

Кто что может посоветовать? wacko.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Bad0512
сообщение Sep 28 2012, 11:06
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(kkosik @ Sep 28 2012, 14:03) *
Вообщем, в продолжение темы многоразрядного накопительного сумматора...

Удалось-таки его написать, но при моделировании с учетом задержек в кристалле (после place&route) оказалось, что при суммировании числа (1111... + A) происходит огроменная задержка (т.е. старшие разряды числа долго-долго перекидываются в 0000...).
Суммируем по фронту испульса, а значение из таблицы синусов в соответствии с 10 старшими разрядами суммы выдается по срезу. Т.о. задержка суммирования "залазит" на срез. Из-за этого на выход по таблице синусов отчего-то выдается значение, которого в этой таблице в принципе нет!!
Тактовая частота 40 МГц, плис Actel apa300.

Кто что может посоветовать? wacko.gif

На 40 МГц даже 40-разрядный сумматор будет работать без проблем. Сдаётся мне, что вы сумматор этот криво описываете. В общем, код - в студию!
Go to the top of the page
 
+Quote Post
yes
сообщение Sep 28 2012, 14:11
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(Bad0512 @ Sep 28 2012, 15:06) *
На 40 МГц даже 40-разрядный сумматор будет работать без проблем. Сдаётся мне, что вы сумматор этот криво описываете. В общем, код - в студию!


с проазиками дело имели? это не ксайлинсы sm.gif

автору:

если накопительный сумматор, то часто (зависит от приложения) его можно описать в виде нескольких коротких сумматоров с защелкиванием CARRY-ей между секциями

как-то так
always @(posedge clk)
begin
sum[39:20] <= sum[39:20] + adder[39:20] + co;
{co,sum[19:0]} <= {1'b0,sum[19:0]} + adder[19:0];
end

ну и так далее, при необходимости можно резать не на 2 а на 3,4,5 и т.д.

----------------

об этом, наверно, Serhiy_UA написал, я просто начал писать до его ответа sm.gif
нет, там наверно, чуть другое.

в моем примере, для разгрузки суматора (если нужны не отдельно старшие биты и каждый такт) нужно конвеер - задержка младший части на такт (регистр), ну и для многоступенчатого суматора - пирамида регистров. если в поток сумирования можно 0 вставлять, то конвеер на выходе не нужен, ну и т.д. - зависит от приложения
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Sep 28 2012, 16:04
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(yes @ Sep 28 2012, 21:11) *
с проазиками дело имели? это не ксайлинсы sm.gif


Не имел. Решил потренироваться. Вот код (всё сделано "втупую", без хитростей с переносами) :
Код
module adder
(
    input    logic    [31:0]        data,
    input    logic                reset,
    input    logic                clk,
    output    logic    [39:0]        sum,
    output    logic                cout
);


always_ff@(posedge clk)
if(reset)    begin
    sum <= '0;
    cout <= '0;
    end
else
    {cout,sum} <= sum + data;

endmodule


Собрал всё это в синплифае. Вот кусок репорта синплифая касательно быстродействия :

Performance Summary
*******************


Worst slack in design: -2.195

Requested Estimated Requested Estimated Clock Clock
Starting Clock Frequency Frequency Period Period Slack Type Group
------------------------------------------------------------------------------------------------------------------------
adder|clk 80.4 MHz 68.3 MHz 12.437 14.631 -2.195 inferred Autoconstr_clkgroup_0
================================================================================
========================================

Ну то есть по оценкам Синплифая этот сумматор будет работать на 68 МГц. Может конечно Синплифай малость и привирает в сторону оптимизма, но не думаю что очень сильно.
Вывод : на 40МГц даже Проасик сможет суммировать 40 битные числа. И никаких танцев с бубном.

Автору топика : уберите из вашего дизайна работу по двум фронтам.О безусловном вреде этого писали на этом форуме неоднократно.
Мой сорец написан на SV, но сути это не меняет, он делает то же что и ваш код, только сброс у меня синхронный(почему синхронный? - почитайте Кена Чапмена, у него есть хорошая статья на эту тему).



Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- kkosik   DDS   Sep 28 2012, 07:03
- - TRILLER   Я бы вам посоветовал сделать всю схему только по ф...   Sep 28 2012, 08:04
- - kkosik   Боюсь, что все организованные процессы по фронту м...   Sep 28 2012, 09:59
|- - Timmy   Цитата(kkosik @ Sep 28 2012, 13:59) Боюсь...   Sep 28 2012, 10:05
- - bogaev_roman   Цитата(kkosik @ Sep 28 2012, 11:03) Удало...   Sep 28 2012, 10:23
|- - Serhiy_UA   Есть такой прием с конвейеризацией. Вместо одного...   Sep 28 2012, 11:56
||- - Serhiy_UA   Цитата(Serhiy_UA @ Sep 28 2012, 14:56) Эт...   Oct 18 2012, 08:54
- - kkosik   ЦитатаНа 40 МГц даже 40-разрядный сумматор будет р...   Sep 28 2012, 14:14
|- - yes   Цитата(kkosik @ Sep 28 2012, 18:14) эммм,...   Sep 28 2012, 14:23
|- - bogaev_roman   Я так понимаю, что и Serhiy_UA и yes предложили Ва...   Sep 28 2012, 15:27
|- - des00   Цитата(bogaev_roman @ Sep 28 2012, 09:27)...   Sep 28 2012, 15:38
- - kkosik   Это сумматор №1. Собственно, "обычный" с...   Sep 28 2012, 15:03
- - bogaev_roman   to Bad0512 я так понял со слов ТС, что данные от р...   Sep 28 2012, 18:15
- - Bad0512   Цитата(bogaev_roman @ Sep 29 2012, 01:15)...   Sep 29 2012, 03:55
- - Timmy   Проблема вашего сумматора по первому варианту в то...   Sep 29 2012, 06:34


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 09:57
Рейтинг@Mail.ru


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