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

 
 
> Xilinx Spartan6 использование SRL16, Как правильно использовать режим Dual 16-bit Shift Register
des00
сообщение Aug 8 2014, 13:36
Сообщение #1


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

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



Добрый день!

Подскажите пожалуйста, как правильно написать код, что бы ISE 14.7 понял что я хочу поставить два SRL16E блока в одном люте, как это изображено на рисунке №19, под названием Dual 16-bit Shift Register Configuration в ug384.pdf Spartan-6 FPGA Configurable Logic Block?

сделал так
Код
  generate
    for (i = 0; i < pDAT_W/4; i = i + 1) begin
      srl16
      srl16_0
      (
        .clk    ( iclk                    ) ,
        //
        .clkena ( iclkena & iwrite        ) ,
        .idat   ( iwdat0       [i]        ) ,
        //
        .addr   ( idat         [4*i +: 4] ) ,
        //
        .odat   ( srl16__odat0 [i]        )
      );

      srl16
      srl16_1
      (
        .clk    ( iclk                    ) ,
        //
        .clkena ( iclkena & iwrite        ) ,
        .idat   ( iwdat1       [i]        ) ,
        //
        .addr   ( idat         [4*i +: 4] ) ,
        //
        .odat   ( srl16__odat1 [i]        )
      );

    end
  endgenerate

Все требования выполнил, данные пишутся одновременно в два SRL16, чтение зашарено. Но смотрю FPGA Editor, ISE пихает их в разные LUT sad.gif

ЗЫ. Сам SRL16 вставлял не как компонент, а кодом
Код
module srl16
(
  clk    ,
  clkena ,
  idat   ,
  addr   ,
  odat
);

  //------------------------------------------------------------------------------------------------------
  //
  //------------------------------------------------------------------------------------------------------

  input  wire         clk;
  input  wire         clkena;
  input  wire         idat  ;
  input  wire [3 : 0] addr  ;
  output wire         odat  ;

  //------------------------------------------------------------------------------------------------------
  //
  //------------------------------------------------------------------------------------------------------

  reg [15 : 0] ram;

  //------------------------------------------------------------------------------------------------------
  //
  //------------------------------------------------------------------------------------------------------

  // synthesis translate_off
  initial ram = 16'h0;
  // synthesis translate_on

  always @(posedge clk) begin
    if (clkena) begin
      ram <= {ram[14 : 0], idat};
    end
  end

  assign odat = ram[addr];

endmodule


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Timmy
сообщение Aug 8 2014, 21:27
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(des00 @ Aug 8 2014, 17:36) *
Добрый день!

Подскажите пожалуйста, как правильно написать код, что бы ISE 14.7 понял что я хочу поставить два SRL16E блока в одном люте, как это изображено на рисунке №19, под названием Dual 16-bit Shift Register Configuration в ug384.pdf Spartan-6 FPGA Configurable Logic Block?
Все требования выполнил, данные пишутся одновременно в два SRL16, чтение зашарено. Но смотрю FPGA Editor, ISE пихает их в разные LUT sad.gif

На самом деле вы не выполнили требования - необходимо, чтобы общая длина SRLC32 была строго 32 бита, а вот промежуточный отвод можно сделать динамически из любой точки. В вашем случае общая длина равна сумме длин двух одинаковых SRL16. Не исключено также, что XST может сделать inference srlc32 только для фиксированных сдвигов, а для динамического среднего отвода потребуется instantiation.
Ой, это я не тот рисунок посмотрелsm.gif. Ну тогда действительно только RLOC. Кроме того, ISE вообще любит разделять смежные LUTы, особенно когда много места, и не включена опция LUT packing.

Сообщение отредактировал Timmy - Aug 8 2014, 21:31
Go to the top of the page
 
+Quote Post



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

 


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


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