The invention provides parametric modules called Self Implementing Modules
(SIMs) for use in programmable logic devices such as FPGAS. The invention
further provides tools and methods for generating and using SIMs. SIMs
implement themselves at the time the design is elaborated, targeting a
specified FPGA according to specified parameters. In one embodiment, a SIM
references or includes one or more floorplanners each of which may employ
one or more placement algorithms. Such placement algorithms might include,
for example: a linear ordering algorithm that places datapath logic
bitwise in a regular linear pattern; a rectangular mesh algorithm that
implements memory in a grid pattern in distributed RAM; a columnar
algorithm for counters and other arithmetic logic; or a simulated
annealing algorithm for random logic such as control logic. Therefore, a
design including more than one SIM can utilize a plurality of placement
algorithms at the same or different levels of hierarchy. The design as a
whole can therefore utilize a non-uniform global placement strategy.
A invenção fornece os módulos paramétricos chamados os módulos de Self Implementing (SIMs) para o uso em dispositivos de lógica programáveis tais como FPGAS. A invenção mais adicional fornece ferramentas e métodos para gerar e usar SIMs. Instrumento ele mesmo de SIMs então o projeto é elaborado, alvejando um FPGA especificado de acordo com parâmetros especificados. Em uma incorporação, um SIM references ou inclui um ou mais floorplanners cada um de que pode empregar um ou mais algoritmo da colocação. Tais algoritmos da colocação puderam incluir, para o exemplo: um algoritmo requisitando linear essa lógica do datapath dos lugares bitwise em um teste padrão linear regular; um algoritmo retangular do engranzamento essa memória dos instrumentos em um teste padrão de grade na RAM distribuída; um algoritmo columnar para contadores e a outra lógica aritmética; ou um algoritmo recozendo simulado para a lógica aleatória tal como a lógica de controle. Conseqüentemente, um projeto including mais de um SIM pode utilizar um plurality de algoritmos da colocação no mesmo ou de níveis diferentes da hierarquia. O projeto ao todo pode conseqüentemente utilizar uma estratégia global non-uniform da colocação.