HDL과 검증

위 기술을 FPGA용으로 논리 합성하면 일반적으로 어떻게 처리되는가?

reg [7:0] mem [0:255];
always @(posedge clk) begin
    if (we) mem[addr] <= din;
    dout <= mem[addr];
end
  1. A합성할 수 없으므로 오류가 된다
  2. B256개의 독립된 가산기가 된다
  3. C8비트×256워드의 메모리로 추론되어 FPGA에 내장된 블록 RAM에 할당된다
정답과 해설 보기

정답: C. 8비트×256워드의 메모리로 추론되어 FPGA에 내장된 블록 RAM에 할당된다

reg 배열을 클록에 동기하여 쓰기/읽기를 하는 정해진 형태로 작성하면, 논리 합성 도구는 이를 메모리로 인식(추론)하여 FPGA의 블록 RAM이나 ASIC의 메모리 부품에 할당합니다. 읽기까지 클록에 동기시키는 것이 블록 RAM에 맞추는 요령이며, 비동기로 읽는 방식으로 쓰면 다수의 플립플롭이나 다른 종류의 메모리로 만들어지는 경우가 있습니다.

  • A. 배열 reg는 메모리로 합성할 수 있습니다.
  • B. 덧셈은 하지 않았습니다.
  • C. 올바릅니다. 정해진 형태로 작성하면 메모리로 인식됩니다.
이 분야 연습하기 분야로 돌아가기

HDL과 검증의 다른 문제

  1. 조합 회로에서 if・else if를 길게 이은 기술과 조건이 서로 겹치지 않는 case문 기술을 비교했을 때의 설명으로 올바른 것은?
  2. Verilog의 등호 연산자 "=="와 "==="의 차이로 올바른 것은?
  3. Verilog 같은 HDL로 작성한 기술과 C 언어 같은 소프트웨어 프로그램의 큰 차이로 올바른 것은?
  4. Verilog에서 module을 사용하는 목적으로 올바른 것은?
  5. Verilog의 wire형과 reg형의 차이로 올바른 것은?

이 분야의 비교