별도의 입력 및 출력 포트가 있는 Verilog HDL 매개변수 RAM

author-image

기준

이 예에서는 LPM 함수 lpm_ram_dq 사용하여 메모리 블록을 인스턴스화하는 방법을 보여줍니다. 변수 램은 LPM 라이브러리의 lpm_ram_dq 기능을 사용합니다. 포트는 처음에 정의되고 빨간색 텍스트에 표시된 대로 LPM 포트에 매핑됩니다. 매개변수 값은 키워드 defparam으로 전달됩니다. 이 예에서는 16 x 256 RAM 블록이 인스턴스화됩니다. 비슷한 프로세스를 사용하여 다른 크기의 RAM 블록을 인스턴스화할 수 있습니다.

lpm_file 매개 변수는 메모리 블록(RAM 또는 ROM)의 초기 콘텐츠를 지정하는 메모리 초기화 파일(.mif)을 의미합니다. MIF는 ASCII 텍스트 파일로 시뮬레이션 출력에서 수동으로 만들거나 저장할 수 있습니다. MIF에서는 메모리 깊이와 폭 값을 지정해야 하며, 주소와 데이터 값을 표시하고 해석하는 데 사용되는 radixes를 선택적으로 지정할 수 있습니다. 이러한 값은 아래와 같은 샘플 파일 map_lpm_ram.mif에서추출한 빨간색 텍스트에 표시됩니다. MIF는 MAX+PLUS II 컴파일러 및 시뮬레이터에서 메모리 초기화를 위한 입력 파일로 사용됩니다.

프로젝트에서 이 예제를 사용하는 것에 대한 자세한 내용은 다음 으로 이동하십시오.

Verilog HDL 예제 사용 방법 ›

RAMveri.v

// instantiation of lpm_ram_dq, 16-bit data, 256 address location

module map_lpm_ram (dataout, datain, addr, we, inclk, outclk);

// port instantiation

input   [15:0] datain;
input   [7:0] addr;
input   we, inclk, outclk;

output  [15:0] dataout;

// instantiating lpm_ram_dq

lpm_ram_dq ram (.data(datain), .address(addr), .we(we), .inclock(inclk), 
                .outclock(outclk), .q(dataout));

// passing the parameter values

defparam ram.lpm_width = 16;
defparam ram.lpm_widthad = 8;
defparam ram.lpm_indata = "REGISTERED"
defparam ram.lpm_outdata = "REGISTERED"
defparam ram.lpm_file = "map_lpm_ram.mif"

endmodule

 

MIF 파일에서 추출

다운로드 map_lpm_ram.mif

WIDTH = 16;
DEPTH = 256;

ADDRESS_RADIX = HEX;
DATA_RADIX = HEX;

CONTENT BEGIN
   0   :   ffff;
   1   :   0000;
   2   :   bbf3;
   3   :   0000;
   4   :   0000;
   .
   .
   .
   fb   :   0000;
   fc   :   0000;
   fd   :   0000;
   fe   :   0000;
   ff   :   0000;
END;

이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.