2017-02-12 9 views
0

Artix-7 Basys 3 FPGA 보드에서 구현할 VHDL 모듈을 작성 중입니다. 당신이 볼 수 있듯이Vivado 포트 매핑시 입력/출력 표준 위반

[DRC 23-20] Rule violation (NSTD-1) Unspecified I/O Standard - 1 out of 29 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: segt[7].

, 그것은 문제 포트로 segt 나열 : 내 디자인은 내가 쓰기 비트 스트림을 실행할 때, 나는이 오류가 성공적 그러나 합성 및 구현을 실행합니다. 7 세그먼트 디스플레이의 경우,이 이름을 기본 이름 인 "seg"에서 "segt"로 변경했지만 오류가 발생하지는 않습니다. 스위치에 기본 이름 "sw"을 사용하고 모듈의 버튼에 "btnC"를 사용하면이 오류가 발생했기 때문에 이상합니다. master.xdc 파일에서 "sw"을 "sw1"으로, "btnC"를 "btnC1"로 바꿨고 이러한 특정 포트에 대한 오류를 중지했습니다. 어떤 도움이라도 대단히 감사 할 것입니다. Master.xdc의

entity timer_test is 
    port(
    clk: in std_logic; 
    btnC1: in std_logic; 
    an: out std_logic_vector(3 downto 0); 
    segt: out std_logic_vector(7 downto 0); 
    led: out std_logic_vector(15 downto 0); 
    sw1: in std_logic_vector(15 downto 0) 
    ); 
end timer_test; 

architecture arch of timer_test is 
    signal d3,d2, d1, d0: std_logic_vector(3 downto 0); 
    signal one_sec: std_logic; 
begin 
    disp_unit: entity work.disp_hex_mux 
     port map(
     clk=>clk, reset=>'0', 
     hex3=>d3, hex2=>d2, hex1=>d1, hex0=>d0, 
     dp_in=>"1101", an=>an, sseg=>segt); 

    divider_unit: entity work.clock_divider 
     port map(
      clk=>clk, 
      start=>'1', 
      onesec=>one_sec); 

    counter_unit: entity work.count_down_timer 
     port map(
      min_in(7 downto 0)=>sw1(15 downto 8), 
      sec_in(7 downto 0)=>sw1(7 downto 0), 
      clk=>clk, 
      one_sec=>one_sec, 
      reset=>btnC1, 
      d3=>d3 ,d2 =>d2, d1=>d1, d0=>d0, 
      led=>led); 
end arch; 

관련 부분 :

## Clock signal 
set_property PACKAGE_PIN W5 [get_ports clk]       
    set_property IOSTANDARD LVCMOS33 [get_ports clk] 
    create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports clk] 

## Switches 
set_property PACKAGE_PIN V17 [get_ports {sw1[0]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[0]}] 
set_property PACKAGE_PIN V16 [get_ports {sw1[1]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[1]}] 
set_property PACKAGE_PIN W16 [get_ports {sw1[2]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[2]}] 
set_property PACKAGE_PIN W17 [get_ports {sw1[3]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[3]}] 
set_property PACKAGE_PIN W15 [get_ports {sw1[4]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[4]}] 
set_property PACKAGE_PIN V15 [get_ports {sw1[5]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[5]}] 
set_property PACKAGE_PIN W14 [get_ports {sw1[6]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[6]}] 
set_property PACKAGE_PIN W13 [get_ports {sw1[7]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[7]}] 
set_property PACKAGE_PIN V2 [get_ports {sw1[8]}]      
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[8]}] 
set_property PACKAGE_PIN T3 [get_ports {sw1[9]}]      
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[9]}] 
set_property PACKAGE_PIN T2 [get_ports {sw1[10]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[10]}] 
set_property PACKAGE_PIN R3 [get_ports {sw1[11]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[11]}] 
set_property PACKAGE_PIN W2 [get_ports {sw1[12]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[12]}] 
set_property PACKAGE_PIN U1 [get_ports {sw1[13]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[13]}] 
set_property PACKAGE_PIN T1 [get_ports {sw1[14]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[14]}] 
set_property PACKAGE_PIN R2 [get_ports {sw1[15]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {sw1[15]}] 


## LEDs 
set_property PACKAGE_PIN U16 [get_ports {led[0]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}] 
set_property PACKAGE_PIN E19 [get_ports {led[1]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}] 
set_property PACKAGE_PIN U19 [get_ports {led[2]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {led[2]}] 
set_property PACKAGE_PIN V19 [get_ports {led[3]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {led[3]}] 
set_property PACKAGE_PIN W18 [get_ports {led[4]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {led[4]}] 
set_property PACKAGE_PIN U15 [get_ports {led[5]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {led[5]}] 
set_property PACKAGE_PIN U14 [get_ports {led[6]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {led[6]}] 
set_property PACKAGE_PIN V14 [get_ports {led[7]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {led[7]}] 
set_property PACKAGE_PIN V13 [get_ports {led[8]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {led[8]}] 
set_property PACKAGE_PIN V3 [get_ports {led[9]}]      
    set_property IOSTANDARD LVCMOS33 [get_ports {led[9]}] 
set_property PACKAGE_PIN W3 [get_ports {led[10]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {led[10]}] 
set_property PACKAGE_PIN U3 [get_ports {led[11]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {led[11]}] 
set_property PACKAGE_PIN P3 [get_ports {led[12]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {led[12]}] 
set_property PACKAGE_PIN N3 [get_ports {led[13]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {led[13]}] 
set_property PACKAGE_PIN P1 [get_ports {led[14]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {led[14]}] 
set_property PACKAGE_PIN L1 [get_ports {led[15]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {led[15]}] 


#7 segment display 
set_property PACKAGE_PIN W7 [get_ports {segt[6]}] 
set_property IOSTANDARD LVCMOS33 [get_ports {segt[6]}] 
set_property PACKAGE_PIN W6 [get_ports {segt[5]}] 
set_property IOSTANDARD LVCMOS33 [get_ports {segt[5]}] 
set_property PACKAGE_PIN U8 [get_ports {segt[4]}] 
set_property IOSTANDARD LVCMOS33 [get_ports {segt[4]}] 
set_property PACKAGE_PIN V8 [get_ports {segt[3]}] 
set_property IOSTANDARD LVCMOS33 [get_ports {segt[3]}] 
set_property PACKAGE_PIN U5 [get_ports {segt[2]}] 
set_property IOSTANDARD LVCMOS33 [get_ports {segt[2]}] 
set_property PACKAGE_PIN V5 [get_ports {segt[1]}] 
set_property IOSTANDARD LVCMOS33 [get_ports {segt[1]}] 
set_property PACKAGE_PIN U7 [get_ports {segt[0]}] 
set_property IOSTANDARD LVCMOS33 [get_ports {segt[0]}] 

set_property PACKAGE_PIN V7 [get_ports dp]       
    set_property IOSTANDARD LVCMOS33 [get_ports dp] 

set_property PACKAGE_PIN U2 [get_ports {an[0]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {an[0]}] 
set_property PACKAGE_PIN U4 [get_ports {an[1]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {an[1]}] 
set_property PACKAGE_PIN V4 [get_ports {an[2]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {an[2]}] 
set_property PACKAGE_PIN W4 [get_ports {an[3]}]     
    set_property IOSTANDARD LVCMOS33 [get_ports {an[3]}] 


##Buttons 
set_property PACKAGE_PIN U18 [get_ports btnC1]      
    set_property IOSTANDARD LVCMOS33 [get_ports btnC1] 

가 어떻게 이러한 규칙 위반 문제를 해결할 수 있습니다 여기에

메인 모듈이다?

+1

VHDL 포트를 장치 핀에 연결하는 맵 파일을 공유 할 수 있습니까? – skrrgwasme

+0

지도 파일을 가져 오는 방법을 모르겠 음. Im new to vivado – Flower

+1

당신이 그것을 만들어야합니다. 더 나은 방법은 당신이 실제로이 디자인을 종합 할 계획이라면 제약 파일을 물어 보는 것입니다. 합성하지 않으면 경고를 무시할 수 있습니다. 그렇다면 ProjectName/ProjectName.src/constrs_1/ConstraintsFileName.xdc 또는 유사한 경로에서 * .xdc 파일을 만들어야합니다.이 파일은 사용중인 모든 핀에 대해 IO 표준을 구체화하는 곳입니다. – skrrgwasme

답변

1

오류 메시지는 특별히 29 포트 중 1 포트 만 영향을 받음을 나타내므로 문제가있는 핀 하나만 찾고 있음을 알 수 있습니다. 오류 메시지의 끝은 segt[7]입니다.

segt: out std_logic_vector(7 downto 0); 

downto포함이다, VHDL에 그 기억 : segt에 대한 귀하의 선언은 다음과 같다. 즉, segt에는 8 개의 요소가 있습니다.

이제 제약 조건 파일을 살펴보십시오. segt[7]에 지정된 IO 표준이 없습니다. segt[6]에서 segt[0]까지만 포함되었으며 오류에 포함되지 않은 것은 없습니다. segt[7]의 IO 표준 사양을 추가하십시오 :

set_property PACKAGE_PIN <pin> [get_ports {segt[7]}] 
    set_property IOSTANDARD LVCMOS33 [get_ports {segt[7]}] 
+0

도움을 주셔서 감사합니다. – Flower