
Sobre el chip que menciona McLeod, si puede sacar DVI, con un simple adaptador DVI-HDMI ya tendríamos el tema resuelto ¿no? aunque sin sonido claro.
Código: Seleccionar todo
Place:866 - Not enough valid sites to place the following IOBs:
IO Standard: Name = LVCMOS25, VREF = NR, VCCO = 2.50, TERM = NONE, DIR =
OUTPUT, DRIVE_STR = 12
stdn
stdnb
This may be due to either an insufficient number of sites available on the
device, too many prohibited sites,
or incompatible I/O Standards locked or range constrained to I/O Banks with
valid sites.
This situation could possibly be resolved by one (or all) of the
following actions:
a) Grouping IOBs of similar standards into a minimum amount of I/O Banks by
using LOC or range constraints.
b) Maximizing available I/O Banks resources for special IOBs by choosing
lower capacity I/O Banks if possible.
c) If applicable, decreasing the number of user prohibited sites or using a
larger device.
Phase 2.7 Design Feasibility Check (Checksum:32736bf7) REAL time: 10 secs
Total REAL time to Placer completion: 10 secs
Total CPU time to Placer completion: 10 secs
ERROR:Pack:1654 - The timing-driven placement phase encountered an error.
Quest escribió:Para solucionar el error debes quitar del ucf y de los modulos que lo tengan las señales stdn y stdnb, que son las que seleccionan el cristal Pal o Ntsc en el zxuno. Como para el hdmi no hacen falta, puedes quitarlas. Seguramente se te habra olvidado quitarlas de alguno de los sitios.
Código: Seleccionar todo
reg o_red;
reg o_grn;
reg o_blu;
reg o_clk;
dvid i_dvid (
.clk_p ( clk_dvi_p ), // 140mhz positivos
.clk_n ( clk_dvi_n ), // 140mhz negativos
.clk_pixel ( sysclk ), //28 mhz de entrada
.red_p ( {re[3:0],4'b0} ), // viene de la salida VGA
.green_p ( {gr[3:0],4'b0} ),
.blue_p ( {bl[3:0],4'b0} ),
.blank ( ~blank ), //negado?
.hsync ( hsync ),
.vsync ( vsync ), // hasta aqui, desde la salida VGA
// outputs to TMDS drivers
.red_s ( o_red ),
.green_s ( o_grn ),
.blue_s ( o_blu ),
.clock_s ( o_clk )
);
// OBUFDS OBUFDS_clk ( .I(o_clk), .O(hdmi_p[3]), .OB(hdmi_n[3]) ); // alternativa reducida
// OBUFDS OBUFDS_red ( .I(o_red), .O(hdmi_p[2]), .OB(hdmi_n[2]) );
// OBUFDS OBUFDS_grn ( .I(o_grn), .O(hdmi_p[1]), .OB(hdmi_n[1]) );
// OBUFDS OBUFDS_blu ( .I(o_blu), .O(hdmi_p[0]), .OB(hdmi_n[0]) );
OBUFDS #(.IOSTANDARD("DEFAULT")) OBUFDS_clk (.O(hdmi_p[3:3]),.OB(hdmi_n[3:3]),.I(o_clk));
OBUFDS #(.IOSTANDARD("DEFAULT")) OBUFDS_red (.O(hdmi_p[2:2]),.OB(hdmi_n[2:2]),.I(o_red));
OBUFDS #(.IOSTANDARD("DEFAULT")) OBUFDS_grn (.O(hdmi_p[1:1]),.OB(hdmi_n[1:1]),.I(o_grn));
OBUFDS #(.IOSTANDARD("DEFAULT")) OBUFDS_blu (.O(hdmi_p[0:0]),.OB(hdmi_n[0:0]),.I(o_blu));
Código: Seleccionar todo
.CLKOUT4_DIVIDE (3), // 140mhz positivos HDMI
.CLKOUT4_PHASE (0.000),
.CLKOUT4_DUTY_CYCLE (0.500),
.CLKOUT5_DIVIDE (3), // 140mhz negativos HDMI
.CLKOUT5_PHASE (180.000),
.CLKOUT5_DUTY_CYCLE (0.500),