2017-11-17 20 views
0

내가 Nexys 4 DDR의 튜토리얼을 통해 얻고 나는 간단한 MUXVivado 2015.1 VHDL 입력/출력 위반

library IEEE; 

use IEEE.STD_LOGIC_1164.ALL; 

library UNISIM; 
use UNISIM.VComponents.all; 

-- Uncomment the following library declaration if using 
-- arithmetic functions with Signed or Unsigned values 
--use IEEE.NUMERIC_STD.ALL; 

-- Uncomment the following library declaration if instantiating 
-- any Xilinx leaf cells in this code. 
--library UNISIM; 
--use UNISIM.VComponents.all; 

entity lab1_2_1 is 
    Port (SW0 : in STD_LOGIC; 
      SW1 : in STD_LOGIC; 
      SW2 : in STD_LOGIC; 
      LED0 : out STD_LOGIC); 
end lab1_2_1; 

architecture Behavioral of lab1_2_1 is 

      Signal SW2_bar : STD_LOGIC; 
      Signal SW0_int : STD_LOGIC; 
      Signal SW1_int : STD_LOGIC; 


begin 
      SW2_bar <= not SW2; 
      SW0_int <= SW0 and SW2_bar; 
      SW1_int <= SW1 and SW2; 
      LED0 <= SW0_int or SW1_int; 

end Behavioral; 

을 구현하고 나는 비트 스트림을 생성하는 부분에 도착했을 때, 나는이 중요한 경고가

NSTD # 1 치명적 경고 1 개의 논리 포트 중 1 개가 사용자가 지정한 값 대신 I/O 표준 (IOSTANDARD) 값 'DEFAULT'을 사용합니다. 이로 인해 I/O 경합 또는 보드 전원 또는 연결에 성능, 신호 무결성에 영향을 줄 수 있으며 극단적 인 경우 장치 또는 장치가 연결된 구성 요소가 손상 될 수 있습니다. 이 위반을 해결하려면 모든 I/O 표준을 지정하십시오. 모든 논리 포트에 사용자가 지정한 I/O 표준 값이 정의되어 있지 않으면이 디자인은 비트 스트림을 생성하지 못합니다. 지정되지 않은 I/O 표준 값 (권장하지 않음)으로 비트 스트림을 만들려면 set_property SEVERITY {Warning} [get_drc_checks NSTD-1] 명령을 사용하십시오. 참고 : Vivado Runs 인프라 (예 : launch_runs Tcl 명령)를 사용하는 경우이 명령을 .tcl 파일에 추가하고 구현 실행을위한 write_bitstream 단계의 프리 훅으로 해당 파일을 추가하십시오. 문제 포트 : LED0.

UCIO # 1 치명적 경고 1 일 중 논리적 포트에는 사용자가 특정 위치 제약 (LOC)를 할당되지 있습니다. 이로 인해 I/O 경합 또는 보드 전원 또는 연결에 성능, 신호 무결성에 영향을 줄 수 있으며 극단적 인 경우 장치 또는 장치가 연결된 구성 요소가 손상 될 수 있습니다. 이 위반을 시정하려면 모든 핀 위치를 지정하십시오. 모든 논리 포트에 사용자 지정 사이트 LOC 제약 조건이 정의되어 있지 않으면이 디자인은 비트 스트림을 생성하지 못합니다. 지정되지 않은 핀 위치 (권장되지 않음)로 비트 스트림을 만들려면 set_property SEVERITY {Warning} [get_drc_checks UCIO-1] 명령을 사용하십시오. 참고 : Vivado Runs 인프라 (예 : launch_runs Tcl 명령)를 사용하는 경우이 명령을 .tcl 파일에 추가하고 구현 실행을위한 write_bitstream 단계의 프리 훅으로 해당 파일을 추가하십시오. 문제 포트 : LED0.

어떤 아이디어?

+1

하드웨어를 설계하고 있습니다. 디자인을위한 IO 셀을 지정하지 않은 것으로 보입니다. FPGA와 나머지 PCB의 회로를 인터페이스하는 전자 장치를 지정하지 않았습니다. (예 : 어떤 전압이 관련되어 있는지, 어떤 전류를 구동하는지, 어떤 슬 루율) 이것은 VHDL에서 지정할 수있는 것이 아니며 사용중인 FPGA 환경에 적합한 것입니다. 설명서를 읽어야합니다. –

+0

@MatthewTaylor 감사합니다. 나는 그것을 풀 수 있었다. – ayo

답변

2

Vivado는 IO 및 IO 표준의 물리적 위치를 정의 할 것을 기대합니다. IO 표준은 FPGA의 핀에 연결된 전압 레벨 및 풀업/풀다운 저항에 따라 달라집니다.

제한 조건 파일 (예 : SDC 또는 XDC)에 추가 할 수 있습니다. 예를 들어, 출력 LED0을 FPGA의 A1에 연결하고 IO 표준을 2.5V LVCMOS로 정의했습니다. 올바른 값은 FPGA 보드의 매뉴얼에서 찾을 수 있습니다.

set_property PACKAGE_PIN A1  [get_ports {LED0}]; 
set_property IOSTANDARD LVCMOS25 [get_ports {LED0}];