UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Adventurer
Adventurer
165 Views
Registered: ‎04-25-2014

Ibufds generic map iostandard not assignable [DRC BIVC-1]

Hello all,

I'm using an ultrascale kintex device and I noticed that ibufds Language Template does not have iostandard generic (it does for kintex 7, not ultrascale). Please see the following. My goal is to have the iostandard vary depending on what the generate vector requests.

Error message

[DRC BIVC-1] Bank IO standard Vcc: Conflicting Vcc voltages in bank 84. For example, the following two ports in this bank have conflicting VCCOs: 

GPIO_T[1] (DIFF_HSTL_I_18, requiring VCCO=1.800) and PIO[0] (LVCMOS25, requiring VCCO=2.500)

 

Constraints Used

 

set_property IOSTANDARD LVCMOS33 [get_ports -of_objects [get_iobanks 65]]
set_property IOSTANDARD LVCMOS25 [get_ports -of_objects [get_iobanks 94]]
set_property IOSTANDARD LVCMOS25 [get_ports -of_objects [get_iobanks 84]]
 
# Reset_property iostandard [get_port xxx cannot be used because xdc will not allow
set_property IOSTANDARD {} [get_ports GPIO_C*]
set_property IOSTANDARD {} [get_ports GPIO_T*]

The objective here was to not force the constraints file to assign gpio ports on the bank, thereby allowing generic map iostandard to assign the gpio value. I don't know if all i've done if force it to default.

 

HDL Used

 

--vhdl08
gpio_type : 
                If diff_type : (GPIO_TC_TYPE(I) = Differential) Generate
                begin
                    gpio_dir : 
                        case GPIO_TC_DIR(I) generate
                        when c1: input_only => 
                            begin
                                gpio_tc_ibuf : IBUFDS                            
                                generic map
                                (
                                    iostandard => "BLVDS_25"
                                )
                                Port Map
                                (
                                    O  => GPIO_T_IN(I),         
                                    I  => GPIO_T(I),           
                                    IB => GPIO_C(I)          
                                );
                                GPIO_C_IN(I) <= '0';                  
                            end c1;
                            --End Generate ip; elsif op : (GPIO_TC_DIR(I) = Output_Only) Generate
                       when c2 : output_only => 
                            begin
                                gpio_tc_obuf: OBUFDS                  
                                generic map
                                (
                                    iostandard => "BLVDS_25"
                                )
                                Port Map
                                (
                                    I  => GPIO_T_OUT_int(I),          
                                    O  => GPIO_T(I),                  
                                    OB => GPIO_C(I)                   
                                );                                    
                                GPIO_T_IN(I) <= '0';
                                GPIO_C_IN(I) <= '0';
                            end c2;
                        end generate
                    gpio_dir;
                end  diff_type; elsif se_type : (GPIO_TC_TYPE(I) = single_ended) generate
                    begin
                        gpio_t_iobuf : iobuf
                        generic map
                        (
                            iostandard => "LVCMOS25"
                        )
                        port map 
                        (
                            i  => gpio_t_out_int(i),
                            t  => gpio_t_op_enb(i),
                            o  => gpio_t_in(i),
                            io => gpio_t(i)
                        );
                        gpio_c_iobuf : iobuf
                        generic map
                        (
                            iostandard => "LVCMOS25"
                        )
                        port map 
                        (
                            i  => gpio_c_out_int(i),
                            t  => gpio_c_op_enb(i),
                            o  => gpio_c_in(i),
                            io => gpio_c(i)
                        );
                end  se_type;
            end generate gpio_type;

As you can see the generate statement uses an enumerated array to determine which gpio are considered differential or single ended. In previous design this would work because of the generic map, however i'm having ultrascale problems. Anyone know of an alternative ibufds that is basically the same?

Post sythesis io port maping

 

ioports.jpg

As you can see the gpio io port iostandard is NOT what i want. The generic map had no affect. I later learned that ultrascales primative is different. So what do i do?

 

Regards,

Wes

0 Kudos
2 Replies
Xilinx Employee
Xilinx Employee
101 Views
Registered: ‎07-16-2008

回复: Ibufds generic map iostandard not assignable [DRC BIVC-1]

Why did you reset the IOSTANDARD properties for the GPIO ports?

set_property IOSTANDARD {} [get_ports GPIO_C*]
set_property IOSTANDARD {} [get_ports GPIO_T*]

I think this overrides the RTL genertic mapping values and reverts the IOSTANDARD to DEFAULT.

What if you remove the above set_property commands from XDC? I created a simple test case targetting UltraScale device family and did see IOSTANDARD genertic taking effect.

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Adventurer
Adventurer
92 Views
Registered: ‎04-25-2014

回复: Ibufds generic map iostandard not assignable [DRC BIVC-1]

I can send you a screenshot of my language template. It clearly has iostandard as absents

0 Kudos