Перейти к содержанию
    

andrei-sedov

Новичок
  • Постов

    3
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные andrei-sedov


  1. 3 часа назад, Shamil сказал:

    Память у Actel не сохраняет свое содержимое после выключения питания. Поэтому кто то ее все равно должен будет проинициализировать. Все равно придется табличку держать либо в ПЛИС, реализованную на логике, либо снаружи в чем то.

    Это понятно, что ОЗУ теряет свое содержимое после выключения питания, но например ПЛИС Altera позволяет строить из своих блоков RAM память типа ROM. В этом случае блоки RAM инициализируются на этапе конфигурации ПЛИС и в дальнейшем данные неизменно хранятся и доступны для чтения. Синтезатор распознает приведенное выше описание модуля констант как память типа ROM и размещает данные в блоках RAM. 

    Хотелось бы знать имеется ли подобная технология в ПЛИС семействе ProASIC3E?

    P.S. Как я уже писал, в синтезаторе Synplify Pro имеется директива определяющая тип построения памяти: syn_romstyle = "URAM|lsram|..." 

     

    Неужели никто не работал с массивами констант, перекодирующими таблицами и т.д.?

  2. 3 минуты назад, Yuri124 сказал:

    Уверены, что это физически можно реализовать с той встроенной памятью, которая есть в этих чипах?  - т.е. что при подаче адреса за один  такт получится прочитать содержимое данной ячейки памяти.

    Не уверен, но это стандартное описание ROM-памяти, можно сделать регистровый выход или выход. Вопрос в том можно ли вообще реализовать память типа ROM на встроенных блоках памяти?

  3. Здравствуйте.
    С недавнего времени осваиваю разработку проектов под ПЛИС для семейства ProASIC3E (ранее имел дело только с Altera и Xilinx) и столкнулся с проблемой нехватки информации и технической поддержке. В моем проекте имеется два процессорных ядра каждое из которых имеет память ROM 4096x32 инструкций. В результате разводки выдается ошибка:
     
    Error: [fail_to_route]:
        Router fails. Shorts = 6407. Open nets = 0.

     
    Я подозреваю, что не хватает каких то ресурсов. Где посмотреть что это значит? Синтез проекта проходит нормально:

    Core Cells         : 46826 of 75264 (62%)
    IO Cells           : 46
      RAM/ROM Usage Summary
    Block Rams : 79 of 112 (70%)
     
    Скажите пожалуйста можно ли в семействе ProASIC3E реализовать память типа ROM на встроенный блоках памяти (RAM) по аналогии как в ПЛИС Altera?
     
    Директива синтезатора Synplify Pro: synthesis syn_romstyle = "lsram"  — не дает результата (память реализуется на логический элементах). Пример:
     
    module rom1(clk, addr, q)/* synthesis syn_romstyle = "lsram" */;
    input    clk;
    input    [11:0] addr;
    output [31:0] q;
    reg [31:0] m;
    reg [31:0] q;
    always @(posedge clk)
    begin
     q[31:0] <= m[31:0];
    end
    always @(*)
    begin
     case (addr[11:0])
      12'h000 : m[31:0] = 32'hA0FC0000;
      12'h001 : m[31:0] = 32'hA0FE0000;
      12'h002 : m[31:0] = 32'hA0FD0000;
      12'h003 : m[31:0] = 32'h04FF0000;
      12'h004 : m[31:0] = 32'h00000100;
      12'h005 : m[31:0] = 32'h6BFCFCFC;
    ...
     
    Синтезатор понимает, что это ROM:

    @N: MO106 :"f:\project\microsemi\core\hdl\rom1.v":19:1:19:4|Found ROM .delname. (in view: work.rom1(verilog)) with 4096 words by 32 bits.

     
    Заранее благодарен за любую оказанную помощь в моей проблеме.
×
×
  • Создать...