Hi, I am using the "syn_useioff = 1" directive in my top module to pack the Input/Output registers into the IOB and synthesizing using Synplify Pro. For PAR, I am using Xilinx ISE 7.1 I would like to know how to check and see whether the input and output registers are packed in the IO blocks after PAR. Also, I am tri-stating my outputs based on a control signal by using the following syntax in verilog : out_data = 16'bz. So, I want to check whether the tri-state buffers and the output registers are placed in the same IOB. Can this be done? Some people are telling that this verilog syntax will not actually tri-state the outputs in implelementation and I have to specifically instantiate the tri-state buffers from Xilinx. Can anyone clarify me about this? Thanks & Regards, Srini.
How to check IOB register packing?
Started by ●May 12, 2006
Reply by ●May 12, 20062006-05-12
srini wrote:> I would like to know how to check and see whether the input and output > registers are packed in the IO blocks after PAR.Look in xilinx's map report file (*.mrp). Near the end there is a table with a row for each IO signal and its characteristics including what IOB registers are used (OFF - output flipflop, IFF - input flipflop, ODDR - output double datarate, IDDR - input double datarate, ENFF - tristate enable flipflop,....)> Also, I am tri-stating my outputs based on a control signal by using > the following syntax in verilog : out_data = 16'bz. So, I want to check > whether the tri-state buffers and the output registers are placed in > the same IOB. Can this be done? Some people are telling that this > verilog syntax will not actually tri-state the outputs in > implelementation and I have to specifically instantiate the tri-state > buffers from Xilinx. Can anyone clarify me about this?Here's an example of inferring tri-state IOs: assign EthMiiDat = EthMiiDatT ? 1'bZ: EthMiiDatO; assign EthMiiDatI = EthMiiDat; The IO Pin is EthMiiDat. Three signals go to the FPGA fabric: EthMiiDatO is the output, EthMiiDatI is the input and EthMiiDatT is the tri-state enable. --- Joe Samson Pixel Velocity
Reply by ●May 12, 20062006-05-12
Another way to verify this is to open the ncd file in FPGA_EDITOR and see what are put in the IOBs. HTH, Jim http://home.comcast.net/~jimwu88/tools/
Reply by ●May 12, 20062006-05-12
Jim Wu wrote:> Another way to verify this is to open the ncd file in FPGA_EDITOR and > see what are put in the IOBs. > > HTH, > Jim > http://home.comcast.net/~jimwu88/tools/ >Or look at the pad report, there is a column there indicating whether the signal is registered or not for each pad.
Reply by ●May 12, 20062006-05-12
Hi, In the map report file, all the input and output signals are listed under the IOB name column in the IOB properties section. But under the reg(s) column, only my clock outputs have the OFF1 entry and all other input and ouput signals have no entry of IFF/OFF/ENFF. What does it mean?
Reply by ●May 12, 20062006-05-12
"srini" <g.shrinivasan@gmail.com> wrote in message news:1147421219.221889.122660@g10g2000cwb.googlegroups.com...> Hi, > I am using the "syn_useioff = 1" directive in my top module to pack the > Input/Output registers into the IOB and synthesizing using Synplify > Pro. For PAR, I am using Xilinx ISE 7.1 > I would like to know how to check and see whether the input and output > registers are packed in the IO blocks after PAR. > Also, I am tri-stating my outputs based on a control signal by using > the following syntax in verilog : out_data = 16'bz. So, I want to check > whether the tri-state buffers and the output registers are placed in > the same IOB. Can this be done? Some people are telling that this > verilog syntax will not actually tri-state the outputs in > implelementation and I have to specifically instantiate the tri-state > buffers from Xilinx. Can anyone clarify me about this? > > Thanks & Regards, > Srini.Me, I like to have an OFFSET OUT AFTER constraint that gives a Tco value slightly larger than the guaranteed clock-to-out time for my I/O standards. If I don't have a register packed in the IOB, there's a failure in the timing constraint.
Reply by ●May 12, 20062006-05-12
srini wrote:> Hi, > In the map report file, all the input and output signals are listed > under the IOB name column in the IOB properties section. But under the > reg(s) column, only my clock outputs have the OFF1 entry and all other > input and ouput signals have no entry of IFF/OFF/ENFF. What does it > mean? >It means that those IOs aren't registered in the IOB. If you want to figure out why, I suggest you search comp.arch.fpga. http://groups.google.com/group/comp.arch.fpga/search?group=comp.arch.fpga&q=iob+register&qt_g=1&searchnow=Search+this+group --- Joe Samson Pixel Velocity
Reply by ●May 12, 20062006-05-12
"John_H" <johnhandwork@mail.com> wrote in message news:8N19g.698$oa1.536@news02.roc.ny...> > Me, I like to have an OFFSET OUT AFTER constraint that gives a Tco value > slightly larger than the guaranteed clock-to-out time for my I/O > standards. If I don't have a register packed in the IOB, there's a failure > in the timing constraint.Neat!
Reply by ●May 13, 20062006-05-13
Ray Andraka <ray@andraka.com> wrote:>Jim Wu wrote: > >> Another way to verify this is to open the ncd file in FPGA_EDITOR and >> see what are put in the IOBs. >> >> HTH, >> Jim >> http://home.comcast.net/~jimwu88/tools/ >> >Or look at the pad report, there is a column there indicating whether >the signal is registered or not for each pad.Or set static timing constratints on all pins that can only be reached with IOB FFs... -- Phil Hays
Reply by ●May 14, 20062006-05-14






