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

 
 
> помогите со схемой, прыгает частота
essev
сообщение Nov 11 2010, 20:54
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 16-05-07
Пользователь №: 27 757



Всем привет.

Нарисовал схему для альтера epm1270.
Развожу в квартусе....

у меня 8-битная входная шина данных (data_in). с этой 8-битной шины данные идут на 24-битный сумматор, работающий за 1 такт.
сумматор суммируется сам с собой (аля sum = sum + data_in).

логикой работы сумматора управляет "синхронная логика" - т.е. глубоких комбинационных схем нет

частота нужна 150 МГц.



Если ставлю регистр по входу (data_in), то частота начинает занижаться на 20 МГц - квартус дает 130 МГц, убираю 150 МГц.



При занижении ругается на критичный путь от входного регистра до выхода сумматора...


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




Подскажите, в чем беда? может буз входного регистра можно обойтись?


спасибо

Сообщение отредактировал essev - Nov 11 2010, 21:38
Go to the top of the page
 
+Quote Post
4 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 14)
Sergey'F
сообщение Nov 11 2010, 21:41
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 17-09-05
Из: Москва
Пользователь №: 8 660



И какие у Вас tsu/th без этого регистра на входе получаются? smile.gif

Почитайте вот здесь: http://electronix.ru/forum/index.php?showt...=73715&st=0.
Go to the top of the page
 
+Quote Post
essev
сообщение Nov 11 2010, 21:58
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 16-05-07
Пользователь №: 27 757



tsu = 7.764 ns
tco = 9.01 ns
th = -1.269 ns
Go to the top of the page
 
+Quote Post
des00
сообщение Nov 12 2010, 04:15
Сообщение #4


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(essev @ Nov 11 2010, 14:54) *
Подскажите, в чем беда? может буз входного регистра можно обойтись?

что не понятного то ? нет регистра и входных констрейнов путь от data_in не анализируется. Есть регистр, есть анализ.

24 бита сумматор за такт на 150МГц на втором максе (телепатирую, еще и на самом медленном) это фантастика %)


--------------------
Go to the top of the page
 
+Quote Post
essev
сообщение Nov 12 2010, 06:53
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 16-05-07
Пользователь №: 27 757



уменьшил разрядность сумматора до 16-ти частота со 130 до 140 поднялась.

не понимаю почему если я делаю сумматор 2-тактным (мегафунция LPM_add_sub_unsigned), то частота становится 143 МГц.

Сообщение отредактировал essev - Nov 12 2010, 06:55
Go to the top of the page
 
+Quote Post
des00
сообщение Nov 12 2010, 07:00
Сообщение #6


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(essev @ Nov 12 2010, 00:53) *
не понимаю почему если я делаю сумматор 2-тактным (мегафунция LPM_add_sub_unsigned), то частота становится 143 МГц.

телепаты все еще в отпуске, проект в студию.


--------------------
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Nov 12 2010, 07:05
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Код
module sum(
   input         clk,
   input         rstn,
   input  [ 7:0] din,
   input         dvin,
   output [23:0] dout
);

reg [ 8:0] lsb;
reg [15:0] msb;
reg [ 7:0] lsb_d;

always @(posedge clk or negedge rstn)
   if(!rstn)
      begin
         lsb<=0;
         lsb_d<=0;
         msb<=0;
      end
   else
      begin
         if(dvin)
            lsb<={1'b0,lsb[7:0]}+{1'b0,din};
         if(lsb[8])
            msb<=msb+1;
         lsb_d<=lsb[7:0];
      end

assign dout={msb,lsb_d};

endmodule


Это для беззнакового сложения. Если надо со знаком - додумайте.
Go to the top of the page
 
+Quote Post
sazh
сообщение Nov 12 2010, 07:13
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(essev @ Nov 12 2010, 09:53) *
не понимаю почему если я делаю сумматор 2-тактным (мегафунция LPM_add_sub_unsigned), то частота становится 143 МГц.


Конвейер подключили. Вам ведь дали ссылку на пост, в котором рассмотрено все это.
За счет ресурсов можно сделать что угодно. (разбить по разрядности, или четные, нечетные отсчеты, в конвейере).
Go to the top of the page
 
+Quote Post
essev
сообщение Nov 12 2010, 07:58
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 16-05-07
Пользователь №: 27 757



так, что мегафункция может медленно работать? нужно свое писать?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Nov 12 2010, 08:18
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Уважаемый, я двумя постами выше вам уже все написал.
Go to the top of the page
 
+Quote Post
essev
сообщение Nov 12 2010, 10:09
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 16-05-07
Пользователь №: 27 757



сделал по коду Sergey'F. Квартус 6.0 результат практически не изменился.

DmitryR, у Вас вроде сходный результат синтез даст?

а будет ли работать схема если она не дотягивает по частоте 10 МГц ?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Nov 12 2010, 11:06
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(essev @ Nov 12 2010, 13:09) *
DmitryR, у Вас вроде сходный результат синтез даст?

Об этом легко узнать, проведя этот синтез. Мало того, что я в хорошем расположении духа написал вам идею кода, так вы хотите чтобы я его еще сам отсинтезил и добился времянки. Я конечно это могу, но это в раздел "предлагаю работу" тогда уже.

Цитата(essev @ Nov 12 2010, 13:09) *
а будет ли работать схема если она не дотягивает по частоте 10 МГц ?

Может быть по-всякому.
Go to the top of the page
 
+Quote Post
sazh
сообщение Nov 12 2010, 11:26
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(essev @ Nov 12 2010, 13:09) *
DmitryR, у Вас вроде сходный результат синтез даст?

а будет ли работать схема если она не дотягивает по частоте 10 МГц ?


Вы din через регистр пропустите.
Go to the top of the page
 
+Quote Post
essev
сообщение Nov 12 2010, 11:37
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 16-05-07
Пользователь №: 27 757



DmitryR, вы уж не обессудьте меня - долбаюсь с этой частотой уже 2 дня - и все никак.

Go to the top of the page
 
+Quote Post
sazh
сообщение Nov 12 2010, 12:05
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(essev @ Nov 12 2010, 14:37) *
с этой частотой


Можно поиграть разрядностями сумматора и счетчика
Код
module pipelined_accumulator //XAPP 039.001
(
input          clk,
input          rst,
input   [7:0] data,
output [23:0] result
);

reg  [7:0] sync_reg = 8'd0;
reg [11:0] accum_l = 12'd0;
reg           reg_crry = 1'b0;
reg [11:0] accum_h = 12'd0;
reg [11:0] regl_out = 12'd0;

wire [12:0] alu_l = {1'b0, accum_l} + {{5'd0, sync_reg}};

always @ (posedge clk or posedge rst)
begin
if (rst)
    begin
    sync_reg <= 8'd0;
    accum_l <= 12'd0;
    reg_crry <= 1'b0;
    accum_h <= 12'd0;
    regl_out <= 12'd0;
    end
else
    begin
    sync_reg <= data;
    accum_l <= alu_l[11:0];
    reg_crry <= alu_l[12];
    if(reg_crry)    accum_h <= accum_h + 1'b1;
    regl_out <= accum_l;
    end
end

assign result = {accum_h, regl_out};


endmodule

Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:47
Рейтинг@Mail.ru


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