Jump to content

    

andrei-sedov

Новичок
  • Content Count

    3
  • Joined

  • Last visited

Community Reputation

0 Обычный

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Это понятно, что ОЗУ теряет свое содержимое после выключения питания, но например ПЛИС Altera позволяет строить из своих блоков RAM память типа ROM. В этом случае блоки RAM инициализируются на этапе конфигурации ПЛИС и в дальнейшем данные неизменно хранятся и доступны для чтения. Синтезатор распознает приведенное выше описание модуля констант как память типа ROM и размещает данные в блоках RAM. Хотелось бы знать имеется ли подобная технология в ПЛИС семействе ProASIC3E? P.S. Как я уже писал, в синтезаторе Synplify Pro имеется директива определяющая тип построения памяти: syn_romstyle = "URAM|lsram|..." Неужели никто не работал с массивами констант, перекодирующими таблицами и т.д.?
  2. Не уверен, но это стандартное описание 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. Заранее благодарен за любую оказанную помощь в моей проблеме.