Como faço para síntese RTL para uma célula ICG desejado

W

wy21century

Guest
Eu escrevi um módulo Verilog em RTL e usá-lo para abstrair alto nível de propagação função relógio. Eu quero substituí-lo a uma célula ICG em síntese, a fim de facilitar o fluxo de DFT e PR. Mas quando eu tentei com Magma, a ferramenta de reclamar "nenhum nó atraso encontrado, não vai fazer qualquer clockgating '. Qualquer coisa que eu perca ou qualquer erro existe no código abaixo? módulo ClkGate (CLK, RESETn, ClkEnable, scanmode, GatedClk); entrada CLK; entrada RESETn / / Synopsys async_set_reset entrada RESETn ClkEnable; scanmode entrada; GatedClk saída; fio ClkEn; reg ClkEnT2; assign ClkEn = ClkEnable | scanmode; always @ ( CLK ou RESETn ou ClkEn) começam if (RESETn == 1'b0) começam ClkEnT2 = 1'b1; end else if (CLK == 1'b0) começam ClkEnT2 = ClkEn; endmodule; end end assign GatedClk = CLK & ClkEnT2
 
Oi, você pode hard-instantiate célula do ICG no desing. antes de sintetizar, modificar o código RTL imediata. 'Define useICGcell módulo ClkGate (); if (useICGcell) endmodule mais Como você instanciar outro módulo no projeto, na mesma célula ICG wat instantiate. Você vai ficar ICG informações de célula a partir do arquivo. Lib. Você pode escolher ICG celular também. Ela vai trabalhar. Eu tentei dessa maneira. Ela trabalhou para mim. diz respeito, Subhash
 
Olá, Você pode hard-instanciar a célula ICG no desing. antes de sintetizar, modificar o código RTL imediata. 'Define useICGcell módulo ClkGate (); if (useICGcell) endmodule mais Como você instanciar outro módulo no projeto, na mesma célula ICG wat instantiate. Você vai ficar ICG informações de célula a partir do arquivo. Lib. Você pode escolher ICG celular também. Ela vai trabalhar. Eu tentei dessa maneira. Ela trabalhou para mim. diz respeito, Subhash
Eu não iria preferir este método, pois eu quero que este arquivo está livre de qualquer processo, para que ele possa ser reutilizado para outros projetos w / o de modificação qualquer.
 
Você pode tentar com o seguinte código? módulo ICGcell (entrada CLK, entrada en, saída gclk) reg l_out; always @ (*) begin if (~ clk) l_out = en; final atribuir gclk = l_out & clk; endmodule Deixe-me saber se funciona. (Ele vai inferir Trava + E)
 

Welcome to EDABoard.com

Sponsor

Back
Top