나는 inout 매개 변수가 무엇이며 어떻게 사용하는지 알고 있습니다. 우리는 SRAM의 인스턴스를 생성하고 그런 다음 코드로에 쓸 수inout 매개 변수는 어떻게 구현됩니까?
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY sram IS
port(
clk : IN std_logic;
wr : IN std_logic;
io : INOUT std_logic;
addr : IN INTEGER RANGE 0 TO 7
);
END sram;
ARCHITECTURE behavioral OF sram IS
TYPE matrix IS ARRAY (0 TO 7) OF std_logic;
SIGNAL mem : matrix;
BEGIN
PROCESS(clk)
BEGIN
IF rising_edge(clk) THEN
IF wr = '1' THEN
mem(addr) <= io;
END IF;
END IF;
END PROCESS;
io <= mem(addr) WHEN wr = '0' ELSE 'Z';
END behavioral;
:
io <= '1' WHEN wr = '1' ELSE 'Z';
우리가 입출력 매개 변수
io
가 및 다음 코드로 양방향 정적 RAM을 작성한다고 가정
질문 : 어떻게 합성 도구가 여러 할당을 제어하고 여러 드라이버를 판단 할 수 있습니까? 어떤 하드웨어가 구현 되나요? 의견과 답변을
감사합니다 ... 일반적인 FPGA 및 ASIC 장치, 트라이 스테이트 기능의 구현은 알테라의 Arria 10 FPGA의 예처럼 IO에서만 구할 수 있습니다
실리콘 공급 업체는 누구입니까? 문제의 이유는 3 상태 버스가 지원되지 않는다면 문제는 의문의 여지가 있다는 것입니다. – user1155120
'Z'처리 방법에 대한 규칙은 현재 폐기 된 IEEE Std 1076.6-2004, 6.3 3 상태 논리 및 버스, 6.3.1 'Z'할당의 3 상태 논리, 6.3.2 3 상태 논리 및 버스 로직과 가드 연결 해제. 3- 상태 출력을 갖는 RAM의 예가 6.5.2 RAM의 예 2와 3에 나와 있습니다. 양방향 버스를 허용하는 실리콘 공급 업체를 찾기 란 어려울 것입니다. 어느 쪽도 RAM 예제에서는 하나도 사용하지 않습니다. 역사적으로 ASIC 3 상태 버스에 활성 터미네이터가 있어야했습니다. bidir 버퍼가있는 칩 가장자리에는 in 포트와 out 포트가 있습니다. – user1155120
데이빗 감사합니다. 양방향 버퍼가있는 ASIC 3 개 상태 버스에서이 작업을 수행 할 수 있습니까? 칩 내부에서 지원 되는가 아니면 IO 핀만을위한 것인가? – Amir