cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Anonymous
Not applicable
8,983 Views

[DRC 23-20] Rule violation (NSTD-1) Unspecified I/O Standard

Jump to solution

I have the issue on Digilent NEXYS VIDEO uses Artix 7  XC7A200T -1sgc484


module testIO(

input [7:0] sw,
output [7:0] led
);

assign led[7:0] = ~sw[7:0];

endmodule

 

[DRC 23-20] Rule violation (NSTD-1) Unspecified I/O Standard - 16 out of 16 logical ports use I/O standard (IOSTANDARD) value 'DEFAULT', instead of a user assigned specific value. This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all I/O standards. This design will fail to generate a bitstream unless all logical ports have a user specified I/O standard value defined. To allow bitstream creation with unspecified I/O standard values (not recommended), use this command: set_property SEVERITY {Warning} [get_drc_checks NSTD-1]. NOTE: When using the Vivado Runs infrastructure (e.g. launch_runs Tcl command), add this command to a .tcl file and add that file as a pre-hook for write_bitstream step for the implementation run. Problem ports: sw[7:0], led[7:0].

 

The constraints are :


## LEDs
set_property -dict { PACKAGE_PIN T14 IOSTANDARD LVCMOS25 } [get_ports { led[0] }]; #IO_L15P_T2_DQS_13 Sch=led[0]
set_property -dict { PACKAGE_PIN T15 IOSTANDARD LVCMOS25 } [get_ports { led[1] }]; #IO_L15N_T2_DQS_13 Sch=led[1]
set_property -dict { PACKAGE_PIN T16 IOSTANDARD LVCMOS25 } [get_ports { led[2] }]; #IO_L17P_T2_13 Sch=led[2]
set_property -dict { PACKAGE_PIN U16 IOSTANDARD LVCMOS25 } [get_ports { led[3] }]; #IO_L17N_T2_13 Sch=led[3]
set_property -dict { PACKAGE_PIN V15 IOSTANDARD LVCMOS25 } [get_ports { led[4] }]; #IO_L14N_T2_SRCC_13 Sch=led[4]
set_property -dict { PACKAGE_PIN W16 IOSTANDARD LVCMOS25 } [get_ports { led[5] }]; #IO_L16N_T2_13 Sch=led[5]
set_property -dict { PACKAGE_PIN W15 IOSTANDARD LVCMOS25 } [get_ports { led[6] }]; #IO_L16P_T2_13 Sch=led[6]
set_property -dict { PACKAGE_PIN Y13 IOSTANDARD LVCMOS25 } [get_ports { led[7] }]; #IO_L5P_T0_13 Sch=led[7]

 

## Switches
set_property -dict { PACKAGE_PIN E22 IOSTANDARD LVCMOS12 } [get_ports { sw[0] }]; #IO_L22P_T3_16 Sch=sw[0]
set_property -dict { PACKAGE_PIN F21 IOSTANDARD LVCMOS12 } [get_ports { sw[1] }]; #IO_25_16 Sch=sw[1]
set_property -dict { PACKAGE_PIN G21 IOSTANDARD LVCMOS12 } [get_ports { sw[2] }]; #IO_L24P_T3_16 Sch=sw[2]
set_property -dict { PACKAGE_PIN G22 IOSTANDARD LVCMOS12 } [get_ports { sw[3] }]; #IO_L24N_T3_16 Sch=sw[3]
set_property -dict { PACKAGE_PIN H17 IOSTANDARD LVCMOS12 } [get_ports { sw[4] }]; #IO_L6P_T0_15 Sch=sw[4]
set_property -dict { PACKAGE_PIN J16 IOSTANDARD LVCMOS12 } [get_ports { sw[5] }]; #IO_0_15 Sch=sw[5]
set_property -dict { PACKAGE_PIN K13 IOSTANDARD LVCMOS12 } [get_ports { sw[6] }]; #IO_L19P_T3_A22_15 Sch=sw[6]
set_property -dict { PACKAGE_PIN M17 IOSTANDARD LVCMOS12 } [get_ports { sw[7] }]; #IO_25_15 Sch=sw[7]

 

Whats wrong with these constraints (given by DIGILENT INC with the NEXYS VIDEO board)?

 

0 Kudos
1 Solution

Accepted Solutions
Anonymous
Not applicable
13,524 Views

 

I found reading this

https://reference.digilentinc.com/reference/software/vivado/board-files

that C:\Xilinx\Vivado\2016.4\data\boards needs to have some xml files

so I added them here in attachment

 

It needed to be created from scratch using the board files!

 

well It is now solved I have no more errors

View solution in original post

0 Kudos
6 Replies
hirschdaumen
Adventurer
Adventurer
8,965 Views
Registered: ‎04-13-2010

You can't have comments in the same line with the constraints.

 

You have to put your comments into own lines, like this:

## LEDs
#IO_L15P_T2_DQS_13 Sch=led[0]
set_property -dict { PACKAGE_PIN T14 IOSTANDARD LVCMOS25 } [get_ports { led[0] }];
#IO_L15N_T2_DQS_13 Sch=led[1]
set_property -dict { PACKAGE_PIN T15 IOSTANDARD LVCMOS25 } [get_ports { led[1] }];

Regards

0 Kudos
Anonymous
Not applicable
13,525 Views

 

I found reading this

https://reference.digilentinc.com/reference/software/vivado/board-files

that C:\Xilinx\Vivado\2016.4\data\boards needs to have some xml files

so I added them here in attachment

 

It needed to be created from scratch using the board files!

 

well It is now solved I have no more errors

View solution in original post

0 Kudos
gnarahar
Moderator
Moderator
8,951 Views
Registered: ‎07-23-2015

@Anonymous Yes, having the XML files makes your life easier while configuring for various interfaces for the respective board you using and eliminates some of the manual work.

- Giri
------------------------------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
If starting with Versal take a look at our Versal Design Process Hub and our Versal Blogs
------------------------------------------------------------------------------------------------------------------------

0 Kudos
Anonymous
Not applicable
8,948 Views

No Hirshbaum its not that the problem, It was the board files that where missing (Vivado needed them) but thanks

 

The added files  issue here reminds me for the Logic gates in the block designs there also they have no standard parts and we need also to add manually a file  see on the bottom of https://forums.xilinx.com/t5/Design-Entry/Schematic-Design-Entry-Tool-in-Vivado/m-p/677794

 

0 Kudos
avrumw
Guide
Guide
8,900 Views
Registered: ‎01-23-2009

@hirschdaumen

 

You can't have comments in the same line with the constraints.

 

That's actually not true - you just have to use the correct syntax.

 

In Tcl, the # is actually treated as "the comment command"; it is a command with any number of arguments that follow it.

 

However, like all commands, it can only start when another command has ended. In Tcl, which is not free form, commands end at the end of lines (unless they are in strings, or escaped, or....). However, you can also terminate a command with a semicolon. Using the semicolon, you can put multiple "commands" on the same line - including the comment "command"..

 

So

 

## LEDs
set_property -dict { PACKAGE_PIN T14 IOSTANDARD LVCMOS25 } [get_ports { led[0] }]; #IO_L15P_T2_DQS_13 Sch=led[0]
set_property -dict { PACKAGE_PIN T15 IOSTANDARD LVCMOS25 } [get_ports { led[1] }]; #IO_L15N_T2_DQS_13 Sch=led[1]

is legal as long as you have the semicolon after the first command and before the #.

 

Avrum

hirschdaumen
Adventurer
Adventurer
8,884 Views
Registered: ‎04-13-2010

Avrum,

 

excellent, I didn't know that! I'm not very familiar with Tcl, and that thing with the comments just catched my eyes since I have been through this pitfall. I did, actually, notice the semicolons, and wondered why they are there...

 

Thanks for your explanation!

0 Kudos