나는 VHDL에 몇 가지 디자인 문제가 있다고 생각합니다.경고 : 여러 IO 기본 요소에 단일 loc 제약 조건을 적용하는 것은 모호합니다. 우리는 인스턴스에 제약을 유지할 것입니다
일부 핀을 높게 또는 낮게 설정하려고합니다. 연결된 다른 보드를 설정합니다. 내가 EDK 프로젝트의 IP를 :
[Constraints 18-5] Cannot loc instance 'processing_system7_0_PS_PORB_IBUF' at site B5, Site location is not valid [D:/Sensor/receiver/receiver.srcs/sources_1/edk/module_1/implementation/module_1_processing_system7_0_wrapper.ncf:137]
[Constraints 18-5] Cannot loc instance 'processing_system7_0_PS_SRSTB_IBUF' at site C9, Site location is not valid [D:/Sensor/receiver/receiver.srcs/sources_1/edk/module_1/implementation/module_1_processing_system7_0_wrapper.ncf:138]
[Constraints 18-5] Cannot loc instance 'processing_system7_0_PS_CLK_IBUF' at site F7, Site location is not valid [D:/Sensor/receiver/receiver.srcs/sources_1/edk/module_1/implementation/module_1_processing_system7_0_wrapper.ncf:139]
[Designutils 20-1397] We found multiple IO primitives connected to net 'module_1_i/receiver_0_rs_uart_out_pin'. It is ambiguous to apply a single loc constraint on multiple IO primitives; we will keep the constraint on the instance 'module_1_i/receiver_0/XST_VCC' driving the net 'module_1_i/receiver_0_rs_uart_out_pin'. [D:/Sensor/receiver/receiver.srcs/sources_1/edk/module_1/data/module_1.ncf:5]
[Constraints 18-5] Cannot loc instance 'module_1_i/receiver_0/XST_VCC' at site J15, Unknown instance type 'VCC' [D:/Sensor/receiver/receiver.srcs/sources_1/edk/module_1/data/module_1.ncf:5]
[Designutils 20-1397] We found multiple IO primitives connected to net 'module_1_i/receiver_0_rs_te_485_pin'. It is ambiguous to apply a single loc constraint on multiple IO primitives; we will keep the constraint on the instance 'module_1_i/receiver_0/XST_GND' driving the net 'module_1_i/receiver_0_rs_te_485_pin'. [D:/Sensor/receiver/receiver.srcs/sources_1/edk/module_1/data/module_1.ncf:6]
[Constraints 18-5] Cannot loc instance 'module_1_i/receiver_0/XST_GND' at site J16, Unknown instance type 'GND' [D:/Sensor/receiver/receiver.srcs/sources_1/edk/module_1/data/module_1.ncf:6]
[Designutils 20-1397] We found multiple IO primitives connected to net 'module_1_i/receiver_0_rs_hf_out_pin'. It is ambiguous to apply a single loc constraint on multiple IO primitives; we will keep the constraint on the instance 'module_1_i/receiver_0/XST_VCC' driving the net 'module_1_i/receiver_0_rs_hf_out_pin'. [D:/Sensor/receiver/receiver.srcs/sources_1/edk/module_1/data/module_1.ncf:7]
[Constraints 18-5] Cannot loc instance 'module_1_i/receiver_0/XST_VCC' at site L17, Unknown instance type 'VCC' [D:/Sensor/receiver/receiver.srcs/sources_1/edk/module_1/data/module_1.ncf:7]
[Designutils 20-1397] We found multiple IO primitives connected to net 'module_1_i/receiver_0_rs_rxen_bar_pin'. It is ambiguous to apply a single loc constraint on multiple IO primitives; we will keep the constraint on the instance 'module_1_i/receiver_0/XST_GND' driving the net 'module_1_i/receiver_0_rs_rxen_bar_pin'. [D:/Sensor/receiver/receiver.srcs/sources_1/edk/module_1/data/module_1.ncf:8]
[Constraints 18-5] Cannot loc instance 'module_1_i/receiver_0/XST_GND' at site N17, Unknown instance type 'GND' [D:/Sensor/receiver/receiver.srcs/sources_1/edk/module_1/data/module_1.ncf:8]
[Designutils 20-1397] We found multiple IO primitives connected to net 'module_1_i/receiver_0_rs_dxen_pin'. It is ambiguous to apply a single loc constraint on multiple IO primitives; we will keep the constraint on the instance 'module_1_i/receiver_0/XST_VCC' driving the net 'module_1_i/receiver_0_rs_dxen_pin'. [D:/Sensor/receiver/receiver.srcs/sources_1/edk/module_1/data/module_1.ncf:9]
[Constraints 18-5] Cannot loc instance 'module_1_i/receiver_0/XST_VCC' at site M15, Unknown instance type 'VCC' [D:/Sensor/receiver/receiver.srcs/sources_1/edk/module_1/data/module_1.ncf:9]
이러한 경고를 일으키는 코드 부분이있을 수 있습니다 :
나는 다음과 같은 경고를 받고 있습니다 reciever.vhd과 두 개의 파일이 user_logic.vh. user_logic.vhd에서 일부 포트를 만들고 그 포트에 높은 값과 낮은 값을 할당하려고합니다.
entity user_logic is
port
(
rs_rx : in std_logic;
rs_clk_in : in std_logic;
rs_dxen : out std_logic;
rs_uart_out : out std_logic;
rs_hf_out : out std_logic;
rs_rxen_bar : out std_logic;
rs_te_485 : out std_logic;
Bus2IP_Resetn : in std_logic;
);
architecture IMP of user_logic is
signal q : unsigned(9 downto 0) := (others => '0');
signal rx_clk : std_logic := '0' ;
signal rs_dxen_i : std_logic;
signal rs_uart_out_i : std_logic;
signal rs_hf_out_i : std_logic;
signal rs_rxen_bar_i : std_logic;
signal rs_te_485_i : std_logic;
begin
rs_dxen <= rs_dxen_i;
rs_uart_out <= rs_uart_out_i;
rs_hf_out <= rs_hf_out_i;
rs_rxen_bar <= rs_rxen_bar_i;
rs_te_485 <= rs_te_485_i;
process (Bus2IP_Resetn, rs_clk_in) is
begin
if(Bus2IP_Resetn = '1') then
rs_dxen_i <= '1';
rs_uart_out_i <= '1';
rs_hf_out_i <= '1';
rs_rxen_bar_i <= '0';
rs_te_485_i <= '0';
elsif rs_clk_in'event and rs_clk_in = '1' then
q <= q + 1;
rx_clk <= q(9); --- 58.gdfg/2^9=~ 115.82Khz baud rate = 115200
end if;
end process;
이 포트를 외부 포트로 만들고 일부 핀에 연결합니다. 그러나 위에서 언급 한 경고가 나타나고 해당 핀을 높게 또는 낮게 설정할 수 없습니다. 하지만 코드에서 출력 포트에 값을 지정하지 않으면 경고가 표시되지 않습니다.
B5, C9에 대한 경고는 무시할 수 있습니다. F7은 무시할 수 있습니다. 세 가지 경고가 항상옵니다. 이 부분을 시작 후에 넣지 않으면 다른 경고가 발생하지 않습니다. rs_dxen < = rs_dxen_i; rs_uart_out < = rs_uart_out_i; rs_hf_out < = rs_hf_out_i; rs_rxen_bar < = rs_rxen_bar_i; rs_te_485 < = rs_te_485_i;
B5, C9에 대한 경고는 무시할 수 있습니다. F7은 무시할 수 있습니다. 세 가지 경고가 항상옵니다. 이 부분을 시작한 후에 배치하지 않으면 다른 경고가 발생하지 않습니다. rs_dxen <= rs_dxen_i; rs_uart_out <= rs_uart_out_i; rs_hf_out <= rs_hf_out_i; rs_rxen_bar <= rs_rxen_bar_i; rs_te_485 <= rs_te_485_i; –
출력을 전혀 구동하지 않으면 이러한 출력이 넷리스트 생성 중에 최적화되어 유효하지 않은 핀 매핑을 무의미하게 만듭니다. –
확인. 그래서이 출력 핀을 1과 0으로 구동해야합니다. 어떻게해야합니까? 이전에 저는 planahead를 사용했습니다. 이제는 자일링스 ISE를 사용하여 동일한 코드를 시도했지만 출력 포트는 높았습니다. 그러나 코드에 1을, 0에 몇 가지 코드를 넣는 것이 하나의 문제입니다. 하지만 오실로스코프의 핀을 점검 할 때 모든 핀은 높게 설정됩니다. –