ERROR:LIT:675 - In Spartan-6 devices when the data path on a TBUF is driven by an ODDR2, tri state path of the same TBUF must also be driven by an

Status
Not open for further replies.

promach

Advanced Member level 4
Joined
Feb 22, 2016
Messages
1,199
Helped
2
Reputation
4
Reaction score
5
Trophy points
1,318
Activity points
11,636
I got some "tri-state" related errors during mapping process.


Code:
NGDBUILD done.

Process "Translate" completed successfully

Started : "Map".
Running map...
Command Line: map -intstyle ise -p xc6slx16-ftg256-3 -w -logic_opt off -ol high -t 1 -xt 0 -register_duplication off -r 4 -global_opt off -mt off -ir off -pr off -lc off -power off -o test_ddr3_memory_controller_map.ncd test_ddr3_memory_controller.ngd test_ddr3_memory_controller.pcf
Using target part "6slx16ftg256-3".
Mapping design into LUTs...
ERROR:LIT:675 - In Spartan-6 devices when the data path on a TBUF is driven by
   an ODDR2, tri state path of the same TBUF must also be driven by an ODDR2.
   TBUF symbol "ddr3_control/dq_io[0].IO_dq/OBUFT" (output signal=dq<0>) has its
   I input pin driven by
   'ddr3_control/physical_group_dq_w<0>/dq_io[0].ODDR2_dq_w/D1' which is a D1
   pin of an ODDR2. However, no ODDR2 was found driving the corresponding T
   input pin 'ddr3_control/dq_io[0].IO_dq/OBUFT/E', which will result in only
   half of the ODDR2's data path being enabled. This will cause the design to
   not work in hardware. Please ensure that TBUF symbol
   "ddr3_control/dq_io[0].IO_dq/OBUFT" (output signal=dq<0>) has its T input pin
   driven by an ODDR2.
ERROR:LIT:675 - In Spartan-6 devices when the data path on a TBUF is driven by
   an ODDR2, tri state path of the same TBUF must also be driven by an ODDR2.
   TBUF symbol "ddr3_control/dq_io[1].IO_dq/OBUFT" (output signal=dq<1>) has its
   I input pin driven by
   'ddr3_control/physical_group_dq_w<1>/dq_io[1].ODDR2_dq_w/D1' which is a D1
   pin of an ODDR2. However, no ODDR2 was found driving the corresponding T
   input pin 'ddr3_control/dq_io[1].IO_dq/OBUFT/E', which will result in only
   half of the ODDR2's data path being enabled. This will cause the design to
   not work in hardware. Please ensure that TBUF symbol
   "ddr3_control/dq_io[1].IO_dq/OBUFT" (output signal=dq<1>) has its T input pin
   driven by an ODDR2.


The root cause is at the T input port of IOBUF which has to be made to use ODDR primitive as well, but I am not sure how to do this exactly.


Code:
        IOBUF IO_dq (
            .IO(dq[dq_index]),
            .I(dq_w[dq_index]),
            .T(((wait_count > TIME_RL) && (main_state == STATE_READ_AP)) ||
                      (main_state == STATE_READ_DATA)),
            .O(dq_r[dq_index])
        );

Now that adding ODDR2 for dq_iobuf_enable signal got me into another different error :


I tried to solve this new error using (* IOB = "FORCE" *), but it is NOT helping.

Any advice ?

 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…