Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как использовать выходные DDR регистры в quartus
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
barabek
Есть ли какой-нибудь вариант использовать два выходных регистра CycloneIII в режиме DDR, кроме использования мегафункции? В смысле описать так чтобы квартус "заинферил" свою altddio_out. 

попробовал так:

Код
    
    always_comb REpin_enable_toggle=(state[ERASE_ST_ANS_b] ||
                         ((state[READ_DATA_b] || state[READ_PARITY_DATA_b]) && RSdec_sink_ena) ||
                         state[WRITE_ST_ANS_b]
                          );
    always_ff@(posedge WE_RE_clk or negedge reset)begin:assign_NAND_flash_RE_low_ddr_part_of_IOregs
         if(!reset)NANDpin_RE_l_reg<=1'b1;
         else
                  if(REpin_enable_toggle)NANDpin_RE_l_reg<=1'b0;
                  else NANDpin_RE_l_reg<=1'b1;
    end
    // *************************
    always_ff@(posedge WE_RE_clk or negedge reset)begin:assign_NAND_flash_RE_high_ddr_part_of_IOregs
         if(!reset)NANDpin_RE_h_reg<=1'b1;
         else NANDpin_RE_h_reg<=1'b1;
    end
    // *************************
    always_comb NANDpin_RE_n=WE_RE_clk?NANDpin_RE_h_reg:NANDpin_RE_l_reg;


объявлял все регистры так : logic NANDpin_WE_l_reg/* synthesis useioff = 1 */ .

Провобал задавать в assignment editor на эти регистры fast output register. Ничего не помогает. Можно конечно не париться, использовать megawithard , создать altddio_out. 
vadimuzzz

так что вариантов немного. я так делаю:
Код
altddio_out     altddio_out_component (
                    .outclock ( tx_clk ),
                    .dataout ( enet_gtx_clk ),
                    .aclr (!reset_n),
                    .datain_h (1'b1),
                    .datain_l (1'b0),
                    .outclocken (1'b1),
                    .aset (1'b0),
                    .sclr (1'b0),
                    .sset (1'b0),
                    .oe_out (),
                    .oe (1'b1)
                    );
        defparam
                altddio_out_component.extend_oe_disable = "UNUSED",
                altddio_out_component.intended_device_family = "Cyclone III",
                altddio_out_component.invert_output = "OFF",
                altddio_out_component.lpm_type = "altddio_out",
                altddio_out_component.oe_reg = "UNUSED",
                altddio_out_component.width = 1;
barabek
Цитата(vadimuzzz @ Sep 15 2010, 10:36) *
так что вариантов немного. я так делаю:

Понятно. 
Это тоже самое, что выдает megawizard в конечном счете. 
Спасибо за ответ, развеяли мои сомнения.
CaPpuCcino
Цитата(barabek @ Sep 15 2010, 03:46) *
Это тоже самое, что выдает megawizard в конечном счете. 

да я вот тоже думаю, что проинферить с чисто языкового описания квартус не сможет, и выход - делать только на арх.примитивах. при этом это не из-за того, что это в принципе сделать такое сложно, а из-за того что задачу подобного синтеза никто из синтезёров никогда не ставил (ведь никто никогда не пытался инферить из описания PLL или DCM, хотя и это возможно, все сосредоточены на маппинге на хард ядра типа памяти и dsp-блоков).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.