Multi nucli FPGA?

K

Kuller

Guest
Hola,

Estic tenint alguns problemes amb l'aplicació de Xilinx.La cosa és que tinc dos projectes diferents que encaixa directament en la FPGA compartir el rellotge.Un d'ells pot executar fins a 150 MHz i l'altre de fins a 70 Mhz.

El problema és si la restricció de rellotge de 150 MHz que doesnt deixa'm a aplicar el disseny com el nucli lent té un retard en camí més de 6 ns.Realment no cuido d'això com jo sé que no serà utilitzat en més de 70 MHz, però el implementatin falla.

La meva configuració és: restricció (el mateix per a tots dos rellotges, doesnt work)
IOB-> DCM-> core1
| -> Core2

He intentat també: (igual que abans)
IOB-> DCM1-> core1
| -> DCM2-> core2

I:
IOB-> DCM1-> core1 (problema ologic però puc aconseguir 2 diferents xarxes de rellotge)
| -> DDR FF-> DCM2-> core2

Vaig tractar de posar una, a la limitació (it didnt work)

Existeix de totes maneres de dividir 1 rellotge en dos rellotges totalment independent?

Estic encallat en aquest moment: /

Gràcies

 
No he trobat una manera fàcil d'especificar la restricció període diferent a les dues parts de la xarxa mateix rellotge.Probablement es podria aplicar restriccions a l'agrupació de dos nuclis, i després d'aplicar a partir de diferents a les limitacions de temps als dos grups, però crec que el procés d'agrupació a ser un malson.Potser hi hagi una forma fàcil de fer agrupaments que no han descobert.

Si no et fa perdre un buffer de rellotge mundial, pot crear una instància de dues BUFG (o BUFGMUX's), tots dos impulsats pel passador mateix rellotge, i després aplicar restriccions període diferent als productes BUFG.Que sembla funcionar.Heus aquí un exemple Spartan-3 amb un rellotge mestre d'entrada dividida en dues xarxes de rellotge diferent limitada - una alimentació a una velocitat de mòdul (32-bit d'aritmètica), l'altre s'alimenta d'un mòdul lenta (80-bit d'aritmètica):
Codi:

Top Module (CLK, out_slow, out_fast);

CLK d'entrada;

clk_slow filferro, clk_fast;

sortida out_slow, out_fast;BUFG buf1 (. I (CLK),. O (clk_slow));

BUFG Buf2 (. I (CLK),. O (clk_fast));core_slow core1 (. CLK (clk_slow). out (out_slow));

core_fast Core2 (. CLK (clk_fast). out (out_fast));

endmodulecore_slow mòdul (CLK, out);

CLK d'entrada; / / atribut de CLK síntesi PERÍODE "70 MHz";

reg [79:0] count = 0;

sortida reg out = 0;sempre @ (clk posedge) comencen

count <= count 1;

a <= ^ comptar;

final

endmodulecore_fast mòdul (CLK, out);

CLK d'entrada; / / atribut de CLK síntesi PERÍODE "150 MHz";

reg [31:0] count = 0;

sortida reg out = 0;sempre @ (clk posedge) comencen

count <= count 1;

a <= ^ comptar;

final

endmodule
 
Gràcies, això va ser realment el que estava buscant.

Ho he provat i funciona com un encant

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />
 

Welcome to EDABoard.com

Sponsor

Back
Top