저는 브레이크 아웃 게임의 FPGA 구현 프로젝트를 진행하고 있습니다. 이 게임에서는 공과 패들을 사용하여 벽돌을 깨뜨려야합니다. 몇몇 벽돌은 공과의 여러 접촉을 끊을 수 있습니다. 이를 위해 정수 배열을 사용하여 특정 벽돌을 깨는 데 필요한 적중 횟수를 나타냅니다. 예를 들어, (2,0,1,2)는 부서지는 벽돌을 2 번 히트해야하고,이어서 깨진 벽돌이 뒤 따르는 벽돌을 의미한다.VHDL Verilog 정수 배열 포트
또한 VHDL로 코드를 작성했지만 결과를 VGA 화면에 출력하려면 Verilog를 사용하고 있습니다. 다음
package mytypes_pkg is
type int_array is array (0 to 39) of integer;
end mytypes_pkg;
다음 내 볼 모션 제어 파일에, 내가 가져온 work.mytypes_pkg.all하고있다 : 다음과 같이
는 VHDL에서 나는 패키지의 정수 배열의 유형을 선언 한
brickout:out int_array;
게임에있는 모든 벽돌의 현재 상태를 포함합니다. 이 배열은 Verilog 파일로 전달되어야합니다.이 파일은 모든 VGA 디스플레이 생성이 이루어져야합니다. 그곳에서 나는
input [39:0] bricki;
을 시도했지만 나에게
"포트에 대한 다른 유형은 'mainc'에 대한 실체와 구성 요소에 'brickout'"오류를 제공
나는이 오류를 해결하고 할 수있는 방법내가 뭘하고 싶어? 거기에 어떤 방식으로 Verilog에게 bricki도 int_array 유형이라고 말하고 있습니까? 그리고 Verilog에서도 work.mytypes_pkg.all을 가져와야합니까?
을 나는의 Verilog 전문가는 아니지만이 VHDL에서 입력 /의 Verilog 모듈의 출력해야'std_logic' /'std_logic_vector' 생각합니다. 따라서 정수 배열을'std_logic_vector' 배열로 나타내야합니다. Verilog 입력으로'std_logic_vector' 배열 타입을 얻을 수 있는지 확실하지 않습니다 ... – simon
@simon 나는 그것을 시도하는 것에 대해서도 열려 있습니다.하지만 같은 문제도 있습니다. VHDL에서 Verilog에'std_logic_vector' 배열을 어떻게 전달합니까? – akhiljain
도움이 되나요? http://www.rhinocerus.net/forum/lang-verilog/431138-instantiating-vhdl-component-integer-ports-verilog- module.html? –