cmos babe
Full Member level 4
xst:2042
Hi all, I need your help.
The problem I'm struggling with is as follows:
I have a simple datapath design that consists of an ALU,a Register File,IR,PC..etc
but there's this module that's causing the problem which is the SWITCH .. According to the design , the switch is used to interface with the RAM's bidirectional databus , so it contains of an input port,an output port, and a bidirectional part connected to RAM.
Every part of the design was synthesized alright without any problems. The problems started when I wanted to create the toplevel design that will include all these components. In begining, I created an INOUT signal in the toplevel's entity so i connect the bidirectional signal of the switch to it, the file gets synthesized but I get a warning of that the tristates in the switch get replaced by pullups! :lol:
Then after trying million things ,I went to xilinx.com and found this :
Hi all, I need your help.
The problem I'm struggling with is as follows:
I have a simple datapath design that consists of an ALU,a Register File,IR,PC..etc
but there's this module that's causing the problem which is the SWITCH .. According to the design , the switch is used to interface with the RAM's bidirectional databus , so it contains of an input port,an output port, and a bidirectional part connected to RAM.
Every part of the design was synthesized alright without any problems. The problems started when I wanted to create the toplevel design that will include all these components. In begining, I created an INOUT signal in the toplevel's entity so i connect the bidirectional signal of the switch to it, the file gets synthesized but I get a warning of that the tristates in the switch get replaced by pullups! :lol:
WARNING:Xst:2042 - Unit bidire: 32 internal tristates are replaced by logic (pull-up yes): dbus_a<0>, dbus_a<10>, dbus_a<11>, dbus_a<12>, dbus_a<13>, dbus_a<14>, dbus_a<15>, dbus_a<16>, dbus_a<17>, dbus_a<18>, dbus_a<19>, dbus_a<1>, dbus_a<20>, dbus_a<21>, dbus_a<22>, dbus_a<23>, dbus_a<24>, dbus_a<25>, dbus_a<26>, dbus_a<27>, dbus_a<28>, dbus_a<29>, dbus_a<2>, dbus_a<30>, dbus_a<31>, dbus_a<3>, dbus_a<4>, dbus_a<5>, dbus_a<6>, dbus_a<7>, dbus_a<8>, dbus_a<9>.
Then after trying million things ,I went to xilinx.com and found this :
But like you see in the warning , the tristates get converted to logic, but this logic is pullups! situations 1 and 4 aren't what's causing the problem.. Does it seem like #3 is what's causing the warning? I put the RAM unit inside the toplevel and connected it to the switch and still got warnings and errors about "multisource" .. Anyways , I hope you understand my problem..For Spartan-3/-3E and Virtex-4 designs, 3-states are not replaced by logic. What are the reasons this might occur?
Solution 1:
There are 4 situations where XST is not able to replace a 3-state by logic:
1. The 3-state is connected to a black box.
2. The 3-state is connected to the output of a block, and the hierarchy of the block is preserved.
3. The 3-state is connected to a top-level output.
4. The "tristate2logic" constraint is set to "no" on the block where 3-states are placed or on the signals to which 3-states are connected.