매우 기본적인 질문 :VHDL : 신호 포트은 "화살표"의 어느 쪽 =>
방법 어떻게 알 포트/신호/값은 화살표의 어느 측에 배치 하는가? 매우 평등 해 보이는 port_a => x
에서 x <= port_a
으로 전환하는 것으로 나타났습니다. 오류가 발생했습니다. 또한 x => port_a
은 작동하지 않습니다.
나는 화살표가 어떤 방향으로 향해야하는지조차 알지 못합니다.
답변을드립니다.
매우 기본적인 질문 :VHDL : 신호 포트은 "화살표"의 어느 쪽 =>
방법 어떻게 알 포트/신호/값은 화살표의 어느 측에 배치 하는가? 매우 평등 해 보이는 port_a => x
에서 x <= port_a
으로 전환하는 것으로 나타났습니다. 오류가 발생했습니다. 또한 x => port_a
은 작동하지 않습니다.
나는 화살표가 어떤 방향으로 향해야하는지조차 알지 못합니다.
답변을드립니다.
<=
은 할당입니다. 구체적으로 신호 할당은 다른 곳의 값으로 신호를 보내는 것입니다. 육체적 인 유추를 위해, 오른쪽에있는 것은 왼쪽에 값을 몰아 넣는다.
=>
은 핀에서 신호로 매핑되는 포트입니다. 이것은 과제가 아닙니다. 물리적 인 유추는 핀을 와이어에 납땜하는 것일 수 있습니다.
인스턴스화에 대해서만 "납땜"을 할 수 있으므로 =>
매핑은 port map
내부에서만 발생합니다. 그리고 거기에서 "pins"은 항상이됩니다 (언어 규칙이 그거라고하기 때문에) 에 x <= port_a
을 사용할 수 없습니다.
신호 할당은 오른쪽에서 왼쪽으로 <=
을 사용합니다. 오른쪽은 엔터티의 입력 신호이거나 프로세스에서 선언 된 신호 여야합니다. 왼쪽은 엔티티의 출력 신호 (또는 입력/버퍼), 프로세스에서 선언 된 신호 또는 프로세스에서 선언 된 변수가 될 수 있습니다.
다른 답변에서 언급 된 포트 매핑 외에, =>
화살표는 벡터를 구성하는 것과 완전히 다른 것으로 사용됩니다. 예를 들어, v가 4 비트 벡터 인 경우 v <= (others => '0')
은 v에 "0000"을 할당합니다. 괄호 안에있는 "=>"는 벡터 내의 다른 위치에 다른 값을 할당하는 지름길입니다.
빠른 답변을 보내 주셔서 감사합니다. – chwi
if => 포트 목록에 대한 것이면 어떻게 가능합니까? clk_40Mhz_i는 핀입니다.
COMPONENT clk_wiz_v3_5 is
PORT
(- 포트
CLK_IN1의 시계 : - STD_LOGIC에
CLK_OUT1 시계 밖으로 포트
: 아웃 STD_LOGIC;
- - 상태 및 제어 신호
RESET : in std_logic;
잠금 : out std_logic
);
끝 구성 요소;
xclk_wiz_v3_5 : clk_wiz_v3_5
PORT MAP (
CLK_IN1 => clk_40Mhz_i,
-- Clock out ports
CLK_OUT1 => clk_40Mhz,
-- Status and control signals
RESET => pic_fpga_reset,
LOCKED => clk_locked
);
pic_fpga_reset < = not (processor_fpga_resetn_i);
재설정 < = not (clk_locked);
미스터 톰슨 감사합니다! – chwi