Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unconnected I/O generate no error in symbiflow #161

Open
WhiteNinjaZ opened this issue Jul 12, 2021 · 0 comments
Open

Unconnected I/O generate no error in symbiflow #161

WhiteNinjaZ opened this issue Jul 12, 2021 · 0 comments

Comments

@WhiteNinjaZ
Copy link
Contributor

WhiteNinjaZ commented Jul 12, 2021

@acomodi I have noticed that symbiflow does not produce any errors when top module ports remain unmapped to pin constraints on the board. For example, this top level module whose input port problem1 and output port problem2 do not map to any pins in the xdc generates no errors from the toolchain:

top module:

module top(
    input [3:0] sw,
    input clk,
    input problem1,
    output [6:0] segment,
    output [3:0] anode,
    output problem2
);

assign anode = 8'b11111110; 

seven_segment segment1 (.data(sw[3:0]), .segment(segment[6:0]));


endmodule

XDC file:

# # Switches
 set_property PACKAGE_PIN V17 [get_ports { sw[0] }]; 
 set_property IOSTANDARD LVCMOS33 [get_ports { sw[0] }]; 

 set_property PACKAGE_PIN V16 [get_ports { sw[1] }]; 
 set_property IOSTANDARD LVCMOS33 [get_ports { sw[1] }];
 set_property PACKAGE_PIN W16 [get_ports { sw[2] }]; 
 set_property IOSTANDARD LVCMOS33 [get_ports { sw[2] }];
 set_property PACKAGE_PIN W17 [get_ports { sw[3] }]; 
 set_property IOSTANDARD LVCMOS33 [get_ports { sw[3] }];

 # Seven-Segment Display
 set_property PACKAGE_PIN W7 [get_ports { segment[0] }]; 
 set_property PACKAGE_PIN W6 [get_ports { segment[1] }]; 
 set_property PACKAGE_PIN U8 [get_ports { segment[2] }]; 
 set_property PACKAGE_PIN V8 [get_ports { segment[3] }]; 
 set_property PACKAGE_PIN U5 [get_ports { segment[4] }]; 
 set_property PACKAGE_PIN V5 [get_ports { segment[5] }]; 
 set_property PACKAGE_PIN U7 [get_ports { segment[6] }]; 

set_property IOSTANDARD LVCMOS33 [get_ports { segment[0] }];
set_property IOSTANDARD LVCMOS33 [get_ports { segment[1] }];
set_property IOSTANDARD LVCMOS33 [get_ports { segment[2] }];
set_property IOSTANDARD LVCMOS33 [get_ports { segment[3] }];
set_property IOSTANDARD LVCMOS33 [get_ports { segment[4] }];
set_property IOSTANDARD LVCMOS33 [get_ports { segment[5] }];
set_property IOSTANDARD LVCMOS33 [get_ports { segment[6] }];


 # Anodes
 set_property PACKAGE_PIN U2 [get_ports { anode[0] }]; 
 set_property PACKAGE_PIN U4 [get_ports { anode[1] }]; 
 set_property PACKAGE_PIN V4 [get_ports { anode[2] }]; 
 set_property PACKAGE_PIN W4 [get_ports { anode[3] }]; 

set_property IOSTANDARD LVCMOS33 [get_ports { anode[0] }];
set_property IOSTANDARD LVCMOS33 [get_ports { anode[1] }];
set_property IOSTANDARD LVCMOS33 [get_ports { anode[2] }];
set_property IOSTANDARD LVCMOS33 [get_ports { anode[3] }];

Additionally, I have noticed that sub-modules which contain ports that are unconnected also do not generate errors. It seems to me that this should be reported as an error as unconnected I/O can lead to bit streams with unexpected behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant