I'm a bit new to FPGA configuration and I couldn't find any messages that addressed my particular problem (although I'm sure this is a common issue). I am using the Xilinx ISE Webpack to configure a Spartan 3 FPGA. I am multiplexing a 16-bit data bus and routing it to differend devices. I want to control the signal-to-signal skew of the data bus.
Here is my code:
**************************************************************************************************** // Data muxes always @* case (1'b1) (MPEGhostActive) : begin // MPEG host port (addr decode of fcs1) fd_mux_out = mpeg_hd; end (fcs2) : begin //IDE port (fcs2) fd_mux_out = ide_fd; end default : begin // fpga fd_mux_out = fd; end endcaseassign fd = fd_oe ? fd_mux_out : 16'bz; // cpu read
***************************************************************************************************** *These are data buses and thus bi-directional - code not shown.I tried to control the timing in the ucf by using FROM and TO in the following manner:
****************************************************************************************************** INST "ide_fd" TNM = "ide_data_lines"; INST "fd" TNM = "cpu_data_lines"; INST "mpeg_hd" TNM = "mpeg_data_lines"; TIMESPEC "TS_FD2IDE" = FROM "cpu_data_lines" TO "ide_data_lines" 10; TIMESPEC "TS_IDE2FD" = FROM "ide_data_lines" TO "cpu_data_lines" 10; TIMESPEC "TS_FD2MPEG" = FROM "cpu_data_lines" TO "mpeg_data_lines" 10; TIMESPEC "TS_MPEG2FD" = FROM "mpeg_data_lines" TO "cpu_data_lines" 10; *****************************************************************************************************Unfortunately the timing does not change wether I use the TIMESPEC constraint or not; I just get a warning that "timing was not met" if I use the constraint. Is there a constraint that will force the implementation to meet timing? Signal to signal skew is more important to me than propogation delay but these signals are asynchronous and I could not find a constraint that meets that need - all the skew constraints seem to involve a clock. The way I would implement this in hardware would be to make all the signal traces the same length; is there a similar constraint I can use in FPGA design?
Thanks, Derek